VCS comparison table
Jakub Narebski
jnareb at gmail.com
Tue Oct 17 14:55:55 BST 2006
Matthieu Moy wrote:
>> Side-note 2: Three really great things that have made work a lot
>> easier and more enjoyable since we changed from cvs to git and that
>> aren't mentioned in the comparison table:
>
> Sure. And regarding this, hopufully, most modern VCS go in the same
> direction.
>
> > * Dependency/history graph display tools á la qgit/gitk
>
> http://bazaar-vcs.org/bzr-gtk
> http://samba.org/~jelmer/bzr/bzrk.png
Hmmm... most of the tools look similar. Git has gitk (Tcl/Tk, now in
git.git repository), QGit (Qt), GitView (GTK+, in contrib/),
git-browser (JavaScript, uses High Performance JavaScript Graphics
Library by Walter Zorn, http://www.walterzorn.com, for graphics).
Tig (Text-mode Interface for Git, ncurses) also in it's git version has
a kind of history graph using ascii-art.
That is very important tool to have for any SCM which allows (and
encourages) nonlinear history development.
>> * Bisection tool for finding bug introduction revisions.
>
> This took time to come in bzr, but that's the bisect plugin:
>
> http://bazaar-vcs.org/PluginRegistry
Hmmm... I winder which SCM had it first.
>> * Tools for sending commits as emails.
>
> (Surprisingly, I had added this in the table, but has been removed for
> some obscure reasons)
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).
It is very usefull tool to have for "accidental" developer. You don't
have to have constant on-line presence in the form of web server or git
server somewhere for sending pull requests (although http://repo.or.cz
public git repo hosting can help with that), you don't have to have
access (ssh perhaps limited, or WebDAV one) to do push to somebody else
repository, you can just send email to some mailing list.
BTW. git can provide binary patch for binary files (e.g. adding favicon
for gitweb in git.git).
Other often and not-so-often used tools include:
* git-rerere - Reuse recorded resolve (of merge conflicts)
* reflog - Records where was given branch at given time (no UI yet)
* git-diff -S'text' aka. pickaxe - find commits which added or removed
given 'text'; and other revision limiters
--
Jakub Narebski
Poland
More information about the bazaar
mailing list