X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-svnimport.perl;h=b6799d81ee36f041ddf3d6233d3f2fa005fea174;hb=04fe2a1706b4bd71b604bfe7d7295064440872cf;hp=65868a91e5f88c41942da89b84f169ed4264615d;hpb=069b20a198f171512a1d2d2163b40f70c94f5257;p=git.git diff --git a/git-svnimport.perl b/git-svnimport.perl index 65868a91..b6799d81 100755 --- a/git-svnimport.perl +++ b/git-svnimport.perl @@ -96,8 +96,10 @@ sub new { sub conn { my $self = shift; my $repo = $self->{'fullrep'}; - my $s = SVN::Ra->new($repo); - + my $auth = SVN::Core::auth_open ([SVN::Client::get_simple_provider, + SVN::Client::get_ssl_server_trust_file_provider, + SVN::Client::get_username_provider]); + my $s = SVN::Ra->new(url => $repo, auth => $auth); die "SVN connection to $repo: $!\n" unless defined $s; $self->{'svn'} = $s; $self->{'repo'} = $repo; @@ -544,23 +546,30 @@ sub commit { } } - if(@old) { - open my $F, "-|", "git-ls-files", "-z", @old or die $!; - @old = (); + while(@old) { + my @o1; + if(@old > 55) { + @o1 = splice(@old,0,50); + } else { + @o1 = @old; + @old = (); + } + open my $F, "-|", "git-ls-files", "-z", @o1 or die $!; + @o1 = (); local $/ = "\0"; while(<$F>) { chomp; - push(@old,$_); + push(@o1,$_); } close($F); - while(@old) { + while(@o1) { my @o2; - if(@old > 55) { - @o2 = splice(@old,0,50); + if(@o1 > 55) { + @o2 = splice(@o1,0,50); } else { - @o2 = @old; - @old = (); + @o2 = @o1; + @o1 = (); } system("git-update-index","--force-remove","--",@o2); die "Cannot remove files: $?\n" if $?; @@ -736,6 +745,13 @@ sub commit_all { } $opt_l = $svn->{'maxrev'} if not defined $opt_l or $opt_l > $svn->{'maxrev'}; + +if ($svn->{'maxrev'} < $current_rev) { + print "Up to date: no new revisions to fetch!\n" if $opt_v; + unlink("$git_dir/SVN2GIT_HEAD"); + exit; +} + print "Fetching from $current_rev to $opt_l ...\n" if $opt_v; my $pool=SVN::Pool->new;