[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: Stefan Sperling <stsp_at_apache.org>
Date: Fri, 21 Jul 2017 11:16:34 +0200

On Thu, Jul 20, 2017 at 08:01:55PM -0700, Xin LI wrote:
> 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'.

The FreeBSD repository is one of the best real world data sets available
to Subversion developers. I have referred to it several times while
working on the new conflict resolver planned for Subversion 1.10 and
have spent days running test merges against this repository.
The repository shows many difficult and interesting problems we would
normally only see in repositories that are locked up inside companies.

While some of the problems I have seen are due to limitations of SVN,
I believe most problems FreeBSD developers have with SVN are self-made.
FreeBSD developers in general do not really understand the tool and
don't know how to work arounds its weaknesses. The FreeBSD handbook has
a section on Subversion which is full of bad advice and half-truths.

I wish there was more communication between the FreeBSD and Subversion
projects about such issues, but such communication is virtually never
existed. (I may be wrong, but I think you are the only FreeBSD developer
posting on this list -- thank you!)

At EuroBSDcon 2014 I offered a special SVN tutorial for FreeBSD developers.
There were many participants but *nobody* of them were FreeBSD developers :(
There was a clear lack of interest for this kind of communication.
So the tutorial didn't go as planned and no interesting conversation happened.
You can still find the tutorial here (one of your own bad merges was discussed
in there, too, I believe): https://stsp.name/eurobsdcon2014-freebsd/
Received on 2017-07-21 11:17:06 CEST

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