You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by pb...@apache.org on 2013/01/25 18:27:55 UTC

svn commit: r1438602 - /subversion/trunk/subversion/tests/cmdline/merge_tests.py

Author: pburba
Date: Fri Jan 25 17:27:55 2013
New Revision: 1438602

URL: http://svn.apache.org/viewvc?rev=1438602&view=rev
Log:
* subversion/tests/cmdline/merge_tests.py
  (conflict_aborted_mergeinfo_described_partial_merge): New test for
   issue #4306 'multiple editor drive merges record wrong mergeinfo
   during conflicts'.



Modified:
    subversion/trunk/subversion/tests/cmdline/merge_tests.py

Modified: subversion/trunk/subversion/tests/cmdline/merge_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/merge_tests.py?rev=1438602&r1=1438601&r2=1438602&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/merge_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/merge_tests.py Fri Jan 25 17:27:55 2013
@@ -18174,8 +18174,56 @@ def merge_properties_on_adds(sbox):
   # })
   # svntest.actions.run_and_verify_status(G, expected_status)
 
-
-
+@SkipUnless(server_has_mergeinfo)
+@Issue(4306)
+@XFail()
+# Test for issue #4306 'multiple editor drive merges record wrong
+# mergeinfo during conflicts'
+def conflict_aborted_mergeinfo_described_partial_merge(sbox):
+  "conflicted split merge can be repeated"
+
+  sbox.build()
+
+  iota_copy_path = sbox.ospath('iota-copy')
+
+  # r2
+  sbox.simple_copy('iota', 'iota-copy')
+  sbox.simple_commit()
+
+  # r3
+  sbox.simple_append('iota', 'new line in r3')
+  sbox.simple_commit()
+
+  # r4
+  sbox.simple_append('iota', 'new line in r4')
+  sbox.simple_commit()
+
+  # r5
+  sbox.simple_append('iota', 'new line in r5')
+  sbox.simple_commit()
+
+  # r6 Merge r4 from iota to iota-moved
+  svntest.actions.run_and_verify_svn(None, None, [], 'merge', '^/iota',
+                                     '-c', '4', iota_copy_path, '--accept',
+                                     'theirs-conflict')
+  sbox.simple_commit()
+
+  # Merge everything (i.e. r2 and r5) from iota to iota-moved.
+  # This is split into to merges, first of r2 and then of r5.
+  # But since we are postponing conflict resolution, the merge
+  # should stop after r2 is merged, allowing us to resolve and
+  # repeat the merge at which point r5 can be merged.  The mergeinfo
+  # on iota-copy then should only reflect that r2 and r3 have been
+  # merged from ^/iota; r5 should not be present.
+  svntest.actions.run_and_verify_svn(None, None, '.*', 'merge', '^/iota',
+                                     iota_copy_path, '--accept', 'postpone')
+
+  # Currently this test fails because the merge fails after merging
+  # only r2 (as it should) but mergeinfo for r5-6 is recorded, preventing
+  # subsequent repeat merges from applying the operative r5.
+  svntest.actions.run_and_verify_svn(
+    "Incorrect mergeinfo set during conflict aborted merge",
+    ['/iota:2-4\n'], [], 'pg', SVN_PROP_MERGEINFO, iota_copy_path)
 
 ########################################################################
 # Run the tests
@@ -18317,6 +18365,7 @@ test_list = [ None,
               merge_conflict_when_keywords_removed,
               merge_target_selection,
               merge_properties_on_adds,
+              conflict_aborted_mergeinfo_described_partial_merge,
              ]
 
 if __name__ == '__main__':