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

Re: Correct way of doing merge in a complex repository?

From: Stefan Sperling <stsp_at_elego.de>
Date: Thu, 26 Jun 2014 00:16:42 +0200

On Wed, Jun 25, 2014 at 02:26:34PM -0700, Xin LI wrote:
> Thanks for that. Is it possible to tell svn that the file have two
> parents? e.g. it's derived from both contrib/file/ascmagic.c and
> ^/vendor/file/dist/src/ascmagic.c? Or is that impossible with svn?

Currently, SVN doesn't have such a concept.

There is no way to automatically associate the move source and target.
Except, as of Subversion 1.8, the only time they are tied together
is when a move is made locally in the working copy (i.e. before commit).
When updating the working copy, the moved-away subtrees can be
updated by the conflict resolver. But there is no server-side
support for moves, so after commit the association is gone.

Subversion can detect tree conflicts quite well. And this wasn't
always the case. Before Subversion 1.6 situations which are now flagged
as tree conflicts often caused changes to be lost without warning.

But Subversion still has no built-in logic to resolve tree conflicts.
It relies on users to do that themselves. Tree conflict markers tell
users which files need to be checked. And it's up to users to match up
any deletes and copies which are in fact meant to represent moves.

Understandably, it's a huge pain for many of our users to resolve
tree conflicts without support from SVN. It looks like this won't
change in Subversion 1.9. Partly because it's not an easy problem
to solve, and partly because the community has focused on other
things during the 1.9 dev cycle which is coming to a close.
Some design work for server-side move support is going on but so far
it's just theory. I believe we should at least improve the conflict
resolver in future releases, even if server-side moves don't ever happen.

BTW, I'm happy you wrote to our list. I will take this as an opportunity
to prepare some material for my tutorial at eurobsdcon:
http://2014.eurobsdcon.org/talks-and-schedule/tutorials/#StefanSperling
I'd like to know more about how FreeBSD developers are managing vendor
branches. Can you point me to some information about that? I admit I haven't
yet read all of FreeBSD's developer documentation, but I've read some of it.

If you need help with your merge or have any further questions, please ask.
Received on 2014-06-26 00:17:18 CEST

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.