On Wed, Aug 24, 2011 at 11:48:05AM +0300, Eray Aslan wrote:
> On Wed, Aug 24, 2011 at 07:30:11AM +0000, Robin H. Johnson wrote:
> > Bandwidth: Along the same lines, rsync will always be able to use less
> > bandwidth than Git, because none of the intermediate commits need to be
> > transfered. This will be esp. evident as a user tree gets older (the
> > amount of mtime/checksum metadata scales linearly with the size of the
> > tree, not the age of the tree.
> Yes, rsync protocol scales with the project size.
> > The actual file content transfered scales linearly with the age of the tree).
> (assuming you are talking about git here)
> Uhm no? git protocol scales with chageset size. You don't retransfer
> already transferred content. So you will be tranferring only content
> from the last git pull.
No, I'm talking about rsync, not Git.
Rsync bandwidth usage comprises two parts:
1. Bandwidth used by the up-to-date-checks.
Scales with the size of the tree.
2. Bandwidth used by sending newest versions of files.
Scales with the number of changed files.
Let's call this B(checked) + B(changed)
However, most importantly, it's that rsync only sends the NEWEST version
of the files, not the complete history.
Git bandwidth usage comprises one thing, the set of commits since the
last time you did a fetch.
Let's call this B(commits)
If you run rsync very frequently, B(changed) tends towards zero,
while B(checked) becomes constant.
If you run git very frequently, B(commits) tends towards zero.
Now, the important thing happens when you run them seldom.
The sum of B(changed)+B(checked) will become smaller than B(commits)
when there are many commits that have been superseded by newer commits.
Yes, there are cases where EITHER side can win, but for the rate of
change of the tree and how often rsync should be used (not more than
every 12 hours), I believe that the rsync bandwidth usage will be less
than that of Git.
Robin Hugh Johnson
Gentoo Linux: Developer, Trustee & Infrastructure Lead
E-Mail : email@example.com
GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85