use SVN::Core;
use SVN::Ra;
-die "Need CVN:Core 1.2.1 or better" if $SVN::Core::VERSION lt "1.2.1";
+die "Need SVN:Core 1.2.1 or better" if $SVN::Core::VERSION lt "1.2.1";
$SIG{'PIPE'}="IGNORE";
$ENV{'TZ'}="UTC";
sub usage() {
print STDERR <<END;
-Usage: ${\basename $0} # fetch/update GIT from CVS
+Usage: ${\basename $0} # fetch/update GIT from SVN
[-o branch-for-HEAD] [-h] [-v] [-l max_num_changes]
[-C GIT_repository] [-t tagname] [-T trunkname] [-b branchname]
[-d|-D] [-i] [-u] [-s start_chg] [-m] [-M regex] [SVN_URL]
$opt_o ||= "origin";
$opt_s ||= 1;
-$opt_l = 100 unless defined $opt_l;
my $git_tree = $opt_C;
$git_tree ||= ".";
$svnpath = "$branch_name/$branch/$path";
}
- return $svnpath
+ $svnpath =~ s#/+$##;
+ return $svnpath;
}
sub get_file($$$) {
my($newrev,$newbranch,$path,$oldpath,$rev,$node_kind,$new,$parents) = @_;
my($srcbranch,$srcpath) = split_path($rev,$oldpath);
+ unless(defined $srcbranch) {
+ print "Path not found when copying from $oldpath @ $rev\n";
+ return;
+ }
my $therev = branch_rev($srcbranch, $rev);
my $gitrev = $branches{$srcbranch}{$therev};
unless($gitrev) {
}
while(++$current_rev <= $svn->{'maxrev'}) {
+ if (defined $opt_l) {
+ $opt_l--;
+ if ($opt_l < 0) {
+ last;
+ }
+ }
my $pool=SVN::Pool->new;
$svn->{'svn'}->get_log("/",$current_rev,$current_rev,1,1,1,\&_commit_all,$pool);
$pool->clear;
commit_all();
- if($opt_l and not --$opt_l) {
- print STDERR "Stopping, because there is a memory leak (in the SVN library).\n";
- print STDERR "Please repeat this command; it will continue safely\n";
- last;
- }
}