git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Junio C HamanoNext: Junio C Hamano
Message 7 of 15 in “diff-core segfault”
  1. Darrin ThompsonDec 12, 2005
  2. Johannes SchindelinDec 12, 2005
  3. Junio C HamanoDec 12, 2005
  4. Delitifier broken (Re: diff-core segfault)Junio C Hamano, Dec 12, 2005
  5. Nicolas PitreDec 12, 2005
  6. Junio C HamanoDec 12, 2005
  7. Linus TorvaldsDec 12, 2005
  8. Junio C HamanoDec 13, 2005
  9. Linus TorvaldsDec 13, 2005
  10. Junio C HamanoDec 13, 2005
  11. Linus TorvaldsDec 13, 2005
  12. Nicolas PitreDec 13, 2005
  13. Junio C HamanoDec 13, 2005
  14. 2/2 diff-delta.c: allow delta with empty blob.Junio C Hamano, Dec 12, 2005
  15. Darrin ThompsonDec 12, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.