Re: [PATCH] doc/read-tree: remove obsolete remark
- From
Jeff King <peff@peff.net>
- Date
- Jan 12, 2018, 00:35 UTC
- Message-ID
- <20180112003503.GA14128@sigill.intra.peff.net>
- In-Reply-To
- <xmqqd12gxa2o.fsf@gitster.mtv.corp.google.com>
On Thu, Jan 11, 2018 at 03:14:07PM -0800, Junio C Hamano wrote:
Show 14 quoted lines
> >> Doesn't "git read-tree --prefix=previous HEAD^" add paths like > >> "previous/Documentation/Makefile" to the index, i.e. instead of > >> forcing you to have the required slash at the end, we give one for > >> free when it is missing? > > > > Yes, I think it does what you'd want with that path. But it would not do > > what you want by adding "previous-file". Which seems like a gotcha that > > should be mentioned. > > I am a bit puzzled. > > Do you mean a user who types "git read-tree --prefix=v1- HEAD^" may > be expecting to see that the blob object "HEAD^:Makefile" added at > path "v1-Makefile" etc?
Sorry, I was somewhat turned around in my example, thinking that we were matching existing entries by prefix here and not putting entries into a new prefix[1].
But yes, your example hits the point that I think is left unsaid: does "--prefix=sub" mean the same thing as "--prefix=sub/", or is it a true string prefix? Reading more carefully, though, we say "under the directory at <prefix>" in the earlier part, which is probably sufficient.
Note that this _is_ different than "git checkout-index --prefix", which is a strict string prefix (i.e., you can checkout "--prefix=v1-" and get "v1-Makefile").
-Peff
[1] I was trying to figure out which feature of Git I was confusing it
with, but couldn't find one. I think I may have just been thinking
of checkout-index (which is not about matching existing paths, but
does have the different behavior). Normally matching of existing
paths is done with pathspecs, which I think should all use directory
boundaries for prefix-matching.