mirror of
https://github.com/git/git.git
synced 2024-05-11 11:16:08 +02:00
git-cvsexportcommit: Add -f(orce) and -m(essage prefix) flags, small cleanups.
This commit is contained in:
parent
36932eab77
commit
992793c832
|
@ -8,7 +8,7 @@ git-cvsexportcommit - Export a commit to a CVS checkout
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
'git-cvsexportcommmit' [-h] [-v] [-c] [-p] [PARENTCOMMIT] COMMITID
|
'git-cvsexportcommmit' [-h] [-v] [-c] [-p] [-f] [-m msgprefix] [PARENTCOMMIT] COMMITID
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
|
@ -39,6 +39,13 @@ OPTIONS
|
||||||
Be pedantic (paranoid) when applying patches. Invokes patch with
|
Be pedantic (paranoid) when applying patches. Invokes patch with
|
||||||
--fuzz=0
|
--fuzz=0
|
||||||
|
|
||||||
|
-f::
|
||||||
|
Force the merge even if the files are not up to date.
|
||||||
|
|
||||||
|
-m::
|
||||||
|
Prepend the commit message with the provided prefix.
|
||||||
|
Useful for patch series and the like.
|
||||||
|
|
||||||
-v::
|
-v::
|
||||||
Verbose.
|
Verbose.
|
||||||
|
|
||||||
|
|
|
@ -10,9 +10,9 @@
|
||||||
die "GIT_DIR is not defined or is unreadable";
|
die "GIT_DIR is not defined or is unreadable";
|
||||||
}
|
}
|
||||||
|
|
||||||
our ($opt_h, $opt_p, $opt_v, $opt_c );
|
our ($opt_h, $opt_p, $opt_v, $opt_c, $opt_f, $opt_m );
|
||||||
|
|
||||||
getopts('hpvc');
|
getopts('hpvcfm:');
|
||||||
|
|
||||||
$opt_h && usage();
|
$opt_h && usage();
|
||||||
|
|
||||||
|
@ -77,12 +77,16 @@
|
||||||
$opt_v && print "Applying to CVS commit $commit from parent $parent\n";
|
$opt_v && print "Applying to CVS commit $commit from parent $parent\n";
|
||||||
|
|
||||||
# grab the commit message
|
# grab the commit message
|
||||||
`git-cat-file commit $commit | sed -e '1,/^\$/d' > .msg`;
|
open(MSG, ">.msg") or die "Cannot open .msg for writing";
|
||||||
|
print MSG $opt_m;
|
||||||
|
close MSG;
|
||||||
|
|
||||||
|
`git-cat-file commit $commit | sed -e '1,/^\$/d' >> .msg`;
|
||||||
$? && die "Error extracting the commit message";
|
$? && die "Error extracting the commit message";
|
||||||
|
|
||||||
my (@afiles, @dfiles, @mfiles);
|
my (@afiles, @dfiles, @mfiles);
|
||||||
my @files = safe_pipe_capture('git-diff-tree', '-r', $parent, $commit);
|
my @files = safe_pipe_capture('git-diff-tree', '-r', $parent, $commit);
|
||||||
print @files;
|
#print @files;
|
||||||
$? && die "Error in git-diff-tree";
|
$? && die "Error in git-diff-tree";
|
||||||
foreach my $f (@files) {
|
foreach my $f (@files) {
|
||||||
chomp $f;
|
chomp $f;
|
||||||
|
@ -109,7 +113,7 @@
|
||||||
if (@status > 1) { warn 'Strange! cvs status returned more than one line?'};
|
if (@status > 1) { warn 'Strange! cvs status returned more than one line?'};
|
||||||
unless ($status[0] =~ m/Status: Unknown$/) {
|
unless ($status[0] =~ m/Status: Unknown$/) {
|
||||||
$dirty = 1;
|
$dirty = 1;
|
||||||
warn "File $f is already known in your CVS checkout!\n";
|
warn "File $f is already known in your CVS checkout -- perhaps it has been added by another user. Or this may indicate that it exists on a different branch. If this is the case, use -f to force the merge.\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach my $f (@mfiles, @dfiles) {
|
foreach my $f (@mfiles, @dfiles) {
|
||||||
|
@ -122,7 +126,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($dirty) {
|
if ($dirty) {
|
||||||
die "Exiting: your CVS tree is not clean for this merge.";
|
if ($opt_f) { warn "The tree is not clean -- forced merge\n";
|
||||||
|
$dirty = 0;
|
||||||
|
} else {
|
||||||
|
die "Exiting: your CVS tree is not clean for this merge.";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
###
|
###
|
||||||
|
@ -215,7 +223,7 @@
|
||||||
}
|
}
|
||||||
sub usage {
|
sub usage {
|
||||||
print STDERR <<END;
|
print STDERR <<END;
|
||||||
Usage: GIT_DIR=/path/to/.git ${\basename $0} [-h] [-p] [-v] [-c] [ parent ] commit
|
Usage: GIT_DIR=/path/to/.git ${\basename $0} [-h] [-p] [-v] [-c] [-f] [-m msgprefix] [ parent ] commit
|
||||||
END
|
END
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue