From: Junio C Hamano <gitster@pobox•com>
To: Brian Gesiak <modocache@gmail•com>
Cc: git@vger•kernel.org
Subject: Re: [PATCH] git-rebase: Print name of rev when using shorthand
Date: Mon, 14 Apr 2014 12:22:48 -0700 [thread overview]
Message-ID: <xmqqwqerogvr.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1397419474-31999-1-git-send-email-modocache@gmail.com> (Brian Gesiak's message of "Mon, 14 Apr 2014 05:04:34 +0900")
Brian Gesiak <modocache@gmail•com> writes:
> The output from a successful invocation of the shorthand command
> "git rebase -" is something like "Fast-forwarded HEAD to @{-1}",
> which includes a relative reference to a revision. Other commands
> that use the shorthand "-", such as "git checkout -", typically
> display the symbolic name of the revision.
>
> Change rebase to output the symbolic name of the revision when using
> the shorthand. For the example above, the new output is
> "Fast-forwarded HEAD to master", assuming "@{-1}" is a reference to
> "master".
>
> - Use "git name-rev" to retreive the name of the rev.
> - Update the tests in light of this new behavior.
>
> Requested-by: John Keeping <john@keeping•me.uk>
> Signed-off-by: Brian Gesiak <modocache@gmail•com>
> ---
What the patch wants to implement sounds sensible, but I do not
think name-rev is a right tool for this. Imagine the case where
there are more than one branches whose tip points at the commit you
came from. name-rev will not be able to pick correctly which one to
report.
Also think what happens if you were previously on a detached HEAD?
I think you would want to use something like:
upstream_name=$(git rev-parse --symbolic-full-name @{-1})
if test -n "$upstream"
then
upstream_name=${upstream_name#refs/heads/}
else
upstream_name="@{-1}"
fi
if the change is to be made at that point in the code.
I also wonder if "git rebase @{-1}" deserve a similar translation
like you are giving "git rebase -".
> Previous discussion on this issue:
> http://article.gmane.org/gmane.comp.version-control.git/244340
>
> git-rebase.sh | 2 +-
> t/t3400-rebase.sh | 4 +---
> 2 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/git-rebase.sh b/git-rebase.sh
> index 2c75e9f..ab0e081 100755
> --- a/git-rebase.sh
> +++ b/git-rebase.sh
> @@ -455,7 +455,7 @@ then
> *) upstream_name="$1"
> if test "$upstream_name" = "-"
> then
> - upstream_name="@{-1}"
> + upstream_name=`git name-rev --name-only @{-1}`
> fi
> shift
> ;;
> diff --git a/t/t3400-rebase.sh b/t/t3400-rebase.sh
> index 80e0a95..2b99940 100755
> --- a/t/t3400-rebase.sh
> +++ b/t/t3400-rebase.sh
> @@ -91,7 +91,7 @@ test_expect_success 'rebase from ambiguous branch name' '
> test_expect_success 'rebase off of the previous branch using "-"' '
> git checkout master &&
> git checkout HEAD^ &&
> - git rebase @{-1} >expect.messages &&
> + git rebase master >expect.messages &&
OK.
> git merge-base master HEAD >expect.forkpoint &&
>
> git checkout master &&
> @@ -100,8 +100,6 @@ test_expect_success 'rebase off of the previous branch using "-"' '
> git merge-base master HEAD >actual.forkpoint &&
>
> test_cmp expect.forkpoint actual.forkpoint &&
> - # the next one is dubious---we may want to say "-",
> - # instead of @{-1}, in the message
> test_i18ncmp expect.messages actual.messages
> '
next prev parent reply other threads:[~2014-04-14 19:23 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-13 20:04 [PATCH] git-rebase: Print name of rev when using shorthand Brian Gesiak
2014-04-14 19:22 ` Junio C Hamano [this message]
2014-04-16 8:19 ` Brian Gesiak
2014-04-16 17:01 ` Junio C Hamano
2014-04-16 19:10 ` Junio C Hamano
2014-04-16 23:22 ` Brian Gesiak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqwqerogvr.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox$(echo .)com \
--cc=git@vger$(echo .)kernel.org \
--cc=modocache@gmail$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox