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>
This commit is contained in:
Ulrich Dangel 2009-06-26 16:52:09 +02:00 коммит произвёл Eric Wong
Родитель 2317d289fe
Коммит 50ff236670
1 изменённых файлов: 8 добавлений и 1 удалений

Просмотреть файл

@ -389,6 +389,7 @@ sub cmd_init {
}
my $url = shift or die "SVN repository location required ",
"as a command-line argument\n";
$url = canonicalize_url($url);
init_subdir(@_);
do_git_init_db();
@ -806,6 +807,12 @@ sub canonicalize_path {
return $path;
}
sub canonicalize_url {
my ($url) = @_;
$url =~ s#^([^:]+://[^/]*/)(.*)$#$1 . canonicalize_path($2)#e;
return $url;
}
# get_svnprops(PATH)
# ------------------
# Helper for cmd_propget and cmd_proplist below.
@ -875,7 +882,7 @@ sub cmd_multi_init {
$_prefix = '' unless defined $_prefix;
if (defined $url) {
$url =~ s#/+$##;
$url = canonicalize_url($url);
init_subdir(@_);
}
do_git_init_db();