{"thread":{"id":"3182","subject":"[PATCH] cvsimport: Add -S <skipfileregex> support and -v announces files retrieved","startedAt":"2006-01-30T06:12:41Z","lastAt":"2006-01-30T06:12:41Z","messageCount":1,"participants":["Martin Langhoff"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"15240","messageId":"11386015612035-git-send-email-martin@catalyst.net.nz","threadId":"3182","inReplyTo":null,"subject":"[PATCH] cvsimport: Add -S <skipfileregex> support and -v announces files retrieved","fromName":"Martin Langhoff","fromEmail":"martin@catalyst.net.nz","sentAt":"2006-01-30T06:12:41Z","receivedAt":"2006-01-30T06:12:41Z","isPatch":true,"sender":{"key":"martin@laptop.org","avatar":null},"body":"A couple of things that seem to help importing broken CVS repos...\n\n -S '<slash-delimited-regex>' skips files with a matching path\n -v prints file name and version before fetching from cvs\n\nSigned-off-by: Martin Langhoff <martin@catalyst.net.nz>\n\n\n---\n\nYou can now see what file fetch is breaking the import and \nyou can then tell cvsimport to skip it. \n\n git-cvsimport.perl |   19 +++++++++++++++----\n 1 files changed, 15 insertions(+), 4 deletions(-)\n\nd42ad86243882f6937b7af8b1ae10c0ec899a8a3\ndiff --git a/git-cvsimport.perl b/git-cvsimport.perl\nindex fc207fc..00fc3ba 100755\n--- a/git-cvsimport.perl\n+++ b/git-cvsimport.perl\n@@ -29,7 +29,7 @@ use IPC::Open2;\n $SIG{'PIPE'}=\"IGNORE\";\n $ENV{'TZ'}=\"UTC\";\n \n-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);\n+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);\n my (%conv_author_name, %conv_author_email);\n \n sub usage() {\n@@ -37,7 +37,7 @@ sub usage() {\n Usage: ${\\basename $0}     # fetch/update GIT from CVS\n        [-o branch-for-HEAD] [-h] [-v] [-d CVSROOT] [-A author-conv-file]\n        [-p opts-for-cvsps] [-C GIT_repository] [-z fuzz] [-i] [-k] [-u]\n-       [-s subst] [-m] [-M regex] [CVS_module]\n+       [-s subst] [-m] [-M regex] [-S regex] [CVS_module]\n END\n \texit(1);\n }\n@@ -85,7 +85,7 @@ sub write_author_info($) {\n \tclose ($f);\n }\n \n-getopts(\"hivmkuo:d:p:C:z:s:M:P:A:\") or usage();\n+getopts(\"hivmkuo:d:p:C:z:s:M:P:A:S:\") or usage();\n usage if $opt_h;\n \n @ARGV <= 1 or usage();\n@@ -579,7 +579,7 @@ unless($pid) {\n my $state = 0;\n \n my($patchset,$date,$author_name,$author_email,$branch,$ancestor,$tag,$logmsg);\n-my(@old,@new);\n+my(@old,@new,@skipped);\n my $commit = sub {\n \tmy $pid;\n \twhile(@old) {\n@@ -675,6 +675,11 @@ my $commit = sub {\n \tsubstr($logmsg,32767) = \"\" if length($logmsg) > 32767;\n \t$logmsg =~ s/[\\s\\n]+\\z//;\n \n+\tif (@skipped) {\n+\t    $logmsg .= \"\\n\\n\\nSKIPPED:\\n\\t\";\n+\t    $logmsg .= join(\"\\n\\t\", @skipped) . \"\\n\";\n+\t}\n+\n \tprint $pw \"$logmsg\\n\"\n \t\tor die \"Error writing to git-commit-tree: $!\\n\";\n \t$pw->close();\n@@ -832,6 +837,12 @@ while(<CVS>) {\n \t\tmy $fn = $1;\n \t\tmy $rev = $3;\n \t\t$fn =~ s#^/+##;\n+\t\tif ($opt_S && $fn =~ m/$opt_S/) {\n+\t\t    print \"SKIPPING $fn v $rev\\n\";\n+\t\t    push(@skipped, $fn);\n+\t\t    next;\n+\t\t}\n+\t\tprint \"Fetching $fn   v $rev\\n\" if $opt_v;\n \t\tmy ($tmpname, $size) = $cvs->file($fn,$rev);\n \t\tif($size == -1) {\n \t\t\tpush(@old,$fn);\n-- \n1.1.6.g170f-dirty\n"}]}