[[[
   Fix issue #4185: SVN client silently fails to import an ancestor of external 
file specified viasvn:externals  rule with operative revision.

   * subversion/libsvn_client/externals.c
     (switch_file_external): replace 'url' parameter mistakenly passed to 
svn_ra_do_switch3() by 'switch_loc->url'.
 ]]]


I've reported issue 4185 after SVN 1.7 release and it has not been fixed until 
now.

In brief, when I try to import a file, specified viasvn:externals  rule with 
operative revision, such as for example:
'-r1 A/tags/1.0/somefile.txt somefile.txt'

and it so happens, that this file at specified revision has different URL, such 
as for example:
A/trunk/somefile.txt

that is, 'A/trunk/somefile.txt' is the ancestor of 'A/tags/1.0/somefile.txt 
somefile.txt' used as a source of 'svn copy' op,
then SVN client fails to import it into a WC.

More details and test script are in the ticket.


All this time, because of this issue I had to stick to SVN client version 1.6.
So I figured may be I could do something about it, since I want to switch over 
to new SVN version.
Turned out, that the root of the problem was just a typo.

Again, this issue relates to 1.7.x and 1.8.x versions.

Regards, Alex.

Index: subversion/libsvn_client/externals.c
===================================================================
--- subversion/libsvn_client/externals.c        (revision 1641162)
+++ subversion/libsvn_client/externals.c        (working copy)
@@ -528,7 +528,7 @@ switch_file_external(const char *local_abspath,
      invalid revnum, that means RA will use the latest revision. */
     SVN_ERR(svn_ra_do_switch3(ra_session, &reporter, &report_baton,
                               switch_loc->rev,
-                              target, svn_depth_unknown, url,
+                              target, svn_depth_unknown, switch_loc->url,
                               FALSE /* send_copyfrom */,
                               TRUE /* ignore_ancestry */,
                               switch_editor, switch_baton,

Reply via email to