All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: "Enis Bayramoğlu" <enis@picussecurity.com>
Cc: Michael J Gruber <git@grubix.eu>, Git Mailing List <git@vger.kernel.org>
Subject: Re: `git status` output is very misleading after a merge on a "detached HEAD"
Date: Tue, 11 Apr 2017 22:40:14 +0200	[thread overview]
Message-ID: <CACBZZX7xqoZ3LboOjwvQvX3JRJFhjFC54+mfLOddLXzconrobw@mail.gmail.com> (raw)
In-Reply-To: <CAMLReHYbuHmGTtBSUQq3bO=6ghz=rfP-=Eg=PvP0tkwZbM2Q1Q@mail.gmail.com>

On Tue, Apr 11, 2017 at 5:13 PM, Enis Bayramoğlu <enis@picussecurity.com> wrote:
>> Well, what do you suggest as an alternative?
>>
>> Git tells you that you are in detached state and where you came from
>> (detached from).
>
> I think it'd be best if git status somehow indicated that you're no
> longer at the same commit. Maybe something like:
>
> $ git status
> HEAD detached from origin/master, no longer at the same commit
> nothing to commit, working directory clean

I'm not saying this is clear, I didn't know this until I read the code
just now, but for what it's worth it says "detached at" if you're
detached from BRANCH but at the same commit, and "detached from" if
you're now on a different commit.

> or, to be more informative
>
> HEAD detached from origin/master 1 commit ago,

In lieu of that, which would need some of the rev-list machinery to be
invoked on every git-status, I wonder if just saying "HEAD detached &
diverged from origin/master" wouldn't be clearer:

diff --git a/wt-status.c b/wt-status.c
index 308cf3779e..79c8cfd1cf 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -1542,7 +1542,7 @@ static void wt_longstatus_print(struct wt_status *s)
                                if (state.detached_at)
                                        on_what = _("HEAD detached at ");
                                else
-                                       on_what = _("HEAD detached from ");
+                                       on_what = _("HEAD detached &
diverged from ");
                        } else {
                                branch_name = "";
                                on_what = _("Not currently on any branch.");




> On Tue, Apr 11, 2017 at 5:55 PM, Michael J Gruber <git@grubix.eu> wrote:
>> Enis Bayramoğlu venit, vidit, dixit 11.04.2017 10:57:
>>> I've encountered a very misleading output from `git status`. Here's a
>>> sequence of events that demonstrates the issue:
>>>
>>> $ git --version
>>> git version 2.12.0
>>>
>>> $ git checkout origin/master
>>>
>>> $ git status
>>> HEAD detached from origin/master
>>> nothing to commit, working directory clean
>>
>> Hmm. My Git would display "detached at" here as long as you are on the
>> commit that you detached from.
>>
>>> $ git merge --ff f3515b749be861b57fc70c2341c1234eeb0d5b87
>>>
>>> $ git status
>>> HEAD detached from origin/master
>>> nothing to commit, working directory clean
>>>
>>> $ git rev-parse origin/master
>>> e1dc1baaadee0f1aef2d5c45d068306025d11f67
>>>
>>> $ git rev-parse HEAD
>>> 786cb6dd09897e0950a2bdc971f0665a059efd33
>>>
>>> I think it's extremely misleading that `git status` simply reports
>>> "HEAD detached from origin/master" while this simply happens to be a
>>> mildly relevant fact about some past state.
>>>
>>> Thanks and regards
>>>
>>
>> Well, what do you suggest as an alternative?
>>
>> Git tells you that you are in detached state and where you came from
>> (detached from).
>>
>> Michael

  reply	other threads:[~2017-04-11 20:40 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-11  8:57 `git status` output is very misleading after a merge on a "detached HEAD" Enis Bayramoğlu
2017-04-11 14:55 ` Michael J Gruber
2017-04-11 15:13   ` Enis Bayramoğlu
2017-04-11 20:40     ` Ævar Arnfjörð Bjarmason [this message]
2017-04-12  5:43       ` Michael J Gruber
2017-04-12  6:15         ` Enis Bayramoğlu
2017-04-12 11:36           ` Michael J Gruber
2017-04-12 12:18         ` Ævar Arnfjörð Bjarmason
2017-04-12 13:11           ` Michael J Gruber
2017-04-12 13:30             ` Ævar Arnfjörð Bjarmason
2017-04-14 16:25             ` Philip Oakley

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=CACBZZX7xqoZ3LboOjwvQvX3JRJFhjFC54+mfLOddLXzconrobw@mail.gmail.com \
    --to=avarab@gmail.com \
    --cc=enis@picussecurity.com \
    --cc=git@grubix.eu \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.