Re: `ab | (cd cd && git apply -)' fails with v2.0.0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Michael J Gruber <git@xxxxxxxxxxxxxxxxxxxx> writes:

> Steffen Nurpmeso venit, vidit, dixit 24.07.2014 15:29:
>> Hello (again, psssssst, after a long time),
>> 
>> it happened yesterday that i needed to do
>> 
>>   $ git diff HEAD:FILE COMMIT:SAME-FILE |
>>   > (cd src && git apply -) 
>> ...
>
> Ah little more context would help. Are you diffing files in the subdir
> src, or a file at the root which happens to be present in the subdir src
> as well?

As the <treeish>:<path> form is not meant to produce "git apply"
applicable patch in the first place, I am not sure what the OP is
trying to achieve in the first place.  Not just "how many leading
levels to strip?" but "which file is being modified?" does not
appear in a usable form.  For example, here is what you would see:

    $ git diff HEAD:GIT-VERSION-GEN maint:GIT-VERSION-GEN
    diff --git a/HEAD:GIT-VERSION-GEN b/maint:GIT-VERSION-GEN
    index 40adbf7..0d1a86c 100755
    --- a/HEAD:GIT-VERSION-GEN
    +++ b/maint:GIT-VERSION-GEN
    @@ -1,7 +1,7 @@
    ...

and neither "HEAD:GIT-VERSION-GEN" nor "maint:GIT-VERSION-GEN" is
the file being modified ("GIT-VERSION-GEN" is).

I would understand if the upstream of the pipe were

    $ git diff HEAD maint -- GIT-VERSION-GEN | ...

though.

Needless to say, if the place "cd" goes is not a worktree controlled
by git, then "git apply" would not know where the top-level of the
target tree is, so even though the input with the corrected command
on the upstream side of the pipe tells it which file is being
modified, it needs to be told with the proper -p<n> parameter how
many leading levels to strip.



--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]