git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2 (v3)] reset: make the output more user-friendly.

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 22, 2009, 05:44 UTC
Message-ID
<7v3a7k767j.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1250845079-30614-2-git-send-email-Matthieu.Moy@imag.fr>
Matthieu Moy <Matthieu.Moy@imag.fr> writes:
Show 12 quoted lines
> git reset without argument displays a summary of the remaining
> unstaged changes. The problem with these is that they look like an
> error message, and the format is inconsistant with the format used in
> other places like "git diff --name-status".
>
> This patch mimics the output of "git diff --name-status", and adds a
> header to make it clear the output is informative, and not an error.
>
> It also changes the output of "git add --refresh --verbose" in the same
> way.
>
> Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Thanks.  Will queue.
However, I'd change the justification.
    git reset without argument displays a summary of the local modification,
    like this:
    
        $ git reset
        Makefile: locally modified
    
    Some people have problems with this; they look like an error message.
    
    This patch makes its output mimic how "git checkout $another_branch"
    reports the paths with local modifications.  "git add --refresh --verbose"
    is changed in the same way.
    
    It also adds a header to make it clear that the output is informative,
    and not an error.
    
    Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>

The output from reset in question is merely an informative side effect, as opposed to what you actively ask "git diff" to give as its primary output. As such, your "consistency" argument is pretty weak. There is no reason to expect that the informative message to resemble one particular format (namely, --name-status) and not another (e.g. --stat or --name-only), as you are not explicitly specifying what format to use; nor we would want to make it customizable--after all it is just a friendly reminder.

Informative output from "git checkout $branch" when there are local changes is a much better precedent to refer to.

After applying your patch and having compared these two sets of output:
        (1) without changes
        $ git reset --hard
        $ git checkout mm/reset-report
        Already on 'mm/reset-report'
        $ git reset
        $ git add --refresh -v Makefile
        (2) with changes
        $ echo >>Makefile
        $ git add Makefile
        $ git checkout mm/reset-report
        M       Makefile
        Already on 'mm/reset-report'
        $ git reset
        Unstaged changes after reset:
        M       Makefile
        $ git add --refresh -v Makefile
        Unstaged changes after refreshing the index:
        M       Makefile

I am somewhat inclined to suggest that we should drop the new "Unstaged changes after ..." message, though.

By the way, "Already on .../Switched to ..." noise from "git checkout" is also very annoying. It is useless to report that the command did exactly what the user told it to do. Even more annoyingly, "git checkout -q" to squelch this useless noise also squelches the "here are the paths you have local changes" reminder, which is much more useful.

But that is a separate topic.
Previous: Matthieu MoyNext: Matthieu Moy
Message 16 of 20 in “Message from git reset: confusing?”
  1. Matthieu MoyAug 5, 2009
  2. Junio C HamanoAug 5, 2009
  3. Avery PennarunAug 5, 2009
  4. John TapsellAug 5, 2009
  5. Sverre RabbelierAug 5, 2009
  6. Matthieu MoyAug 6, 2009
  7. Junio C HamanoAug 6, 2009
  8. 1/2 Rename REFRESH_SAY_CHANGED to REFRESH_IN_PORCELAIN.Matthieu Moy, Aug 7, 2009
  9. 2/2 reset: make the output more user-friendly.Matthieu Moy, Aug 7, 2009
  10. Junio C HamanoAug 7, 2009
  11. Matthieu MoyAug 8, 2009
  12. Matthieu MoyAug 17, 2009
  13. Junio C HamanoAug 17, 2009
  14. 1/2 Rename REFRESH_SAY_CHANGED to REFRESH_IN_PORCELAIN.Matthieu Moy, Aug 21, 2009
  15. 2/2 reset: make the output more user-friendly.Matthieu Moy, Aug 21, 2009
  16. Junio C HamanoAug 22, 2009
  17. Matthieu MoyAug 22, 2009
  18. Junio C HamanoAug 23, 2009
  19. Matthieu MoyAug 23, 2009
  20. Reece DunnAug 23, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.