Adam Williamson <awilliam@xxxxxxxxxx> writes: > Hi folks! So I ran into an odd issue with git today. I'm kinda > surprised I can't find any prior discussion of it, but oh well. The > situation is this: I ran git format-patch on a commit that adds three > empty files to a repository - this commit: > https://github.com/mesonbuild/meson/commit/5c87167a34c6ed703444af180fffd8a45a7928ee > the relevant lines from the patch file it produced look like this: > > === > > diff --git a/test cases/common/56 array methods/a.txt b/test cases/common/56 array methods/a.txt > new file mode 100644 > index 000000000..e69de29bb > diff --git a/test cases/common/56 array methods/b.txt b/test cases/common/56 array methods/b.txt > new file mode 100644 > index 000000000..e69de29bb > diff --git a/test cases/common/56 array methods/c.txt b/test cases/common/56 array methods/c.txt > new file mode 100644 > index 000000000..e69de29bb I do not have very ancient build of Git handy, but I know Git as old as v1.3.0 (which I consider is one of the two versions of historical importance, the other being v1.5.3) behaved this way and we haven't changed it ever since, so I am surprised too to learn that "GNU patch" cannot grok it. Even though you didn't mention it, am I correct to assume that "patch" has a similar issue with a change that removes an empty file? I do not think our patch injestion machinery in "git apply" minds if we added the "--- /dev/null" + "+++ b/<path>" headers (and the reverse for removal of an empty file) to the current output, and I am not fundamentally opposed to such a change. But because it is such a rare event (and a discouraged practice) to record a completely empty file, I wouldn't place a high priority on doing so myself. Thanks.