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

possible client bug with 1.10 automatic conflict resolver

From: Blaine Whittle <BWhittle_at_blizzard.com>
Date: Fri, 11 Aug 2017 21:26:14 +0000

I'm seeing different behavior with automatic conflict resolver when operating against a 1.10.0-alpha3 compared to a 1.7.10 server. I'm using a 1.10.0-alpha3 client.

Test case

  * Create branch B from branch A.
  * Checkout branch B.
  * Modify file contents in branch B + commit.
  * Move / rename file in branch A + commit.
  * Merge branch B back to branch A.

When testing against both servers, the client was correctly identified that the file was moved and the revision(s) of the move / rename. However, when testing against the 1.7.10 server the client did not automatically resolve the tree conflict and emitted the text "Subversion is not smart enough to resolve this tree conflict automatically!"

The exact output from a 1.7.10 server was
U .
Summary of conflicts:
  Tree conflicts: 1
Searching tree conflict details for 'testfile.txt' in repository:
Checking r538794... done
Tree conflict on 'testfile.txt':
Changes destined for a file arrived via the following revisions during merge of
'^/branches/merge-test-trunk/testfile.txt:538791-538800':
r538798 by bwhittle
No such file or directory was found in the merge target working copy.
The item was moved away to '^/trunk/test/testfile2.txt' in r538794 by bwhittle.

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:

Whereas the 1.10.0 server produced
U .
Summary of conflicts:
  Tree conflicts: 1
Searching tree conflict details for 'foo/bar4.txt' in repository:
Checking r20... done
Tree conflict on 'foo/bar4.txt':
Changes destined for a file arrived via the following revisions during merge of
'^/branches/branch3/foo/bar4.txt:19-22':
r18 by user1, r19 by user1, r21 by user1
No such file or directory was found in the merge target working copy.
The item was moved away to '^/trunk/foo/bar.txt' in r20 by user1.
And then moved away to '^/trunk/bar2.txt' by user1 in r22.
Select: (p) Postpone, (r) Mark as resolved,
        (m) Apply to move destination, (h) Help, (q) Quit resolution: m
G bar2.txt
Tree conflict at 'foo/bar4.txt' marked as resolved.
Summary of conflicts:
  Tree conflicts: 0 remaining (and 1 already resolved)

The 1.10.0 server test shows two file renames whereas the 1.7.10 only had one. This is correct and expected behavior in both cases.

The same client machine was used in both tests. It's possible I'm doing something wrong and the issue isn't related to the server version. However I've rerun slightly different versions of this test and got the same results.
Received on 2017-08-15 08:44:43 CEST

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