Erik Faye-Lund [off-list ref] writes:
Indeed. This looks like the result of a bad merge-resolution, but I
could be mistaken.
It looks like 9765b6a (rebase: align variable content, 2011-02-06)
originally botched it, which propagated to 71786f5 (rebase: factor
out reference parsing, 2011-02-06) in the series, and finally merged
at 78c6e0f (Merge branch 'mz/rebase', 2011-04-28).
quoted hunk
This looks like the correct solution to me:
diff --git a/git-rebase.sh b/git-rebase.sh
index 24a2840..3267c92 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -423,7 +423,7 @@ case "$onto_name" in
;;
*)
onto=$(git rev-parse --verify "${onto_name}^0") ||
- die "Does not point to a valid commit: $1"
+ die "Does not point to a valid commit: $onto_name"
;;
esac
Yes, it does.
In 9765b6a (rebase: align variable content, 2011-02-06), the code
to error out was moved up one level. Unfortunately, one reference
to a function parameter wasn't rewritten as it should, leading to
the wrong parameter being errored on.
This error was propagated by 71786f5 (rebase: factor out reference
parsing, 2011-02-06) and merged in 78c6e0f (Merge branch
'mz/rebase', 2011-04-28).
Correct this by reporting $onto_name istead.
Reported-By: Manuela Hutter <redacted>
Signed-off-by: Erik Faye-Lund <redacted>
---
Here's a proper patch, I guess.
On Wed, May 30, 2012 at 5:37 PM, Junio C Hamano [off-list ref] wrote:
Erik Faye-Lund [off-list ref] writes:
quoted
Indeed. This looks like the result of a bad merge-resolution, but I
could be mistaken.
It looks like 9765b6a (rebase: align variable content, 2011-02-06)
originally botched it, which propagated to 71786f5 (rebase: factor
out reference parsing, 2011-02-06) in the series, and finally merged
at 78c6e0f (Merge branch 'mz/rebase', 2011-04-28).
Thanks for digging, this was very helpful for the commit message.
git-rebase.sh | 2 +-
t/t3406-rebase-message.sh | 5 +++++
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/git-rebase.sh b/git-rebase.sh
index 24a2840..3267c92 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -423,7 +423,7 @@ case "$onto_name" in
;;
*)
onto=$(git rev-parse --verify "${onto_name}^0") ||
- die "Does not point to a valid commit: $1"
+ die "Does not point to a valid commit: $onto_name"
;;
esac
diff --git a/t/t3406-rebase-message.sh b/t/t3406-rebase-message.sh
index fe5f936..6898377 100755
--- a/t/t3406-rebase-message.sh
+++ b/t/t3406-rebase-message.sh
@@ -62,4 +62,9 @@ test_expect_success 'rebase -n overrides config rebase.stat config' '
! grep "^ fileX | *1 +$" diffstat.txt
'
+test_expect_success 'rebase --onto outputs the invalid ref' '
+ test_must_fail git rebase --onto invalid-ref HEAD HEAD 2>err &&
+ grep "invalid-ref" err
+'
+
test_done--
1.7.10.msysgit.1.1147.g20e60f3