On Thu, Sep 29, 2016 at 04:46:19AM -0700, Kyle J. McKay wrote:
> This hint: information is excellent. There needs to be a way to show it on
> $ git rev-parse --disambiguate=b2e1
> Not nearly so helpful, but the operation of --disambiguate cannot be changed
> without breaking current scripts.
> Can your excellent "hint:" output above be attached to the --disambiguate
> option somehow, please. Something like this perhaps:
> $ git rev-parse --disambiguate-list=b2e1
> b2e1196 tag v2.8.0-rc1
> b2e11d1 tree
> b2e1632 commit 2007-11-14 - Merge branch 'bs/maint-commit-options'
> b2e1759 blob
> b2e18954 blob
> b2e1895c blob
I think the "right" way to do this is pipe the list of sha1s into
another git commit which can format them however you want.
Unfortunately, there isn't a single command that does a great job:
- "cat-file --batch-check" can show you the sha1 and type, but it
won't abbreviate sha1s, and it won't show you commit/tag information
- "log --stdin --no-walk" will format the commit however you like, but
skips the trees and blobs entirely, and the tag can only be seen via
- "for-each-ref" has flexible formatting, too, but wants to format
refs, not objects (and doesn't read from stdin).
IMHO that is a sign that our formatting tools aren't as good as they
could be (I think the right tool is cat-file, but it should be able to
do all of the formatting that the other commands can do).
Of course if you really just want human-readable output, then:
$ git cat-file -e b2e1
error: short SHA1 b2e1 is ambiguous
hint: The candidates are:
hint: b2e1196 tag v2.8.0-rc1
hint: b2e11d1 tree
hint: b2e1632 commit 2007-11-14 - Merge branch 'bs/maint-commit-options'
hint: b2e1759 blob
hint: b2e18954 blob
hint: b2e1895c blob
fatal: Not a valid object name b2e1
is pretty easy.
That being said, I don't mind if somebody wanted to do a rev-parse
option on top of my series. The formatting code is already split into
its own function.