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.