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 2010/05/18 23:26:15 UTC

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

Author: pburba
Date: Tue May 18 21:26:14 2010
New Revision: 945896

URL: http://svn.apache.org/viewvc?rev=945896&view=rev
Log:
Extend an existing merge test to cover issue #3640.

* subversion/tests/cmdline/merge_tests.py

  (basic_reintegrate): Extend test.

  (test_list): Set basic_reintegrate to XFail while I work on a fix.

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=945896&r1=945895&r2=945896&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/merge_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/merge_tests.py Tue May 18 21:26:14 2010
@@ -10399,6 +10399,8 @@ def new_subtrees_should_not_break_merge(
 def basic_reintegrate(sbox):
   "basic merge --reintegrate support"
 
+  # Also includes test for issue #3640 'moved target breaks reintegrate merge'
+
   # Make A_COPY branch in r2, and do a few more commits to A in r3-6.
   sbox.build()
   wc_dir = sbox.wc_dir
@@ -10560,15 +10562,81 @@ def basic_reintegrate(sbox):
                                        None, True, True,
                                        '--reintegrate')
 
-  # Finally, commit the result of the merge (r9).
-  expected_output = wc.State(wc_dir, {
-    'A/mu'           : Item(verb='Sending'),
-    'A'              : Item(verb='Sending'),
+  # Test issue #3640:
+  # 
+  # Revert the merge then move A to A_MOVED in r9.  Repeat the merge, but
+  # targeting A_MOVED this time.  This should work with almost the same
+  # results.  The only differences being the inclusion of r9 in the
+  # mergeinfo and the A-->A_MOVED path difference.
+  svntest.actions.run_and_verify_svn(None, None, [], 'revert', '-R', wc_dir)
+  svntest.actions.run_and_verify_svn(None,
+                                     ['\n', 'Committed revision 9.\n'],
+                                     [], 'move',
+                                     sbox.repo_url + '/A',
+                                     sbox.repo_url + '/A_MOVED',
+                                     '-m', 'Copy A to A_MOVED')
+  svntest.actions.run_and_verify_svn(None, None, [], 'up', wc_dir)
+  A_MOVED_path = os.path.join(wc_dir, "A_MOVED")
+  expected_output = wc.State(A_MOVED_path, {
+    'mu'           : Item(status='U '),
     })
-  expected_status.tweak('A', 'A/mu', wc_rev=9)
-  svntest.actions.run_and_verify_commit(wc_dir, expected_output,
-                                        expected_status, None, wc_dir)
-
+  expected_mergeinfo_output = wc.State(A_MOVED_path, {
+    '' : Item(status=' G'),
+    })
+  expected_elision_output = wc.State(A_MOVED_path, {
+    })
+  expected_status = wc.State(A_MOVED_path, {
+    "B"            : Item(status='  '),
+    "B/lambda"     : Item(status='  '),
+    "B/E"          : Item(status='  '),
+    "B/E/alpha"    : Item(status='  '),
+    "B/E/beta"     : Item(status='  '),
+    "B/F"          : Item(status='  '),
+    "mu"           : Item(status='M '),
+    "C"            : Item(status='  '),
+    "D"            : Item(status='  '),
+    "D/gamma"      : Item(status='  '),
+    "D/G"          : Item(status='  '),
+    "D/G/pi"       : Item(status='  '),
+    "D/G/rho"      : Item(status='  '),
+    "D/G/tau"      : Item(status='  '),
+    "D/H"          : Item(status='  '),
+    "D/H/chi"      : Item(status='  '),
+    "D/H/omega"    : Item(status='  '),
+    "D/H/psi"      : Item(status='  '),
+    ""             : Item(status=' M'),
+  })
+  expected_status.tweak(wc_rev=9)
+  k_expected_disk.tweak('', props={SVN_PROP_MERGEINFO : '/A_COPY:2-9'})
+  expected_skip = wc.State(A_MOVED_path, {})
+  # This test is currently marked as XFail as the reintegrate fails:
+  #
+  #   merge_tests-77>svn merge ^/A_COPY A --reintegrate
+  #   ..\..\..\subversion\svn\merge-cmd.c:70: (apr_err=155010)
+  #   ..\..\..\subversion\svn\util.c:1118: (apr_err=155010)
+  #   ..\..\..\subversion\libsvn_client\cmdline.c:269: (apr_err=155010)
+  #   ..\..\..\subversion\libsvn_client\cmdline.c:132: (apr_err=155010)
+  #   ..\..\..\subversion\libsvn_client\util.c:270: (apr_err=155010)
+  #   ..\..\..\subversion\libsvn_client\ra.c:430: (apr_err=155010)
+  #   ..\..\..\subversion\libsvn_client\url.c:106: (apr_err=155010)
+  #   ..\..\..\subversion\libsvn_client\url.c:151: (apr_err=155010)
+  #   ..\..\..\subversion\libsvn_wc\node.c:432: (apr_err=155010)
+  #   ..\..\..\subversion\libsvn_wc\wc_db.c:4678: (apr_err=155010)
+  #   ..\..\..\subversion\libsvn_wc\wc_db.c:4670: (apr_err=155010)
+  #   svn: The node 'C:\SVN\src-trunk\Debug\subversion\tests\cmdline\
+  #     svn-test-work\working_copies\merge_tests-77\A' was not found.
+  svntest.actions.run_and_verify_merge(A_MOVED_path, None, None,
+                                       sbox.repo_url + '/A_COPY', None,
+                                       expected_output,
+                                       expected_mergeinfo_output,
+                                       expected_elision_output,
+                                       k_expected_disk,
+                                       expected_status,
+                                       expected_skip,
+                                       None, None, None, None,
+                                       None, True, True,
+                                       '--reintegrate')
+  
 def reintegrate_with_rename(sbox):
   "merge --reintegrate with renamed file on branch"
 
@@ -19141,8 +19209,8 @@ test_list = [ None,
                          server_has_mergeinfo),
               SkipUnless(new_subtrees_should_not_break_merge,
                          server_has_mergeinfo),
-              SkipUnless(basic_reintegrate,
-                         server_has_mergeinfo),
+              XFail(SkipUnless(basic_reintegrate,
+                               server_has_mergeinfo)),
               reintegrate_with_rename,
               reintegrate_branch_never_merged_to,
               reintegrate_fail_on_modified_wc,