From: Junio C Hamano Date: Thu, 1 Nov 2007 22:39:59 +0000 (-0700) Subject: Merge branch 'bk/maint-cvsexportcommit' X-Git-Tag: v1.5.4-rc0~290 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/5fb19486e6f4b6d31f33f5a1eab970b244fa2d08?hp=f31dfa604c83fd998f7b57942a7bac4defc8c435 Merge branch 'bk/maint-cvsexportcommit' * bk/maint-cvsexportcommit: cvsexportcommit: fix for commits that do not have parents --- diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl index f284c88a46..26844af439 100755 --- a/git-cvsexportcommit.perl +++ b/git-cvsexportcommit.perl @@ -82,6 +82,7 @@ } } +my $noparent = "0000000000000000000000000000000000000000"; if ($parent) { my $found; # double check that it's a valid parent @@ -95,8 +96,10 @@ } 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"; } } @@ -116,7 +119,11 @@ } 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