Switch from SVN to xxx ?
Nicolas Pinault
nicolasp at aaton.com
Fri Jun 4 13:21:43 BST 2010
Tom,
Thanks for sharing your experience.
Nicolas
Le 04/06/2010 13:36, Tom Widmer a écrit :
> Nicolas Pinault wrote:
>> Hi all,
>>
>> This message is sent to Bazaar and Mercurial user lists.
>>
>> I work in a small dev team.
>> Long time ago, I introduced Visual Source Safe for source
>> versionning. Why VSS ? Because projects which where of a concern were
>> Visual Studio projects. As VSS was in the place, we also used VSS for
>> other kinds of projects. But VSS is a nightmare. So, after years, I
>> switched most projects to Subversion. SVN is incredibly better than
>> VSS. I like SVN. I find it easy to understand its way of working
>> (even if is this not the case of some of my colleagues). I find it
>> fast and reliable. I use TortoiseSVN (a little) and Subclipse (a
>> lot). Eclipse integration is a must have. We have many projects
>> managed with Eclipse (cross-compilation projects for embedded systems).
>> I read many things about distributed versionning systems for years now.
>
> I haven't widely used any of them, but I'm primarily a Windows java
> developer currently on SVN (I handled the import from VSS), so I'm in
> exactly the same boat as you (though we use IntelliJ IDEA, not Eclipse).
>
>> I have spent many hours reading articles and comparisons between
>> DSCM. It is hard to get a conclusion because most articles are
>> outdated. Especially since Bazaar 2.x. It seems that Bazaar and
>> Mercurial are the finalists (Maybe because I like Python language).
>> Apparently Git is not correctly supported under windows and is harder
>> to understand.
>
> Don't discount Git. I'd say it's actually easier to understand
> conceptually, though it's command line is a nightmare for Windows
> developers. There are GUI tools (such as GitGUI), it has the most
> active developer community (even on Windows possibly), it has a
> pure-java implementation (used by Eclipse, JGit, which should work
> fine on Windows), etc. If you use a continuous integration server,
> most systems support Git (and many don't support bzr or hg).
>
>> So, Bazaar or Mercurial.
>> I have 2 problems :
>> - I still wonder what kind of benefice I can expect if I switch to
>> Bazaar or Mercurial.
>
> Pros:
> Improved performance
> More workflows available (e.g. branch per feature, or per bug, are
> possible)
> If you don't use svn:externals or other svn specific features,
> migration will be simple using bzr-svn/hg-svn (in fact, you can just
> start using bzr-svn to trial it for your own purposes without your
> colleagues even realising - it is mostly seamless).
> Better local checkout performance (SVN's working copy library is
> currently pretty slow)
> Much faster for operations that would normally require network access
> in SVN (e.g. log, diff, etc.)
> Disconnected operation (useful for working from home without a VPN)
>
> Cons:
> Splitting up your repository might be a pain (often in Subversion,
> your entire company can use a single repo (e.g. look at the HUGE
> Apache SVN repo).
> Managing combining the different repos into a sensible on-disk layout
> (bzr-externals, scm-proj, hg nested repos help here, but there is no
> automatic migration path from SVN)
> No partial checkouts (related to above)
> GUI support is less mature (particularly in Java IDEs)
> SVN file/dir properties are not fully handled by any other the other
> systems, so if you use them extensively, you will have to find an
> alternative.
> SVN has the most mature for multi-platform development (e.g. newline
> conversion, etc.).
> Cherry picking support is not as good as you might expect (and not
> notably better than SVN 1.5 really) - it can be better to fit your
> workflow to the tool rather than try to make it fit to your workflow,
> by eliminating the need for cherrypicking to release branches (e.g. by
> using the merge-fixes-forward technique).
>
>> - If I switch to one of them, which one ?
>
> Bazaar and Git's branching models works better with heavy-weight IDEs
> (since you can switch a checkout between branches, much like SVN
> (except much much quicker!)). Mercurial supports this for named
> branches, but they are only recommended for long lived branches (such
> as release ones). HG bookmarks also allow this, but are not a core
> feature, and local only at the moment I think.
>
> Performance should be ok with either, though Bzr has some issues with
> its wire protocols (they are being fixed though).
>
>
>> I have read Bazaar and Mercurial documents. Of course, each one
>> claims to be simpler, better... than the other. For now, I can see
>> only one real difference : speed. But we don't have very big
>> projects. Only quite big projects. So speed should not be of a concern.
>
> The different branching models are a major concern if you are using a
> heavy weight IDE. You can't possibly afford to use one-branch-per-bug
> for a large project using a Java IDE in HG for example, since that
> requires initialising your IDE for a new working tree (or you can try
> hg bookmarks) - that will take longer than fixing the bug in many
> cases! By contrast, Git and Bzr have better core support for switching
> a single tree between branches, but as I mentioned, you could take a
> look at hg bookmarks.
>
> Finally, HG is gaining traction in the Java world thanks to Sun
> switching to it, so that may be a consideration. OTOH, I would prefer
> Bzr personally, for it's more powerful branching model.
>
> Tom
>
>
>
More information about the bazaar
mailing list