[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn vs. git

From: Xin LI <delphij_at_gmail.com>
Date: Thu, 20 Jul 2017 20:01:55 -0700

Since the article mentioned FreeBSD (I'm a FreeBSD developer, and I
use both git and subversion everyday), I think I need to point out
that the author have missed some important pain points.

My biggest pain point with subversion is that 'svn up', 'svn st' and
'svn diff' take much longer time compared to git's counterpart ('git
pull', 'git st', and 'git diff') for FreeBSD's base/ (src) and ports/
(ports) trees.

As a result, doing merges across branches with subversion could become
quite painful with FreeBSD's branch usage, where branches tends to be
diverged quite a bit (we have multiple "-STABLE" branches, and
sometimes changes are not backported from trunk to these branches).
Because the tree is large, 'svn merge' operation is slow compared to
the git counterpart (git cherry-pick, except it does not keep the
mergeinfo this way), and doing multiple merges would require the
repository server (or a local mirror), and most importantly, if
something goes wrong in the middle, there is no easy way to recover
from it. Here is an example, let's say I have a list of 5 commits to
be merged, and the first one have a conflict that requires manual
tweaks, then I would merge 2-5, and at 5 I saw another conflict and
noticed that there is one additional commit that was missing, I have
to start over. With git, the work is easier because the first 4
changes are cherry-picked as local commits, and it's quite easy to
reorder or insert commits with 'git rebase'.

I think svn have its advantages, and I like the way it keeps track of
mergeinfo, etc., and use of a centralized repository would give the
developer a very quick idea of where they are at, however, these
benefits doesn't really overweight the fast "everyday" operations that
git offers.

As far as I know, many FreeBSD developers actually uses git as a patch
manager for their everyday development with git-svn or our github
export, and commit with svn when the changes are ready to get landed.
In my previous work (on FreeNAS), we used git almost exclusively
(other than upstreaming changes back to FreeBSD, we don't use
subversion at all).


On Thu, Jul 20, 2017 at 12:41 PM, Johan Corveleyn <jcorvel_at_gmail.com> wrote:
> Not wanting to start a flame war, but for all svn users and admins out there
> that sometimes need to have this conversation ... I found this to be a very
> nice website:
> https://svnvsgit.com
> (I'm not affiliated with the website, just ran into it)
> --
> Johan
Received on 2017-07-21 05:02:03 CEST

This is an archived mail posted to the Subversion Users mailing list.