Re: [PATCH 2/2] grep: use slash for path delimiter, not colon
- From
Jeff King <peff@peff.net>
- Date
- Aug 26, 2013, 21:13 UTC
- Message-ID
- <20130826211320.GA26417@sigill.intra.peff.net>
- In-Reply-To
- <CABURp0pPzRH5JdPEooyZw0iccD891E1i_CbTqDfVJnx+drfQEw@mail.gmail.com>
On Mon, Aug 26, 2013 at 05:03:04PM -0400, Phil Hord wrote:
Show 10 quoted lines
> > $ git grep -l foo HEAD | head -1 > > HEAD:RelNotes/1.5.1.5.txt > > > > we still limit to the current directory, but the output does not note > > this (it should be "HEAD:./RelNotes/1.5.1.5.txt"). I think this bug is > > orthogonal to Phil's patch, though. > > Maybe not. My path completes the assumption that the L:R value > returned by grep is an object ref; but Junio still thought it wasn't. > I think this is another case where his view was correct.
I certainly assumed it was, because it is in most cases it is. And something like "HEAD:RelNotes/1.5.1.5.txt" certainly _looks_ like one, and is generated by the current git. And what is the point of coming up with a file listing if the names you return do not actually exist?
Show 7 quoted lines
> There's more bad news on this front. > > $ cd Documentation > $ git grep -l foo HEAD .. | head -1 > HEAD:../.gitignore > > That's not a valid ref, either (though maybe it could be).
Yes, though we seem to normalize paths already. So the other entries from that command are (in git.git):
HEAD:../.mailmap HEAD:RelNotes/1.5.1.5.txt
So we could either:
1. Prepend the current path before normalizing to yield:
HEAD:.mailmap
HEAD:Documentation/RelNotes/1.5.1.5.txt 2. Teach the get_sha1 path parser about "..", and prepend "./" when we
are in a prefixed subdir. HEAD:./../.mailmap
HEAD:./RelNotes/1.5.1.5.txt-Peff