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 vger.kernel.org
More majordomo info at http://vge
r.kernel.org/majordomo-info.html
|