Simplify read_directory[_recursive]() arguments
[gitweb.git] / git-svn.perl
index 48e8aad0001508b25f503e900c0bb06d441d2af5..d1af1a3d2f1e24c068e227f847ccceb7e156ad0d 100755 (executable)
@@ -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();
 
@@ -646,7 +647,9 @@ sub cmd_branch {
                            " with the --destination argument.\n";
                }
                foreach my $g (@{$allglobs}) {
-                       if ($_branch_dest eq $g->{path}->{left}) {
+                       # SVN::Git::Editor could probably be moved to Git.pm..
+                       my $re = SVN::Git::Editor::glob2pat($g->{path}->{left});
+                       if ($_branch_dest =~ /$re/) {
                                $glob = $g;
                                last;
                        }
@@ -804,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.
@@ -873,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();