Re: [RFC 2/2] grep: use '/' delimiter for paths
- From
- Stefan Hajnoczi <stefanha@redhat.com>
- Date
- Jan 20, 2017, 14:12 UTC
- Message-ID
- <20170120141212.GC17499@stefanha-x1.localdomain>
- In-Reply-To
- <xmqqpoji2851.fsf@gitster.mtv.corp.google.com>
On Thu, Jan 19, 2017 at 10:54:02AM -0800, Junio C Hamano wrote:
Show 15 quoted lines
> Stefan Hajnoczi <stefanha@redhat.com> writes:
>
> > If the tree contains a sub-directory then git-grep(1) output contains a
> > colon character instead of a path separator:
> >
> > $ git grep malloc v2.9.3:t
> > v2.9.3:t:test-lib.sh: setup_malloc_check () {
> > $ git show v2.9.3:t:test-lib.sh
> > fatal: Path 't:test-lib.sh' does not exist in 'v2.9.3'
>
> I am slightly less negative on this compared to 1/2, but not by a
> big margin. The user wanted to feed a subtree to the command,
> instead of doing the more natural
>
> $ git grep -e malloc v2.9.3 -- tI find <rev>:<path> vs <rev> -- <path> confusing:
| <rev>:<path> | <rev> -- <path> ----------+----------------------+--------------------- git grep | OK | OK ----------+----------------------+--------------------- git show | OK | <path> ignored ----------+----------------------+--------------------- git log | no output | OK ----------+----------------------+---------------------
Neither syntax always does what I expect. If git show <rev> -- <path> honored <path> then I could use that syntax consistently.
Sorry for going on a tangent. Does it seem reasonable to handle <path> in git-show(1) as a UI convenience?
Show 13 quoted lines
> So again, "contains a colon character" is not coming from what Git > does, but the user gave Git "a colon character" when she didn't have > to. > > Having said that, if we wanted to start ignoring what the end-user > said in the initial input like 1/2 and 2/2 does (i.e. "this specific > tree object" as an input), I think the approach to solve for 1/2 and > 2/2 should be the same. I think we should decide to do a slash > instead of a colon, not because v2.9.3: has colon at the end and > v2.9.3:t has colon in it, but because both of these are both bare > tree objects. The patches presented does not seem to base their > decision on the actual object type but on the textual input, which > seems wrong.
Yes, reparsing the name is ugly and I hoped to get feedback with this RFC. Thanks for the quick review!