# calling git rebase with invalid onto-ref exits with wrong error message

5 messages from 2012-05-30 to 2012-05-30. Participants: Manuela Hutter, Erik Faye-Lund, Junio C Hamano.
Thread: https://gitlist.dev/t/30651

## Manuela Hutter, 2012-05-30 09:02

Subject: calling git rebase with invalid onto-ref exits with wrong error message
Message-ID: <op.we351rjtt21y7h@id-c1003.oslo.osa>
URL: https://gitlist.dev/e/op.we351rjtt21y7h%40id-c1003.oslo.osa

```
Just noticed a small bug (in git version 1.7.10.msysgit.1):

calling
   git rebase --onto <onto-ref> <base-ref> <branch-ref>

with an unknown <onto-ref> reports:
   fatal: Needed a single revision
   Does not point to a valid commit: <branch-ref>

Expected:
   fatal: Needed a single revision
   Does not point to a valid commit: <onto-ref>

Cheers,
Manuela

```

## Erik Faye-Lund, 2012-05-30 09:27

Subject: Re: calling git rebase with invalid onto-ref exits with wrong error message
Message-ID: <CABPQNSZntbPQ7taPhr_QUNnwzOcexjteUsnpmrkCiRUYRA3nvA@mail.gmail.com>
URL: https://gitlist.dev/e/CABPQNSZntbPQ7taPhr_QUNnwzOcexjteUsnpmrkCiRUYRA3nvA%40mail.gmail.com
In-Reply-To: <op.we351rjtt21y7h@id-c1003.oslo.osa>

```
On Wed, May 30, 2012 at 11:02 AM, Manuela Hutter <manuelah@opera.com> wrote:
> Just noticed a small bug (in git version 1.7.10.msysgit.1):
>
> calling
>   git rebase --onto <onto-ref> <base-ref> <branch-ref>
>
> with an unknown <onto-ref> reports:
>   fatal: Needed a single revision
>   Does not point to a valid commit: <branch-ref>
>
> Expected:
>   fatal: Needed a single revision
>   Does not point to a valid commit: <onto-ref>
>

Indeed. This looks like the result of a bad merge-resolution, but I
could be mistaken. 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

```

## Junio C Hamano, 2012-05-30 15:37

Subject: Re: calling git rebase with invalid onto-ref exits with wrong error message
Message-ID: <7v7gvt1xz6.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7v7gvt1xz6.fsf%40alter.siamese.dyndns.org
In-Reply-To: <CABPQNSZntbPQ7taPhr_QUNnwzOcexjteUsnpmrkCiRUYRA3nvA@mail.gmail.com>

```
Erik Faye-Lund <kusmabite@gmail.com> 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).

> 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.

```

## Erik Faye-Lund, 2012-05-30 16:39

Subject: [PATCH] rebase: report invalid commit correctly
Message-ID: <1338395982-5448-1-git-send-email-kusmabite@gmail.com>
URL: https://gitlist.dev/e/1338395982-5448-1-git-send-email-kusmabite%40gmail.com
In-Reply-To: <7v7gvt1xz6.fsf@alter.siamese.dyndns.org>

```
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 <manuelah@opera.com>
Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
---

Here's a proper patch, I guess.

On Wed, May 30, 2012 at 5:37 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Erik Faye-Lund <kusmabite@gmail.com> 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).
>

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

```

## Junio C Hamano, 2012-05-30 21:11

Subject: Re: [PATCH] rebase: report invalid commit correctly
Message-ID: <7vvcjdxtlm.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vvcjdxtlm.fsf%40alter.siamese.dyndns.org
In-Reply-To: <1338395982-5448-1-git-send-email-kusmabite@gmail.com>

```
Erik Faye-Lund <kusmabite@gmail.com> writes:

> 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 <manuelah@opera.com>
> Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
> ---
>
> Here's a proper patch, I guess.

Thanks.

```
