VCS comparison table
Jakub Narebski
jnareb at gmail.com
Tue Oct 17 15:41:02 BST 2006
Matthieu Moy <Matthieu.Moy at imag.fr> wrote:
> Jakub Narebski <jnareb at gmail.com> writes:
>
>> While email can be used to exchange patches (git-format-patch to
>> generate patches, git-send-mail to send patches if you don't want to
>> use ordinary email client, git-am to apply patches) it cannot be used
>> to exchange all information (one cannot send for example tags, or
>> merge commits).
>
> In bzr, the "bundle" appears like a patch, but it actually contain the
> same information as the revision(s) it contains (I believe this
> applies to hg and Darcs too). A bundle can be used almost like a
> branch. That's a key point, since revision identity is not based on
> content's hash, so applying a patch is very different from merging a
> bundle.
The patch generated by git-format-patch has author information (in
"From:" header), original commit date (in "Date:" header), commit
message (first line in "Subject:", rest in message body), place for
comments which are not to be included in commit message, diffstat for
easier patch review, and git extended diff (with information about
renames detection, mode changes, 7-characters wide shortcuts of file
contents identifiers). It does not record parent information, original
comitter and comitter date, which branch we are on etc. You can quite
easily provide ordering of patches.
Sending patches via email prohibits first line of commit message to be
enclosed in brackets (subject usually is "[PATCH] Commit description"
or "[PATCH n/m] Commit description") and enforces git convention of
commit message to consist of first line describing commit shortly,
separated by empty line from the longer description and signoff lines.
"Bundle" equivalent, although binary in nature, would be thin pack.
>> It is very usefull tool to have for "accidental" developer.
>
> That's the key point, but patch review for non-accidental developpers
> is also good :-).
How very true...
>> BTW. git can provide binary patch for binary files (e.g. adding
>> favicon for gitweb in git.git).
>
> Bazaar's bundle use base64 encoding for binaries. I don't think that's
> efficient binary diff (xdelta-like) though. Aaron has been fighting
> quite a lot with MUA and MTA mixing up the patches (line ending in
> particular) ...
If I remember correctly git binary diff format is xdiff based, and uses
kind of ascii85 encoding (PostScript).
--
Jakub Narebski
Poland
More information about the bazaar
mailing list