From: Linus Torvalds Date: Sat, 04 Nov 2006 16:27:19 GMT Subject: Re: Problem with git-apply? Message-ID: In-Reply-To: <7v8xir4k3w.fsf@assigned-by-dhcp.cox.net> On Sat, 4 Nov 2006, Junio C Hamano wrote: > > The problem appears that GNU diff _never_ uses "--- /dev/null" or "+++ > /dev/null" to indicate creation or deletion of the file, but the > "traditional patch parser" builtin-apply has assumed that is what the > traditional diff output from day one. Where we got that idea is mystery > to me (this is Linus's code), but I suspect it is what other SCMs did. No, the original code used to trigger a "create" diff on - source was /dev/null OR - source had zero patches. It used to have code like if (patch->is_new < 0) { patch->is_new = !oldlines; if (!oldlines) patch->old_name = NULL; } if (patch->is_delete < 0) { patch->is_delete = !newlines; if (!newlines) patch->new_name = NULL; } and I think the person who broke it was you ;) According to git-pickaxe, the buggy commit is 4be60962. You should know by now that I never have bugs.