From: Jeff King <peff@peff.net>
To: Maarten Billemont <lhunath@gmail.com>
Cc: Git Mailing List <git@vger.kernel.org>
Subject: Re: git-am cannot apply git format-patch -M
Date: Mon, 28 Mar 2011 08:14:12 -0400 [thread overview]
Message-ID: <20110328121412.GB9232@sigill.intra.peff.net> (raw)
In-Reply-To: <09D72CB4-1B48-4799-B0D5-DB54942D840F@gmail.com>
On Mon, Mar 28, 2011 at 09:44:34AM +0200, Maarten Billemont wrote:
> I've created a series of patches for my local commits using:
>
> git format-patch -M -C ...
>
> The resulting patch files contain hunks like:
>
> diff --git a/file1 b/file2
> similarity index 93%
> rename from file1
> rename to file2
> index 7cf3a09..88c9c13 100644
> --- a/file1
> +++ b/file2
> [...]
>
> git-am fails at applying these hunks, failing with:
>
> Applying: [commit description]
> fatal: git apply: bad git-diff - inconsistent old filename on line 109
> Patch failed at [HEAD commit]
I can't replicate your problem using this script:
git init repo && cd repo
perl -le 'print for(1 .. 100)' >file1
git add file1
git commit -m 'add file1'
sed 50d file1 >file2
rm file1
git add -A
git commit -m 'move file1 to file2, with tweak'
git format-patch -M --stdout -1 >patch
git checkout -b other HEAD^
git am patch
which generates a patch like the one you mention above. Does that script
work for you? If not, what git version are you using? If it does work,
then perhaps there is something more complex going on in your real repo.
Can you show us a more complete example, with the real filenames?
> Additionally, I'd like to report that the line number reported by
> git-am in this error message does not reflect the actual line number
> of the problem in the patch file. The reported line number is offset
> by -[amount of lines before the [---] line in the patch file], which
> makes understanding the error message hard, confusing and potentially
> misleading.
Yes. "git am" splits the email into pieces and just feeds the patch
portion to "git apply". The lines it is referencing are in
.git/rebase-apply/patch. It would perhaps be useful if "git apply" gave
the filename in addition to the line number (alternatively, "git am"
could mention the filename after a failed apply).
-Peff
prev parent reply other threads:[~2011-03-28 12:14 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-28 7:44 git-am cannot apply git format-patch -M Maarten Billemont
2011-03-28 12:14 ` Jeff King [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110328121412.GB9232@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=lhunath@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).