Re: Delitifier broken (Re: diff-core segfault)
- From
Linus Torvalds <torvalds@osdl.org>
- Date
- Dec 12, 2005, 23:31 UTC
- Message-ID
- <Pine.LNX.4.64.0512121529200.15597@g5.osdl.org>
- In-Reply-To
- <7vek4igevq.fsf@assigned-by-dhcp.cox.net>
On Mon, 12 Dec 2005, Junio C Hamano wrote:
> Nicolas Pitre <nico@cam.org> writes: > > > > I would say involving an empty blob with deltas _is_ the bug in the > > first place. Please don't let that happen.
I agree with Nicolas.
Show 6 quoted lines
> Not all use of delta is to produce a pack. An empty->empty > delta is a valid two byte \0\0 sequence, and I do not see any > reason to forbid it. Although using such delta to represent > anything in a pack does *not* make any sense as you say, it > makes other callers simpler if they do not have to check if > from_len and to_len are empty before calling the delta code.
And you don't need to.
Do what pack-objects.c does: just call "diff_delta()" and check the result for NULL. If the result is NULL, then you have to do some special code, because that means that it's a full create or a full delete (or it's an unchanged empty file). Regardless, it really _is_ a special case, and it would be silly to generate a delta for it.
Linus