git-apply quirks

From: Don Zickus <hidden>
Date: 2016-06-15 22:44:43

Hi.

I work with a lot of backporting of patches and there are times when
people combine multiple patches together such that the resulting patch can
have multiple chunks changing the same file.  I have noticed git-apply
does not handle this case correctly.  It usually ignores all previous
chunks and only applies the last one.

The same scenario can also cause git-apply to fail if a later patch chunk
depends on changes from an earlier patch chunk.

The traditional 'patch' command seems to handle the successfully.  Is this
git-apply behaviour intended or is it a bug?

The following example summarizes the problem:

#cd <some git repo>
# cat > dummy << EOF
This is
a
test
of
git-apply
doing
something
incorrectly.

Please
help.

EOF
#git-add dummy
#git commit -m 'test'
#git-apply <attached patch below>

You will notice in the git-diff output the first chunk is ignored and only
the second applies.

Cheers,
Don


diff a/dummy b/dummy
--- a/dummy
+++ b/dummy
@@ -1,5 +1,5 @@
 This is
-a
+the first
 test
 of
 git-apply
diff a/dummy b/dummy
--- a/dummy
+++ b/dummy
@@ -6,6 +6,8 @@ git-apply
 doing
 something
 incorrectly.
+Now here is the
+second test.
 
 Please
 help.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help