[Bf-committers] Wondering about the review of the command port patch...

Mathias Panzenböck grosser.meister.morti at gmx.net
Sun Sep 21 14:16:06 CEST 2008


Nathan Letwory schrieb:
> On Sat, Sep 20, 2008 at 4:04 PM, Mathias Panzenböck
> <grosser.meister.morti at gmx.net> wrote:
>> José Ignacio schrieb:
>>> uh, everybody seems to want git xD
>> Or hg. (Think about the windows users. Cygwin is not really native.)
> 
> For those who want to use bzr, you can clone the tree on launchpad.
> It's being synced with svn trunk fairly often - one can even start a
> sync through the web interface. The cross-platform argument is strong
> (and the cygwin stuff is what it is). I have tried both git and bzr,
> and I must say that as a Windows user bzr definitely gets my vote
> (explorer shell integration!)
> 
> /Nathan

Hg has also an explorer shell integration (since this years GSoC):
http://tortoisehg.sourceforge.net/

NetBeans also has hg integration built in, and there are eclipse plugins.
However, I think NetBeans hg support is buggy/incomplete. Which is strange,
because OpenJDK and NetBeans use hg!

>From what I have heard from friends and what quick googling could confirm:
Git is the fastest, bzr the slowest and hg is somewhere in the middle (a bit
nearer to git than to bzr).
Repository size wise it's the same (git smallest, then hg, then a big gap and
then bzr).
However, git needs manual repacks to keep the repo size down. I do not know
about bzr but I know hg doesn't need that.

See:
http://git.or.cz/gitwiki/GitBenchmarks
But some of the values are outdated (e.g. there already is hg version 1.0.2).

Other things I like about hg (could be true for git/bzr, too. I don't know.
However, it isn't true for svn):

You don't need to run a hg server. Hg and a sshd have to be installed on the
server and that's it. If you have an ssh account and the right permissions to
access the directory you can push. However, if you like you can run an hg
server. A webserver comes bundled with hg, you just have to run "hg serve". This
webserver lets you access every revision and download the whole repo as
tar.gz/tar.bz2/zip. There is even a RSS feed.

There is a hg extension (comes with the official release, I think) that uses
inotify. So detecting which files changed and need to be committed is O(1)
instead of O(n).

Another neat feature: You don't have to have net access to commit. Just export
your changes in a bundle, save it on an usb stick and import it at the target
system. All commits including the commit messages will be imported.

And someone without commit rights could clone the repo and make changes to his
own repo. He/she could now tell the blender developers that at example.com is a
blender version that has this and that feature. A blender developer who reviewed
and liked the feature can now pull it and push it to the official repo.

There are a lot more neat features in hg (or in every distributed SCM). However,
hg has one limitation: You cannot easily only checkout/commit a subdirectory of
an repo. I think git has the same limitation. You need subrepos to do such
things. However, I think in this years GSoC there was an project addressing this
limitation of hg. But I don't know about the status of this project.

	-panzi


More information about the Bf-committers mailing list