git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git-apply does not work in a sub-directory of a Git repository

From
Duy Nguyen <pclouds@gmail.com>
Date
Mar 23, 2016, 10:15 UTC
Message-ID
<CACsJy8DCk5YintK3PoO1BWdNmsiSLpAcGL4pU7QgNEG6S41CsQ@mail.gmail.com>
In-Reply-To
<CAGZ79kYmoKX1w5X8jE5_yGb3VKricHEwxAianTyt4VUd71qH-A@mail.gmail.com>
On Wed, Mar 23, 2016 at 5:14 AM, Stefan Beller <sbeller@google.com> wrote:
Show 16 quoted lines
>> 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
Previous: Stefan BellerNext: Junio C Hamano
Message 3 of 18 in “git-apply does not work in a sub-directory of a Git repository”
  1. Mehul JainMar 22, 2016
  2. Stefan BellerMar 22, 2016
  3. Duy NguyenMar 23, 2016
  4. Junio C HamanoMar 23, 2016
  5. Junio C HamanoMar 23, 2016
  6. Duy NguyenMar 24, 2016
  7. Nguyễn Thái Ngọc DuyMar 24, 2016
  8. 1/4 git-apply.txt: remove a spaceNguyễn Thái Ngọc Duy, Mar 24, 2016
  9. 2/4 git-apply.txt: mention the behavior inside a subdirNguyễn Thái Ngọc Duy, Mar 24, 2016
  10. 3/4 apply: add --whole to apply git patch without prefix filteringNguyễn Thái Ngọc Duy, Mar 24, 2016
  11. 4/4 apply: report patch skipping in verbose modeNguyễn Thái Ngọc Duy, Mar 24, 2016
  12. Junio C HamanoMar 24, 2016
  13. Junio C HamanoMar 24, 2016
  14. Duy NguyenMar 30, 2016
  15. Junio C HamanoMar 30, 2016
  16. Duy NguyenMar 30, 2016
  17. Junio C HamanoMar 24, 2016
  18. Mehul JainMar 23, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.