@matheusbsbs / matheus-bagliano / commits / 50ff236670
Fork 0

git-svn: Canonicalize svn urls to prevent libsvn assertion

Cloning/initializing svn repositories with an uncanonicalize url does not work as libsvn throws an assertion. This patch canonicalize svn uris for the clone and init command from git-svn. [ew: fixed trailing whitespace] Signed-off-by: Ulrich Dangel <uli@spamt.net> Acked-by: Eric Wong <normalperson@yhbt.net>

Ulrich Dangel committed Jun 26, 2009 at 16:52 UTC 50ff23667020768fa18dcffd154406fc41ebaa84
1 file changed +8 -1
git-svn.perl
+8 -1
@@ -389,6 +389,7 @@ sub cmd_init {
389 }
390 my $url = shift or die "SVN repository location required ",
391 "as a command-line argument\n";
392 + $url = canonicalize_url($url);
393 init_subdir(@_);
394 do_git_init_db();
395
@@ -806,6 +807,12 @@ sub canonicalize_path {
807 return $path;
808 }
809
810 +sub canonicalize_url {
811 + my ($url) = @_;
812 + $url =~ s#^([^:]+://[^/]*/)(.*)$#$1 . canonicalize_path($2)#e;
813 + return $url;
814 +}
815 +
816 # get_svnprops(PATH)
817 # ------------------
818 # Helper for cmd_propget and cmd_proplist below.
@@ -875,7 +882,7 @@ sub cmd_multi_init {
882
883 $_prefix = '' unless defined $_prefix;
884 if (defined $url) {
878 - $url =~ s#/+$##;
885 + $url = canonicalize_url($url);
886 init_subdir(@_);
887 }
888 do_git_init_db();