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. Linus - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html