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

Re: why do "git log -h" and "git show -h" print the same thing?

From
Thomas Gummerer <t.gummerer@gmail.com>
Date
May 27, 2018, 10:24 UTC
Message-ID
<20180527102452.GA8868@hank.intra.tgummerer.com>
In-Reply-To
<CAGZ79kY8CjLsTqY2YXJ8hPA41XrbYZrtK7yO59vrbA5M_vorVg@mail.gmail.com>
On 05/24, Stefan Beller wrote:
Show 24 quoted lines
> On Thu, May 24, 2018 at 6:37 AM, Robert P. J. Day <rpjday@crashcourse.ca> wrote:
> >
> >   maybe this is deliberate, but it's confusing that, with git 2.17.0,
> > the output of both "git log -h" and "git show -h" is exactly the same:
> >
> > $ git log -h
> > usage: git log [<options>] [<revision-range>] [[--] <path>...]
> >    or: git show [<options>] <object>...
> >
> >     -q, --quiet           suppress diff output
> >     --source              show source
> >     --use-mailmap         Use mail map file
> >     --decorate-refs <pattern>
> >                           only decorate refs that match <pattern>
> >     --decorate-refs-exclude <pattern>
> >                           do not decorate refs that match <pattern>
> >     --decorate[=...]      decorate options
> >     -L <n,m:file>         Process line range n,m in file, counting from 1
> > $
> >
> > is that what's *supposed* to happen?
> 
> I would think so, show is just "log -p" with the range clamped
> down to <object>^..<object>.

Hmm, that's not true though if the object is not a commit, from my understanding? While 'git show' does share some of its code with 'git log', what you get as output may be quite different from what you'd get with 'git log'. So I feel like we're leaking an implementation detail to the user here, and I can see how it is confusing especially for new users.

So I do feel like there's some room for improvement here, by only showing the help for the command that was actually used. I would welcome a patch to that extend, but obviously I'm not the authority here :)

> It's been in the code like that for a couple years by now,
> e.g. see
> e66dc0cc4b1a6 log.c: fix translation markings, 2015-01-06
Previous: Robert P. J. Day
Message 4 of 4 in “why do "git log -h" and "git show -h" print the same thing?”
  1. Robert P. J. DayMay 24, 2018
  2. Stefan BellerMay 24, 2018
  3. Robert P. J. DayMay 24, 2018
  4. Thomas GummererMay 27, 2018

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.