You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by sv...@apache.org on 2018/11/13 04:00:17 UTC

svn commit: r1846480 - in /subversion/branches/1.11.x: ./ STATUS subversion/libsvn_client/copy.c subversion/tests/cmdline/copy_tests.py

Author: svn-role
Date: Tue Nov 13 04:00:16 2018
New Revision: 1846480

URL: http://svn.apache.org/viewvc?rev=1846480&view=rev
Log:
Merge the r1846403 group from trunk:

 * r1846403, r1846406
   Issue #SVN-4785: Fix foreign repo copy with peg/operative revisions.
   Justification:
     It has been broken since first introduced in 1.8.
   Votes:
     +1: julianfoad, brane, rhuijben

Modified:
    subversion/branches/1.11.x/   (props changed)
    subversion/branches/1.11.x/STATUS
    subversion/branches/1.11.x/subversion/libsvn_client/copy.c
    subversion/branches/1.11.x/subversion/tests/cmdline/copy_tests.py

Propchange: subversion/branches/1.11.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Nov 13 04:00:16 2018
@@ -100,4 +100,4 @@
 /subversion/branches/verify-at-commit:1462039-1462408
 /subversion/branches/verify-keep-going:1439280-1546110
 /subversion/branches/wc-collate-path:1402685-1480384
-/subversion/trunk:1840990-1840991,1840995,1840997,1841059,1841079,1841091,1841098,1841136,1841180,1841272,1841481,1841524-1841525,1841567,1841600-1841602,1841606,1841719,1841725,1841731,1841736,1841742-1841743,1841753-1841754,1841822,1841850,1841867,1842090,1842222-1842223,1842334,1842814,1842827,1842829,1842877,1843888,1844882,1845204,1845261,1845408,1845555-1845556,1845559,1845577
+/subversion/trunk:1840990-1840991,1840995,1840997,1841059,1841079,1841091,1841098,1841136,1841180,1841272,1841481,1841524-1841525,1841567,1841600-1841602,1841606,1841719,1841725,1841731,1841736,1841742-1841743,1841753-1841754,1841822,1841850,1841867,1842090,1842222-1842223,1842334,1842814,1842827,1842829,1842877,1843888,1844882,1845204,1845261,1845408,1845555-1845556,1845559,1845577,1846403,1846406

Modified: subversion/branches/1.11.x/STATUS
URL: http://svn.apache.org/viewvc/subversion/branches/1.11.x/STATUS?rev=1846480&r1=1846479&r2=1846480&view=diff
==============================================================================
--- subversion/branches/1.11.x/STATUS (original)
+++ subversion/branches/1.11.x/STATUS Tue Nov 13 04:00:16 2018
@@ -34,10 +34,3 @@ Veto-blocked changes:
 
 Approved changes:
 =================
-
- * r1846403, r1846406
-   Issue #SVN-4785: Fix foreign repo copy with peg/operative revisions.
-   Justification:
-     It has been broken since first introduced in 1.8.
-   Votes:
-     +1: julianfoad, brane, rhuijben

Modified: subversion/branches/1.11.x/subversion/libsvn_client/copy.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.11.x/subversion/libsvn_client/copy.c?rev=1846480&r1=1846479&r2=1846480&view=diff
==============================================================================
--- subversion/branches/1.11.x/subversion/libsvn_client/copy.c (original)
+++ subversion/branches/1.11.x/subversion/libsvn_client/copy.c Tue Nov 13 04:00:16 2018
@@ -2453,7 +2453,7 @@ repos_to_wc_copy_single(svn_boolean_t *t
         {
           *timestamp_sleep = TRUE;
 
-          SVN_ERR(svn_client__copy_foreign(pair->src_abspath_or_url,
+          SVN_ERR(svn_client__copy_foreign(pair->src_original,
                                            dst_abspath,
                                            &pair->src_peg_revision,
                                            &pair->src_op_revision,

Modified: subversion/branches/1.11.x/subversion/tests/cmdline/copy_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.11.x/subversion/tests/cmdline/copy_tests.py?rev=1846480&r1=1846479&r2=1846480&view=diff
==============================================================================
--- subversion/branches/1.11.x/subversion/tests/cmdline/copy_tests.py (original)
+++ subversion/branches/1.11.x/subversion/tests/cmdline/copy_tests.py Tue Nov 13 04:00:16 2018
@@ -1021,6 +1021,56 @@ def repos_to_wc(sbox):
                                      os.path.join(D_dir, 'B'))
 
 #----------------------------------------------------------------------
+def foreign_repos_to_wc(sbox):
+  "foreign repository to WC copy"
+
+  sbox.build()
+  wc_dir = sbox.wc_dir
+
+  def move_url(repo_url, source, dest):
+    svntest.main.run_svn(False, 'move', '-m', svntest.main.make_log_msg(),
+                         repo_url + '/' + source,
+                         repo_url + '/' + dest)
+
+  # We have a standard repository and working copy.  Now we create a
+  # second repository with the same greek tree, but different UUID.
+  repo_dir       = sbox.repo_dir
+  other_repo_dir, other_repo_url = sbox.add_repo_path('other')
+  svntest.main.copy_repos(repo_dir, other_repo_dir, 1, 1)
+  move_url(other_repo_url, 'A', 'A2')
+  move_url(other_repo_url, 'A2', 'A3')
+
+  # URL->wc copy:
+  # copy a file and a directory from a foreign repository.
+  # we should get some scheduled additions *without history*.
+  E_url = other_repo_url + "/A2/B/E"
+  pi_url = other_repo_url + "/A2/D/G/pi"
+  peg_rev = '2'
+  op_rev = '1'
+  E_url_resolved = E_url.replace('/A2/', '/A/')
+  pi_url_resolved = pi_url.replace('/A2/', '/A/')
+
+  expected_output = svntest.verify.UnorderedOutput([
+    '--- Copying from foreign repository URL \'%s\':\n' % E_url_resolved,
+    'A         %s\n' % sbox.ospath('E'),
+    'A         %s\n' % sbox.ospath('E/beta'),
+    'A         %s\n' % sbox.ospath('E/alpha'),
+  ])
+  svntest.actions.run_and_verify_svn(expected_output, [],
+                                     'copy', '-r' + op_rev,
+                                     E_url + '@' + peg_rev,
+                                     wc_dir)
+
+  expected_output = [
+    '--- Copying from foreign repository URL \'%s\':\n' % pi_url_resolved,
+    'A         %s\n' % sbox.ospath('pi'),
+  ]
+  svntest.actions.run_and_verify_svn(expected_output, [],
+                                     'copy', '-r' + op_rev,
+                                     pi_url + '@' + peg_rev,
+                                     wc_dir)
+
+#----------------------------------------------------------------------
 # Issue 1084: ra_svn move/copy bug
 @Issue(1084)
 def copy_to_root(sbox):
@@ -6044,6 +6094,7 @@ test_list = [ None,
               ext_wc_copy_deleted,
               copy_subtree_deleted,
               resurrect_at_root,
+              foreign_repos_to_wc,
              ]
 
 if __name__ == '__main__':