diff options
author | Eric Wong <normalperson@yhbt.net> | 2006-11-28 18:51:42 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-11-28 20:59:43 -0800 |
commit | 1ca7558dd838e82f6f6b8611b981654fa4ecde2b (patch) | |
tree | b37c6327130a2083b81bba57c483e9eeb21486a4 /git-svn.perl | |
parent | 4511c899e64cbda934ba864c359a2a7a04909264 (diff) | |
download | git-1ca7558dd838e82f6f6b8611b981654fa4ecde2b.tar.gz git-1ca7558dd838e82f6f6b8611b981654fa4ecde2b.tar.xz |
git-svn: fix multi-init
After the bugfix to connect to repositories where the user has
limited read permissions, multi-init was broken due to our
SVN::Ra connection being limited to working in a subdirectory;
so we now create a new Ra connection for init-ing branches
and another for tags
Along with that fix, allow the user to use the command-line
option flags for multi-init (--revision being the most notable;
but also --no-auth-cache, --config-dir, --username (for passing
to SVN), and --shared/--template for passing to git-init-db
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-svn.perl')
-rwxr-xr-x | git-svn.perl | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/git-svn.perl b/git-svn.perl index d8d8716d3..3891122d7 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -124,7 +124,12 @@ my %cmd = ( '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 ], @@ -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 |