John Polstra wrote: > Kris Kennaway wrote: > > > The solution I see here is for the cvsup mirrors to maintain > > a timestamp of the last time they updated from freefall (for > > multi-tiered mirrors, this value should be passed down the chain so > > each of them knows the age of their files relative to the master > > server) > > I've been down that road and was not able to come up with a workable > solution. But if anybody can come up with a detailed algorithm for > me, I'll welcome it with open arms. >
If you want a robust (but probably really slow) algorithm, you could use the revision number of a file. Isn't this a monotonically increasing number? Would it be possible to compute md5 signatures on a per-file per-collection basis? The cvsup server would have, for example, src-bin.md5 which contains a list of all files in the src-bin collection and their md5 signatures. When a connection is made to the server, the server sends src-bin.md5 to the client. The client compares the local src-bin.md5 with the server's src-bin.md5. Any difference would indicate a file has changed, and the client then requests the server to send the changed file(s). The client would then update the local src-bin.md5. The only problem would be a ping-pong effect if a server is out-of-date for some reason. This is were you use version numbers. -- Steve To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-current" in the body of the message