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

Re: Subversion merge creates bogus tree conflicts

From: David Moon <david.moon_at_versata.com>
Date: Tue, 15 Jan 2013 13:15:17 -0500

On Jan 15, 2013, at 12:06 PM, Julian Foad wrote:

> You didn't state what nodes were already present at the start of
> your test case; I'm assuming 'test1' was not present and so 'B1'
> was created by the first commit shown, and 'B2' originated as 'T1'
> which was created in the second commit shown.

Yes, test1 was created by the test case. I should have said that.

> but I at this point I still think the use case is invalid. Or, put
> another way, the use case is certainly something people might want
> to do from time to time but the "merge" command is not the tool to
> do it. Rather it requires some manual steps to set up a starting
> point from which "merge" can then do the rest.

Fair enough, but there is no clue in existing documentation what
those manual steps might be.

As a user, I think it would be easier if the special fixing up had to
be done after the merge had reported conflicts rather than before.
But there don't seem to be the same svn resolve features for
directory merging as for file merging.

> Two adds of different names to the same directory do not conflict.
> The conflict you saw is on attempting to add a file into a
> directory ('A') that didn't exist on the target.

I am sure you are correct, but it wasn't clear from the output of svn
merge and svn status. This can be regarded as another bug report:
the error messages for tree conflict (in svn 1.7.8, I don't know
about newer versions) range from misleading to incomprehensible.
Designing good error messages is not an easy problem, as I well know
myself, so please take that as a potential area for improvement, not
as criticism.

Hmm, I wonder if the directory not existing on the target means this
is actually a simple bug, not really some complicated problem with
merging. Why wasn't the parent directory of a file being added
created automatically, as if svn merge took a --parent argument?
When would that be harmful?

But then, what does the "local add, incoming add upon merge" error
mean if not a conflict of adding different names to the same
directory? Sorry I don't have a simple test case to provoke that error.

Again, I don't need a solution myself. I only reported this as a way
of giving back to the Subversion community by suggesting an ease of
use improvement.

--Dave Moon
Received on 2013-01-15 19:15:55 CET

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

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