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

Reply via email to