axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Axiom-developer] build-improvements on cygwin


From: Page, Bill
Subject: RE: [Axiom-developer] build-improvements on cygwin
Date: Wed, 29 Nov 2006 07:28:38 -0500

On Tuesday, November 28, 2006 12:27 PM Tim Daly wrote:

> Bill Page asked: 
> > "GIT only copies files when the checksums differ". Are you sure?
> > Are checksums that reliable? Can you give me a reference? But I
> > agree that GIT uses significantly less space than SVN (and
> > Mercurial uses even less). 
>

Here is a reference:

http://en.wikipedia.org/wiki/Git_(software)

Mercurial is very similar:

http://www.selenic.com/mercurial/wiki/index.cgi/Design

except it also uses checksums to encode the object history.
 
> GIT computes the MD5SUM of each file and each subdirectory and of
> the whole tree. Only subtrees or files which have different MD5SUMs
> are every stored, copied or transmitted. Thus creating a copy and
> checking it in does almost nothing and takes almost no time to
> upload.
>

Actually SHA-1 hashes, not MD5, but the same principle applies.
 
> I know this works because I have switched to GIT for all of my 
> personal work. Multiple copies of gcl-2.6.8pre.tgz take no additional
> space or time to transmit.
> 

The multiple copies of gcl-2.6.8pre that we have been talking
about are nearly all slightly different pre-release versions. The
hash algorithm will ensure that each of these is treated as a new
and separate file, except for the extent to which GIT and Mercurial
can compute an efficient binary diff.

>...
> GIT does not store a local copy but only has to transmit the
> MD5SUM of the tree root or subdirectory to decide if changes
> occur.

???

I don't think that is correct in most cases. Check the contents of
the .git directory in your local repository. Most of the space is
in .git/objects where the files and deltas are stored based on their
hash keys (as you said earlier).

GIT and Mercurial are distributed source code control systems so
they must necessarily distribute the data. In contrast SVN and CVS
require a centralized repository.

> I'm not sure what SVN does.

SVN also stores a local copy of the repository. SVK uses this to
allow distributed source code control.

> 
> You can see it in the numbers I just sent. Arch takes 305M, 
> GIT takes 135M for the same copy of Axiom.
> 

You are right that GIT and Mercurial repositories take about 1/2
the space of equivalent Arch and SVN repositories. Darcs is usually
intermediate between these two extremes.

Regards,
Bill Page.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]