summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2007-11-02 15:40:54 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2007-11-02 15:40:54 -0700
commitbfc07db5756bf7fe227b28daf8e19987819be514 (patch)
tree5f46ebe77eaf5fe43e72824224e64e5e66e485a7
parentRemove unecessary hard-coding of EDITOR=':' VISUAL=':' in some test suites. (diff)
parentcvsexportcommit: fix for commits that do not have parents (diff)
downloadtgif-bfc07db5756bf7fe227b28daf8e19987819be514.tar.xz
Merge branch 'bk/maint-cvsexportcommit' into maint
* bk/maint-cvsexportcommit: cvsexportcommit: fix for commits that do not have parents
-rwxr-xr-xgit-cvsexportcommit.perl13
1 files changed, 10 insertions, 3 deletions
diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl
index 7b19a33ad1..b2c9f98e86 100755
--- a/git-cvsexportcommit.perl
+++ b/git-cvsexportcommit.perl
@@ -87,6 +87,7 @@ foreach my $line (@commit) {
}
}
+my $noparent = "0000000000000000000000000000000000000000";
if ($parent) {
my $found;
# double check that it's a valid parent
@@ -100,8 +101,10 @@ if ($parent) {
} else { # we don't have a parent from the cmdline...
if (@parents == 1) { # it's safe to get it from the commit
$parent = $parents[0];
- } else { # or perhaps not!
- die "This commit has more than one parent -- please name the parent you want to use explicitly";
+ } elsif (@parents == 0) { # there is no parent
+ $parent = $noparent;
+ } else { # cannot choose automatically from multiple parents
+ die "This commit has more than one parent -- please name the parent you want to use explicitly";
}
}
@@ -121,7 +124,11 @@ if ($opt_a) {
}
close MSG;
-`git-diff-tree --binary -p $parent $commit >.cvsexportcommit.diff`;# || die "Cannot diff";
+if ($parent eq $noparent) {
+ `git-diff-tree --binary -p --root $commit >.cvsexportcommit.diff`;# || die "Cannot diff";
+} else {
+ `git-diff-tree --binary -p $parent $commit >.cvsexportcommit.diff`;# || die "Cannot diff";
+}
## apply non-binary changes