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

Re: Output from "git blame A..B -- path" for the bottom commit is misleading

From
John Keeping <john@keeping.me.uk>
Date
May 8, 2014, 21:38 UTC
Message-ID
<20140508213806.GA19464@serenity.lan>
In-Reply-To
<xmqq8uqc2dt5.fsf@gitster.dls.corp.google.com>
On Thu, May 08, 2014 at 01:52:38PM -0700, Junio C Hamano wrote:
Show 25 quoted lines
> I am tempted to say "blame that is run without the --porcelain
> option is a end-user facing Porcelain, and people should not be
> reading its output in their scripts" and change the behaviour of the
> "-b" option to instead show something like this instead:
>     
>     ^cc29195 (Unknown        2014-04-18 11:21:43 -0700 103) 
>     7bbc458b (Kyle J. McKay  2014-04-22 04:16:22 -0700 104) test_expect_...
>     ^cc29195 (Unknown        2014-04-18 11:21:43 -0700 105)         test...
>     7bbc458b (Kyle J. McKay  2014-04-22 04:16:22 -0700 106)         git ...
>     ^cc29195 (Unknown        2014-04-18 11:21:43 -0700 107)         test...
> 
> which shows the commit object name, its bottom-ness and the
> timestamp, or even
> 
>              (                                         103) 
>     7bbc458b (Kyle J. McKay  2014-04-22 04:16:22 -0700 104) test_expect_...
>              (                                         105)         test...
>     7bbc458b (Kyle J. McKay  2014-04-22 04:16:22 -0700 106)         git ...
>              (                                         107)         test...
> 
> which does away with the misleading information altogether.
> 
> I myself is leaning towards the latter between the two, and not
> overriding "-b" but introducing another "cleanse the output of
> useless bottom information even more" option.

I'd be tempted to leave the SHA-1 to indicate "sometime before" but delete the author and date (I also think it looks a bit nicer to omit the opening parenthesis):

    ^cc29195                                           103) 
    7bbc458b (Kyle J. McKay  2014-04-22 04:16:22 -0700 104) test_expect_...
    ^cc29195                                           105)         test...
    7bbc458b (Kyle J. McKay  2014-04-22 04:16:22 -0700 106)         git ...
    ^cc29195                                           107)         test...

On a slight tangent, I tried this in a fairly young repository and got this (with master at v2.0.0-rc2-4-g1dc51c6):

$ git blame Makefile | head -5 7a3fc144 (John Keeping 2013-12-26 17:37:53 +0000 1) REL_VERSION = v0.2 5c9829f9 (John Keeping 2013-07-29 17:03:26 +0100 2) 5c9829f9 (John Keeping 2013-07-29 17:03:26 +0100 3) # The default target is... ^f7fae99 (John Keeping 2013-03-24 17:14:40 +0000 4) all:: ^f7fae99 (John Keeping 2013-03-24 17:14:40 +0000 5)

f7fae99 is the initial commit in the repository, so shouldn't the last two lines blame to that, not a non-existent ancestor?

Previous: Duy NguyenNext: Junio C Hamano
Message 13 of 17 in “Output from "git blame A..B -- path" for the bottom commit is misleading”
  1. Junio C HamanoMay 8, 2014
  2. David KastrupMay 8, 2014
  3. Junio C HamanoMay 8, 2014
  4. Jeff KingMay 9, 2014
  5. Jeff KingMay 8, 2014
  6. David KastrupMay 8, 2014
  7. Jeff KingMay 9, 2014
  8. David KastrupMay 9, 2014
  9. Jeff KingMay 9, 2014
  10. Junio C HamanoMay 9, 2014
  11. David KastrupMay 9, 2014
  12. Duy NguyenMay 10, 2014
  13. John KeepingMay 8, 2014
  14. Junio C HamanoMay 8, 2014
  15. John KeepingMay 8, 2014
  16. John KeepingMay 8, 2014
  17. Junio C HamanoMay 8, 2014

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.