Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
cvsimport: Add -S <skipfileregex> support and -v announces files retrieved
author
Martin Langhoff
<martin@catalyst.net.nz>
Mon, 30 Jan 2006 06:12:41 +0000
(19:12 +1300)
committer
Junio C Hamano
<junkio@cox.net>
Mon, 30 Jan 2006 07:25:38 +0000
(23:25 -0800)
A couple of things that seem to help importing broken CVS repos...
-S '<slash-delimited-regex>' skips files with a matching path
-v prints file name and version before fetching from cvs
Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
git-cvsimport.perl
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
36b5b3c
)
diff --git
a/git-cvsimport.perl
b/git-cvsimport.perl
index fc207fc47e2860f9d8b1ed4154596b6e8d897a11..00fc3bacda948a4ea2d33079d85a8254080806e8 100755
(executable)
--- a/
git-cvsimport.perl
+++ b/
git-cvsimport.perl
@@
-29,7
+29,7
@@
$SIG{'PIPE'}="IGNORE";
$ENV{'TZ'}="UTC";
$SIG{'PIPE'}="IGNORE";
$ENV{'TZ'}="UTC";
-our($opt_h,$opt_o,$opt_v,$opt_k,$opt_u,$opt_d,$opt_p,$opt_C,$opt_z,$opt_i,$opt_P, $opt_s,$opt_m,$opt_M,$opt_A);
+our($opt_h,$opt_o,$opt_v,$opt_k,$opt_u,$opt_d,$opt_p,$opt_C,$opt_z,$opt_i,$opt_P, $opt_s,$opt_m,$opt_M,$opt_A
,$opt_S
);
my (%conv_author_name, %conv_author_email);
sub usage() {
my (%conv_author_name, %conv_author_email);
sub usage() {
@@
-37,7
+37,7
@@
()
Usage: ${\basename $0} # fetch/update GIT from CVS
[-o branch-for-HEAD] [-h] [-v] [-d CVSROOT] [-A author-conv-file]
[-p opts-for-cvsps] [-C GIT_repository] [-z fuzz] [-i] [-k] [-u]
Usage: ${\basename $0} # fetch/update GIT from CVS
[-o branch-for-HEAD] [-h] [-v] [-d CVSROOT] [-A author-conv-file]
[-p opts-for-cvsps] [-C GIT_repository] [-z fuzz] [-i] [-k] [-u]
- [-s subst] [-m] [-M regex] [CVS_module]
+ [-s subst] [-m] [-M regex] [
-S regex] [
CVS_module]
END
exit(1);
}
END
exit(1);
}
@@
-85,7
+85,7
@@
($)
close ($f);
}
close ($f);
}
-getopts("hivmkuo:d:p:C:z:s:M:P:A:") or usage();
+getopts("hivmkuo:d:p:C:z:s:M:P:A:
S:
") or usage();
usage if $opt_h;
@ARGV <= 1 or usage();
usage if $opt_h;
@ARGV <= 1 or usage();
@@
-579,7
+579,7
@@
($$)
my $state = 0;
my($patchset,$date,$author_name,$author_email,$branch,$ancestor,$tag,$logmsg);
my $state = 0;
my($patchset,$date,$author_name,$author_email,$branch,$ancestor,$tag,$logmsg);
-my(@old,@new);
+my(@old,@new
,@skipped
);
my $commit = sub {
my $pid;
while(@old) {
my $commit = sub {
my $pid;
while(@old) {
@@
-675,6
+675,11
@@
($$)
substr($logmsg,32767) = "" if length($logmsg) > 32767;
$logmsg =~ s/[\s\n]+\z//;
substr($logmsg,32767) = "" if length($logmsg) > 32767;
$logmsg =~ s/[\s\n]+\z//;
+ if (@skipped) {
+ $logmsg .= "\n\n\nSKIPPED:\n\t";
+ $logmsg .= join("\n\t", @skipped) . "\n";
+ }
+
print $pw "$logmsg\n"
or die "Error writing to git-commit-tree: $!\n";
$pw->close();
print $pw "$logmsg\n"
or die "Error writing to git-commit-tree: $!\n";
$pw->close();
@@
-832,6
+837,12
@@
($$)
my $fn = $1;
my $rev = $3;
$fn =~ s#^/+##;
my $fn = $1;
my $rev = $3;
$fn =~ s#^/+##;
+ if ($opt_S && $fn =~ m/$opt_S/) {
+ print "SKIPPING $fn v $rev\n";
+ push(@skipped, $fn);
+ next;
+ }
+ print "Fetching $fn v $rev\n" if $opt_v;
my ($tmpname, $size) = $cvs->file($fn,$rev);
if($size == -1) {
push(@old,$fn);
my ($tmpname, $size) = $cvs->file($fn,$rev);
if($size == -1) {
push(@old,$fn);