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

Re: format-patch and submodules

From
Jens Lehmann <jens.lehmann@web.de>
Date
Jun 9, 2015, 18:52 UTC
Message-ID
<557735E6.8040906@web.de>
In-Reply-To
<CAD2z=MAu1qrr9=wwBnOJZZ3JCJOsmFWi=gDgKMQKU3_P-01e3g@mail.gmail.com>
Am 05.06.2015 um 01:20 schrieb Christopher Dunn:
Show 23 quoted lines
> (Seen in git versions: 2.1.0 and 1.9.3 et al.)
>
> $ git format-patch --stdout X^..X | git apply check -
> fatal: unrecognized input
>
> This fails when the commit consists of nothing but a submodule change
> (as in 'git add submodule foo'), but it passes when a file change is
> added to the same commit.
>
> There used to be a similar problem for empty commits, but that was
> fixed around git-1.8:
>
>      http://stackoverflow.com/questions/20775132/cannot-apply-git-patch-replacing-a-file-with-a-link
>
> Now, 'git format-patch' outputs nothing for an empty commit. I suppose
> that needs to be the behavior also when only submodules are changed,
> since in that case there is no 'diff' section from 'format-patch'.
>
> Use-case: git-p4
>
> Of course, we do not plan to add the submodule into Perforce, but we
> would like this particular command to behave the same whether there
> are other diffs or not.
Hmm, I'm not sure that this is a bug. It looks to me like doing a
$ git format-patch --stdout X^..X | git apply check -

when nothing is changed except submodules and expecting it to work is the cause of the problem.

I get the same error when I do:

$git format-patch --stdout master..master | git apply --check - fatal: unrecognized input

No submodules involved, just an empty patch.

I assume you want to ignore all submodule changes, so you should check if e.g. "git diff --ignore-submodules X^..X" returns anything before applying that? (From the command you ran I assume you might be able to drop the --ignore-submodules because you already did set "diff.ignoreSubmodules" to "all"?)

Previous: Christopher DunnNext: Christopher Dunn
Message 2 of 5 in “format-patch and submodules”
  1. Christopher DunnJun 4, 2015
  2. Jens LehmannJun 9, 2015
  3. Christopher DunnJun 10, 2015
  4. Luke DiamandJun 10, 2015
  5. Christopher DunnJun 10, 2015

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.