Thread (57 messages) 57 messages, 9 authors, 2016-06-15

[bug-patch] [BUG?] rename patch accepted with --dry-run, rejected without (Re: [PATCH V3] arm & sh: factorised duplicated clkdev.c)

From: Andreas Gruenbacher <hidden>
Date: 2016-06-15 22:49:28
Also in: git, linux-sh

Hi,

On Friday 03 September 2010 20:43:51 Jonathan Nieder wrote:
Uwe Kleine-K?nig wrote:
quoted
On Fri, Sep 03, 2010 at 07:18:43PM +0900, Magnus Damm wrote:
quoted
quoted
Using --dry-run is fine, but omitting dry-run gives me:

...
patching file arch/arm/common/clkdev.c
patching file arch/sh/include/asm/clkdev.h
Hunk #1 FAILED at 1.
Hunk #2 FAILED at 11.
2 out of 2 hunks FAILED -- saving rejects to file
arch/sh/include/asm/clkdev.h.rej

I guess this is caused by the last "renaming" hunk, see below.
Yep, I can reproduce this.  Patch applies with "git apply",
"patch --dry-run -p1" accepts it, "patch -p1" fails.

 $ patch --version | head -1
 GNU patch 2.6.1.85-423d
 $ cd ~/src/linux-2.6
 $ git checkout 2bfc96a12
 $ git clean -fd
 $ wget http://download.gmane.org/gmane.linux.ports.sh.devel/8747/8748
[...]
something pretty bizarre is going on here.  The wget output modifies the same 
file twice, but both patches to this file have the same source sha1 (5645f35):
quoted hunk ↗ jump to hunk
diff --git a/arch/sh/include/asm/clkdev.h b/arch/sh/include/asm/clkdev.h
dissimilarity index 69%
index 5645f35..6ba9186 100644
--- a/arch/sh/include/asm/clkdev.h
+++ b/arch/sh/include/asm/clkdev.h
quoted hunk ↗ jump to hunk
diff --git a/arch/sh/include/asm/clkdev.h b/include/linux/clkdev.h
similarity index 85%
rename from arch/sh/include/asm/clkdev.h
rename to include/linux/clkdev.h
index 5645f35..457bcb0 100644
So "git apply" and "patch --dry-run" seem to work only by accident.

How was this patch generated: with git itself?

The fact that "patch --dry-run" may not work for patches that modify the same 
file twice is a known defect.  I don't know how to solve this in a reasonably 
elegant way.  Luckily the problem only triggers when people are doing 
something "strange" such as concatenating patches.

Andreas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help