Re: git-apply does not work in a sub-directory of a Git repository
From: Duy Nguyen <hidden>
Date: 2016-06-15 23:08:54
On Wed, Mar 23, 2016 at 5:14 AM, Stefan Beller [off-list ref] wrote:
quoted
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