Re: Making git apply always work relative to current directory

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

 



"brian m. carlson" <sandals@xxxxxxxxxxxxxxxxxxxx> writes:

> If I run git apply --no-index --verbose <patch>, it succeeds in both
> cases, but when I'm in the git repository, it *silently does nothing*.

That originally sounded peculiar to me and I suspected it to be a
bug, but it looks like a designed-in feature and with us since

commit edf2e37002eeb30a2ccad5db3b3e1fe41cdc7eb0
Author: Junio C Hamano <junkio@xxxxxxx>
Date:   Fri Nov 25 23:14:15 2005 -0800

    git-apply: work from subdirectory.
    
    When applying a patch to index file, we need to know where GIT_DIR is;
    use setup_git_directory() to find it out.  This also allows us to work
    from a subdirectory if we wanted to.
    
    When git-apply is run from a subdirectory, it applies the given patch
    only to the files under the current directory and below.
    
    Signed-off-by: Junio C Hamano <junkio@xxxxxxx>

So exclusion by use_patch() for paths outside the current directory
seems to be a feature; the log message does not say "why", but if I
have to guess, the reasoning was probably "The old world order was
that the command has to always be run from the top level.  A user
who wants to run it from a subdirectory must be doing so for a
reason, e.g. 'I am currently working in this directory, do not touch
outside this area'".  In any case, I suspect that the existing tooling
people built over the past 10 years around "git apply" already depends
on this behaviour, so we cannot lightly change it.

Is it so hard to temporarily go up to the root, run "git apply", and
come back?  You can use "--no-index --directory=trash" for both
cases that way.
--
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]