Re: git apply fails silently when on the wrong directory
- From
Jeff King <peff@peff.net>
- Date
- Sep 27, 2017, 01:25 UTC
- Message-ID
- <20170927012506.5tplhzain5z4eyxy@sigill.intra.peff.net>
- In-Reply-To
- <87k20lt10c.fsf@gmail.com>
On Tue, Sep 26, 2017 at 05:53:55PM -0700, Ernesto Alfonso wrote:
Show 17 quoted lines
> I recently ran into a similar issue as described here: > > https://stackoverflow.com/questions/24821431/git-apply-patch-fails-silently-no-errors-but-nothing-happens > > I was using the alias: > > alias ganw='git diff -U0 -w --no-color "$@" | git apply --cached --ignore-whitespace --unidiff-zero -' > > to stage non-whitespace changes, but I was not in the root directory and > the changes were not being applied. I broke down the command to discover > the 'git apply' part of the pipe was silently failing to apply anything, > exiting 0 without even a warning. > > The exit status and lack of warning is terribly misleading, I imagine > this would be the cause of subtle bugs in automated scripts. > > Is this expected behaviour?
Yes, this is as documented in git-apply(1):
Reads the supplied diff output (i.e. "a patch") and applies it to files. When running from a subdirectory in a repository, patched paths outside the directory are ignored.
I agree it's a potential source of confusion. There's some previous discussion in this thread:
https://public-inbox.org/git/CA+DCAeQQQH59Lb43Y4Bi1xktPNoODV11KkUBbKNG1OZ7mDb-UQ@mail.gmail.com/
-Peff