Hello, I was wondering if some people already had the idea of setting some kind of 'pull-only-changed' model for cvs update. I know available methods (cvssync, anoncvs and cvsup) are full pull-model, where we compare the full local cvs copy with the whole remote repository, which is : - time and network consuming for the user - bandwidth and load consuming for the server
Nowadays, we have various methods to be aware of changes in the repository, the first coming to mind being subscribing to src-changes@ and ports-changes@, or refreshing a RSS for a more "user-level" view. For example, i know the man running freshbsd.org uses ruby and a set of procmail filters to update his website. This becomes more a 'push-like' model :) So, basically, the idea would be : 1) parse (perl !) upon mail reception the *-changes@ ml-output, gather Modified/Added/Removed/Imported files/directories 2) put them in a queue/file 3) use you traditional cvs update method to update _only_ modified parts of the tree, either manually or with an other cronjob 4) empty the queue Is it worth trying it, or cvs is already designed to be the least time/bandwith-consuming possible, and the gain would be near to zero ? I know this proposal assumes that your tree is always near-up-to-date, or that you run manual updates if changes@ are not received in a period of time or update fails, otherwise it may lead to a tree being sync only for some parts, and other parts being out-of-sync. May this idea lead to errors in cvs internal files ? What methods guys are you using ? Normal automated anoncvs up ? Manually update only changed parts ? Is the load on anoncvs servers neglectable ? If it has already been discussed, sorry for being lame.. Thanks for any comments/input, Landry