gitweb: Fix Atom feed <logo>: it is $logo, not $logo_url
[gitweb.git] / git-svn.perl
index d8d8716d3851d4436f60f6837a7cae8ccf63fbcc..d0bd0bdeb8462f7ad4550b5fe406f4e0a1a0ee1c 100755 (executable)
@@ -124,7 +124,12 @@ sub nag_lib {
                          'no-graft-copy' => \$_no_graft_copy } ],
        'multi-init' => [ \&multi_init,
                        'Initialize multiple trees (like git-svnimport)',
-                       { %multi_opts, %fc_opts } ],
+                       { %multi_opts, %init_opts,
+                        'revision|r=i' => \$_revision,
+                        'username=s' => \$_username,
+                        'config-dir=s' => \$_config_dir,
+                        'no-auth-cache' => \$_no_auth_cache,
+                       } ],
        'multi-fetch' => [ \&multi_fetch,
                        'Fetch multiple trees (like git-svnimport)',
                        \%fc_opts ],
@@ -2977,7 +2982,7 @@ sub libsvn_fetch_delta {
 sub libsvn_fetch_full {
        my ($last_commit, $paths, $rev, $author, $date, $msg) = @_;
        open my $gui, '| git-update-index -z --index-info' or croak $!;
-       my @amr;
+       my %amr;
        my $p = $SVN->{svn_path};
        foreach my $f (keys %$paths) {
                my $m = $paths->{$f}->action();
@@ -2996,7 +3001,7 @@ sub libsvn_fetch_full {
                my $t = $SVN->check_path($f, $rev, $pool);
                if ($t == $SVN::Node::file) {
                        if ($m =~ /^[AMR]$/) {
-                               push @amr, [ $m, $f ];
+                               $amr{$f} = $m;
                        } else {
                                die "Unrecognized action: $m, ($f r$rev)\n";
                        }
@@ -3004,13 +3009,13 @@ sub libsvn_fetch_full {
                        my @traversed = ();
                        libsvn_traverse($gui, '', $f, $rev, \@traversed);
                        foreach (@traversed) {
-                               push @amr, [ $m, $_ ]
+                               $amr{$_} = $m;
                        }
                }
                $pool->clear;
        }
-       foreach (@amr) {
-               libsvn_get_file($gui, $_->[1], $rev, $_->[0]);
+       foreach (keys %amr) {
+               libsvn_get_file($gui, $_, $rev, $amr{$_});
        }
        close $gui or croak $?;
        return libsvn_log_entry($rev, $author, $date, $msg, [$last_commit]);
@@ -3316,11 +3321,11 @@ sub libsvn_commit_cb {
 
 sub libsvn_ls_fullurl {
        my $fullurl = shift;
-       $SVN ||= libsvn_connect($fullurl);
+       my $ra = libsvn_connect($fullurl);
        my @ret;
        my $pool = SVN::Pool->new;
-       my ($dirent, undef, undef) = $SVN->get_dir($SVN->{svn_path},
-                                               $SVN->get_latest_revnum, $pool);
+       my $r = defined $_revision ? $_revision : $ra->get_latest_revnum;
+       my ($dirent, undef, undef) = $ra->get_dir('', $r, $pool);
        foreach my $d (keys %$dirent) {
                if ($dirent->{$d}->kind == $SVN::Node::dir) {
                        push @ret, "$d/"; # add '/' for compat with cli svn