summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2006-11-23 14:54:03 -0800
committerJunio C Hamano <junkio@cox.net>2006-11-23 15:17:43 -0800
commit48d044b5fe7ae553f05186db46b5cb4708afceb4 (patch)
treedc62f430e87224eab90095aad3de0de546a5bea5
parent0ea865ce7af4b2b6ee85dc52b5fad84260e27871 (diff)
downloadgit-48d044b5fe7ae553f05186db46b5cb4708afceb4.tar.gz
git-svn: error out from dcommit on a parent-less commit
dcommit would unconditionally append "~1" to a commit in order to generate a diff. Now we generate a meaningful error message if we try to generate an impossible diff. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rwxr-xr-xgit-svn.perl7
1 files changed, 7 insertions, 0 deletions
diff --git a/git-svn.perl b/git-svn.perl
index 80b7b87f0f..f0db4af58c 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -589,6 +589,13 @@ sub dcommit {
chomp(my @refs = safe_qx(qw/git-rev-list --no-merges/, "$gs..HEAD"));
my $last_rev;
foreach my $d (reverse @refs) {
+ if (quiet_run('git-rev-parse','--verify',"$d~1") != 0) {
+ die "Commit $d\n",
+ "has no parent commit, and therefore ",
+ "nothing to diff against.\n",
+ "You should be working from a repository ",
+ "originally created by git-svn\n";
+ }
unless (defined $last_rev) {
(undef, $last_rev, undef) = cmt_metadata("$d~1");
unless (defined $last_rev) {