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"?)