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>
This commit is contained in:
parent
4511c899e6
commit
1ca7558dd8
13
git-svn.perl
13
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
|
||||
|
Loading…
Reference in New Issue
Block a user