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. _______________________________________________ Axiom-developer mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/axiom-developer
