X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-cvsexportcommit.perl;h=d5fbee7ba03b5c7064074539e8fd2c6518363b85;hb=5ea06e2014a910240408f74b9dab2128a30fd06c;hp=50b041c3247238f7b399c0648cc7c3bc2a58dba7;hpb=a489352e3d1d861237729385f9afc5950bcfa6a0;p=git.git diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl index 50b041c3..d5fbee7b 100755 --- a/git-cvsexportcommit.perl +++ b/git-cvsexportcommit.perl @@ -4,6 +4,7 @@ use strict; use Getopt::Std; use File::Temp qw(tempdir); use Data::Dumper; +use File::Basename qw(basename); unless ($ENV{GIT_DIR} && -r $ENV{GIT_DIR}){ die "GIT_DIR is not defined or is unreadable"; @@ -11,7 +12,7 @@ unless ($ENV{GIT_DIR} && -r $ENV{GIT_DIR}){ our ($opt_h, $opt_p, $opt_v, $opt_c ); -getopt('hpvc'); +getopts('hpvc'); $opt_h && usage(); @@ -77,7 +78,7 @@ $opt_v && print "Applying to CVS commit $commit from parent $parent\n"; # grab the commit message `git-cat-file commit $commit | sed -e '1,/^\$/d' > .msg`; -$? && die "Error extraction the commit message"; +$? && die "Error extracting the commit message"; my (@afiles, @dfiles, @mfiles); my @files = `git-diff-tree -r $parent $commit`; @@ -102,8 +103,16 @@ undef @files; # don't need it anymore # check that the files are clean and up to date according to cvs my $dirty; -foreach my $f (@afiles, @mfiles, @dfiles) { - # TODO:we need to handle removed in cvs and/or new (from git) +foreach my $f (@afiles) { + my $status = `cvs -q status "$f" | grep '^File: '`; + + unless ($status =~ m/Status: Unknown$/) { + $dirty = 1; + warn "File $f is already known in your CVS checkout!\n"; + } +} +foreach my $f (@mfiles, @dfiles) { + # TODO:we need to handle removed in cvs my $status = `cvs -q status "$f" | grep '^File: '`; unless ($status =~ m/Status: Up-to-date$/) { @@ -187,9 +196,9 @@ my $cmd = "cvs commit -F .msg $commitfiles"; if ($dirtypatch) { print "NOTE: One or more hunks failed to apply cleanly.\n"; - print "Resolve the conflicts and then commit using:n"; + print "Resolve the conflicts and then commit using:\n"; print "\n $cmd\n\n"; - exit; + exit(1); } @@ -206,8 +215,7 @@ if ($opt_c) { } sub usage { print STDERR <