From: Duy Nguyen Date: Wed, 23 Mar 2016 10:15:28 GMT Subject: Re: git-apply does not work in a sub-directory of a Git repository Message-ID: In-Reply-To: On Wed, Mar 23, 2016 at 5:14 AM, Stefan Beller wrote: >> Hello everyone, >> As you observed, patch wasn't applied. Is it intended behaviour of >> git-apply? Usually to apply the patch I have to copy it to top directory >> and then use git-apply. >> >> I tried out git-am to apply the patch ("git format-patch" was used to >> make patch) while being in the "outgoing" sub-directory and it worked >> fine. So why does git-apply show this kind of behaviour? > > > Think of git-apply as a specialized version of 'patch', which would also > error out if there are path issues. (Inside outgoing/ there is no file found at > ./main) > > git-am is the porcelain command which is what is recommended to users > who interact with Git and patches. git-am is about patches in mailbox form, not plain patches, isn't it? In that view, it's not a replacement for git-apply. How about we start deprecating the old behavior? 1) add --no-index to force git-apply ignore .git, --git (or some other name) to apply patches as if running from topdir, add a config key to choose default behavior 2) when git-apply is run without --git, --index or --cached from a subdir and the said config key is not set, start warning and recommending --no-index 3) wait X years 4)switch default behavior to --git (if run inside a git repo) -- Duy