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