You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Daniel Shahaf <d....@daniel.shahaf.name> on 2017/12/30 03:28:19 UTC

Tree conflict 'svn merge' message

I just tried to merge the swig-py3 branch into trunk [not in order to
commit the merge, but only in order to run 'svn diff' on its result],
and got the following output from 'svn merge':

[[[
Summary of conflicts:
  Tree conflicts: 1
Searching tree conflict details for 'build/generator/util/executable.py' in repository:
Checking r1819556... done
Tree conflict on 'build/generator/util/executable.py':
Changes destined for a file arrived via the following revisions during merge of
'^/subversion/branches/swig-py3/build/generator/util/executable.py:1819163-1819564':

No such file or directory was found in the merge target working copy.
'^/subversion/trunk/build/generator/util/executable.py' was deleted in r1819556 by danielsh.

Subversion is not smart enough to resolve this tree conflict automatically!
See 'svn help resolve' for more information.

Select: (p) Postpone, (r) Mark as resolved, (h) Help, (q) Quit resolution: h
]]]

That's the correct diagnosis: the branch changed a file
(build/generator/util/executable.py) that was later deleted on trunk.
So that worked well.

That said, I'm a bit confused by the language "via the following
revisions …:" where the colon isn't followed by one or more revision
numbers.  Is it just an empty set of revisions?

Cheers,

Daniel

Re: Tree conflict 'svn merge' message

Posted by Paul Hammant <pa...@hammant.org>.
Here's one from the past - https://issues.apache.org/jira/browse/SVN-3495

- A famous airline was the client back then and they were strangling their
older (but accomplished) cgi-bin/C++ stack. We were doing concurrent
development of consecutive releases. Different teams from two consultancies
(ThoughtWorks and Globant) were working on different branches, and about
four major releases were being developed at the same time. Each "following"
release team was supposed to merge the prior release teams weekly changes.
A cascade branching model.  We tried to hunt around for someone to fix that
big for hard cash, but could not.

We hacked our way through it at the time, and a couple of months later
moved every one to Trunk-Based Development (including a love of build
flags, and boot flags). Flags are 'toggles' in Martin Fowler's lexicon.
Branch by Abstraction figured too, as did a lot of Jenkins infrastructure
and a policy of rolling back commits if they broke in any of the pipelines
that Jenkins was running in parallel.  Builds were still batches of commits
though, a we didn't have the infra to run one build per commit. We (I) had
put too much Selenium tests in the pipeline and they really took a while
(even if run parallelized). It wasn't a patch on Google's per-commit fu
though.  Oh, with Trunk-Based Development (and flags and
branch-by-abstraction) we were never going to have a merge conflict again,
of course.

- Paul

Re: Tree conflict 'svn merge' message

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
Stefan Sperling wrote on Sat, 30 Dec 2017 17:58 +0100:
> This could be a bug. Perhaps the wrong message is selected for some
> reason. Can you please file an issue? I cannot look closely right now.

Sure, https://issues.apache.org/jira/browse/SVN-4717.

Excuse brevity.

Daniel

Re: Tree conflict 'svn merge' message

Posted by Stefan Sperling <st...@apache.org>.
On Sat, Dec 30, 2017 at 03:28:19AM +0000, Daniel Shahaf wrote:
> I just tried to merge the swig-py3 branch into trunk [not in order to
> commit the merge, but only in order to run 'svn diff' on its result],
> and got the following output from 'svn merge':
> 
> [[[
> Summary of conflicts:
>   Tree conflicts: 1
> Searching tree conflict details for 'build/generator/util/executable.py' in repository:
> Checking r1819556... done
> Tree conflict on 'build/generator/util/executable.py':
> Changes destined for a file arrived via the following revisions during merge of
> '^/subversion/branches/swig-py3/build/generator/util/executable.py:1819163-1819564':
> 
> No such file or directory was found in the merge target working copy.
> '^/subversion/trunk/build/generator/util/executable.py' was deleted in r1819556 by danielsh.
> 
> Subversion is not smart enough to resolve this tree conflict automatically!
> See 'svn help resolve' for more information.
> 
> Select: (p) Postpone, (r) Mark as resolved, (h) Help, (q) Quit resolution: h
> ]]]
> 
> That's the correct diagnosis: the branch changed a file
> (build/generator/util/executable.py) that was later deleted on trunk.
> So that worked well.
> 
> That said, I'm a bit confused by the language "via the following
> revisions …:" where the colon isn't followed by one or more revision
> numbers.  Is it just an empty set of revisions?

This could be a bug. Perhaps the wrong message is selected for some
reason. Can you please file an issue? I cannot look closely right now.

Thanks,
Stefan