On 05/24, Stefan Beller wrote:
> On Thu, May 24, 2018 at 6:37 AM, Robert P. J. Day <rpj...@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

Reply via email to