The unified diff between revisions [12eefb6c..] and [4e765783..] is displayed below. It can also be downloaded as a raw diff.
# # # patch "distributed-version-control-systems.texinfo" # from [1850f76ca9c1602c39a4a1a4a21f2a86d6bed8ce] # to [de8285cf876044d9f6052b00df52cffd2cb5cd26] # ============================================================ --- distributed-version-control-systems.texinfo 1850f76ca9c1602c39a4a1a4a21f2a86d6bed8ce +++ distributed-version-control-systems.texinfo de8285cf876044d9f6052b00df52cffd2cb5cd26 @@ -5,7 +5,7 @@ @afourpaper @c %**end of header -@set EDITION Second Edition (2006-11-19) +@set EDITION Second Edition (2006-12-03) @ifinfo @dircategory Programming @@ -865,10 +865,10 @@ repository. Cloning a working copy+repo like in Bazaar-NG, to create a repository without a working copy, but then, unlike in Bazaar-NG, every working copy will also contain a full repository. Cloning a working copy+repository on a single filesystem -uses hard links where possible, so clones are ``cheap'' with the same -caveat as in Mercurial: any changes to a file in the repository would -break the link and destroy the benefits of shared storage. I think -that this is only relevant when using pack files. +uses hard links where possible, so clones are ``cheap''. Git does no +have the same caveat as in Mercurial: any changes to a file in the +repository would not break the link and destroy the benefits of shared +storage; instead it will add new files to the repository. A repository can contain many branches; some branches are flagged as being mirrors of remote branches. Each branch remembers which remote @@ -885,7 +885,7 @@ Cogito can push and pull over many proto has taken place. Cogito can push and pull over many protocols: local files, HTTP, -rsync, SSH, etc.) This is good. +rsync, SSH, etc. This is good. Supports tags, branches, and intelligent merge. This is good. By default, tags are local, which means they are not replicated when @@ -907,6 +907,15 @@ on Unix file permissions in the reposito thereby providing authentication. The authorisation mechanism relies on Unix file permissions in the repository. +By default, git stores each new revision of every file in a separate +file in the repository. This is very inefficient. For this reason, +there is a concept of ``packing'' a repository, which replaces all +these objects with one single, large ``pack'' object containing all +file data and all deltas. Packing is very efficient, because git can +calculate arbitrary deltas i.e. between any versions of any files. +Most other systems are restricted to forward or reverse diffs of a +single file. + @section Scenario Thanks to Petr Baudis for this section. I have edited Petr's scenario