On 2008-March-14 , at 13:04 , Aaron Spike wrote:
jiho wrote:
Since this supposes a lot of branching (for SoC, probably also for many large scale changes because the tree still needs to be usable during that time etc.) wouldn't it be a good time to change version control system to something that eases branching and merging? [...]
I think this would be a great time to encourage DVCS usage among the developers. But until a number of us have some experience from which to speak about the products, making a decision to use one would make me nervous.
From past discussion, I gathered that enough people had solid experience with one of those three systems. No one seemed to be an expert of all three but there is enough data to make an informed decision still.
As you may know a few people are already using DVCS systems to do their work on inkscape. Ted uses SVK (you can tell by the number of times that his commit messages say "SVK screwed up the last commit" :-) ). Mental uses git-svn (he described his use of git-svn for jruby at http://moonbase.rydia.net/mental/blog/programming/using-git-svn-for-jruby) . I've heard that a similar workflow is possible with bzr (http://bazaar-vcs.org/BzrForeignBranches/Subversion ). I have not heard anything of hg but I would expect something similar. We can try these tools now, without switching over the entire repo.
Having said that perhaps there is some worth in switching now.
I know git-svn for using it with all my svn-based repos now. It works nicely indeed. However, I still think the best solution would be to switch completely: - it would not cost much to each dev (for git at least, skimming over http://git.or.cz/course/svn.html takes 5 minutes, reading it thoroughly takes 30. not a big deal) - it would avoid a two step process for everyone (svn co first and then git-svn init if the person wants to do refactoring work on his/ her side) - the only situation I see where svn is superior is regarding the integration with online repository browsers and tracking systems such as Trac (there are plugins for git etc. but svn is the default and better supported). But Inkscape do not use such a thing anyway and the online browser of SourceForge is crap enough to be worth replacing by git's web interface. NB: I never used the new interface in Launchpad. I don't know wether it would integrate with git.
OK, now I think others probably have more informed opinions. Please copy the point by point summary below and add to it.
-- GIT ---------------------------- Good - very fast (but anything would be faster than svn anyway) - allows to stash away local changes to fix a small issue. probably useful when, in the middle of a large code change, one notices a local bug which does not have anything to do with the change (not sure this is git-only) - ability to follow chunk of codes around, without relying on file names. Probably useful from a refactoring point of view - probably the fastest growing user base => many tools - TextMate bundle Bad
-- HG ----------------------------- Good - tortoiseHG - TextMate bundle Bad
-- BZR ---------------------------- Good - already integrated in launchpad - supports renames (could be considered a Bad by git users) - supports bundling changesets - tortoiseBZR Bad
JiHO --- http://jo.irisson.free.fr/