On Thu, May 16, 2013 at 05:07:08PM +0200, Bert Huijben wrote:
> I think we still do, but how can we determine if an incoming 'delete
> <this-exact-tree>' should apply to a node that is not there?
It sounds like you are still talking about a merge into a sparse WC?
But that is not the problem, as Paul pointed out. The node to be
deleted is there during the merge into an infinite depth WC.
Anyway, I believe the shallow merge is a red herring.
During the merge at infinite depth, the tree to be deleted no the
branch does not match the tree deleted on the trunk:
$ svn diff ^/A/B/E_at_6 A_COPY/B/E
Index: A_COPY/B/E/beta
===================================================================
--- A_COPY/B/E/beta (file:///home/stsp/svn/svn-trunk/subversion/tests/cmdline/svn-test-work/repositories/merge_tests-139/A/B/E) (revision 6)
+++ A_COPY/B/E/beta (.../A_COPY/B/E) (working copy)
@@ -1 +1 @@
-New content
\ No newline at end of file
+This is the file 'beta'.
So I agree that the tree conflict flagged at the end of Paul's test
is warranted. The merge is not deleting the same tree as it was
deleting on trunk.
If I tweak the test to not run a shallow merge, as below, the test
fails in the same way.
$ svn diff
Index: merge_tests.py
===================================================================
--- merge_tests.py (revision 1483398)
+++ merge_tests.py (working copy)
@@ -19026,8 +19026,8 @@ def merge_to_empty_target_merge_to_infinite_target
sbox.simple_commit()
# r3 - Set depth of A_COPY to empty, merge the r3 from ^/A.
- svntest.actions.run_and_verify_svn(None, None, [], 'up',
- '--set-depth=empty', A_COPY_path)
+ #svntest.actions.run_and_verify_svn(None, None, [], 'up',
+ # '--set-depth=empty', A_COPY_path)
svntest.actions.run_and_verify_svn(None, None, [], 'merge', '-c7',
'^/A', A_COPY_path)
sbox.simple_commit()
Received on 2013-05-16 17:33:21 CEST