Re: [PATCH] git-jump: ignore (custom) prefix in diff mode
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 17, 2012, 19:48 UTC
- Message-ID
- <7vlig8v3b5.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <20120917173945.GA22000@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 26 quoted lines
> On Sun, Sep 16, 2012 at 10:24:04PM -0700, Junio C Hamano wrote:
>
>> Mischa POSLAWSKY <git@shiar.nl> writes:
>>
>> > Matching the default file prefix b/ does not yield any results if config
>> > option diff.noprefix or diff.mnemonicprefix is enabled.
>> >
>> > Signed-off-by: Mischa POSLAWSKY <git@shiar.nl>
>> > ---
>> > Very useful script otherwise; thanks.
>> >
>> > contrib/git-jump/git-jump | 4 ++--
>> > 1 file changed, 2 insertions(+), 2 deletions(-)
>> >
>> > diff --git contrib/git-jump/git-jump contrib/git-jump/git-jump
>> > index a33674e..dc90cd6 100755
>> > --- contrib/git-jump/git-jump
>> > +++ contrib/git-jump/git-jump
>> > @@ -21,9 +21,9 @@ open_editor() {
>> > ...
>>
>> Makes sense to me. Peff?
>
> Yes, looks obviously correct. Thanks.
>
> Acked-by: Jeff King <peff@peff.net>Thanks.
It may not be obvious to many people, so here is tip of the day.
I knew Mischa knew that the patch was prepared with wrong src/dst prefix (notice the lack of a/ and b/), but I did not say anything special when I drove "git am". I just did the usual "git am -s3c" and the patch was applied just fine ;-)
What is happening is that:
- I didn't give '-p0" to "git am", so it thought that patch was based on a tree that has "git-jump" directory at the top-level of the working tree, and the file that is being patched lived at "git-jump/git-jump" in Mischa's working tree;
- However, the official git.git tree has the corresponding file at "contrib/git-jump/git-jump", and there is no such file at "git-jump/git-jump".
- The three-way merge logic kicks in because of the "-3" option, using a (fake) tree that is shaped like Mischa's tree with the version before the patch as a common ancestor, to merge the version "git am" thought Mischa has (i.e. no contrib/ directory) and the version in my tree. From the point of view of the three-way merge logic, I renamed the path to be in contrib/ directory while Mischa kept the path intact and fixed the contents of the script. This merges cleanly to produce the expected result.