On Fri, Sep 12, 2008 at 00:13, Jacob Hallén <jacob@openend.se> wrote:
There are, in my opinion, 3 viable choices of DVCS for PyPy:
- git
- hg (mercurial)
- bzr
Hi there :)
I think they would all be an improvement over SVN and they all have their strengths and weaknesses. In favour of bzr and hg is the fact that they are written in Python, with core parts in C. Git is all C. Git currently requires a cygwin environment to run on Windows, hg and bzr appear to have native windows versions. Git is the fastest of the lot with hg in second place. Bzr is still a fair bit slower, though this is being worked on. Hg is really good at keeping the repositories small, with git in second place.
Excellent quick guide : http://www.infoq.com/articles/dvcs-guide
The strongest argument in favour of git seems to me to be the rebase feature, which allows one to make a branch for a new feature, work on the branch and then update the base of the branch to branch off at a later point in time. I haven't identified this feature in hg and bzr, but then I haven't read all the documentation in detail.
Don't miss "extensions" (but these are officials, include in core): - Bisec http://www.selenic.com/mercurial/wiki/index.cgi/BisectExtension - Graph log (show grah of the tree, "ascii art") http://www.selenic.com/mercurial/wiki/index.cgi/GraphlogExtension - Hgk (same above, but with tcl/tk, copy of git's one) http://www.selenic.com/mercurial/wiki/index.cgi/HgkExtension - Mq (wonderfull Hg version of "quilt', must have!) http://www.selenic.com/mercurial/wiki/index.cgi/MqExtension - Rebase (warning: available only to the next stable version) http://www.selenic.com/mercurial/wiki/index.cgi/RebaseExtension - Transplant ("transplant" patches from another branch or repositor) http://www.selenic.com/mercurial/wiki/index.cgi/TransplantExtension
The one feature of svn that we would miss is the inclusion of foreign version controlled trees, like we do with the pylib tree.
Do you means externals? The features provided by externals in Subversion are not currently available in Mercurial, NestedRepositories is a proposal to integrate this extension into Mercurial: http://www.selenic.com/mercurial/wiki/index.cgi/NestedRepositories -- Seb