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

[PATCHv2 0/6] duplicate objects and delta cycles, oh my!

From
Jeff King <peff@peff.net>
Date
Aug 22, 2013, 23:12 UTC
Message-ID
<20130822231215.GA16978@sigill.intra.peff.net>
In-Reply-To
<20130822144305.GA21219@sigill.intra.peff.net>
On Thu, Aug 22, 2013 at 10:43:05AM -0400, Jeff King wrote:
Show 5 quoted lines
> > write_idx_file() is called after index-pack processes all delta
> > objects. Could resolve_deltas() go cyclic with certain duplicate
> > object setup?
> 
> Good question. I'm not sure. I'll check it out.

I think the answer is "no", based on both reasoning and testing (both of which are included in patches 3-4 of the series below).

So here's my re-roll of the series.
  [1/6]: test-sha1: add a binary output mode
    New in this iteration; the previous version piped test-sha1 into
    perl to create the pack trailer, but with this simple change we can
    drop the perl dependency.
  [2/6]: sha1-lookup: handle duplicate keys with GIT_USE_LOOKUP
    Same code as before. I've factored the pack-creation bits from the
    tests into lib-pack.sh, so they can be reused elsewhere when we want
    to create bogus packs (and patches 3-4 reuse them here).
  [3/6]: add tests for indexing packs with delta cycles
  [4/6]: test index-pack on packs with recoverable delta cycles
    New tests covering delta cycles.
  [5/6]: index-pack: optionally reject packs with duplicate objects
    Similar to before, but I converted the config flag to a simple
    boolean (since we scrapped the "fix" of the tri-state "allow,
    reject, fix").
  [6/6]: default pack.indexDuplicates to false
    This flips the safety check on by default everywhere (before, it was
    left off for index-pack).
-Peff
Previous: Jeff KingNext: Jeff King
Message 11 of 37 in “duplicate objects in packfile”
  1. Jeff KingAug 14, 2013
  2. Junio C HamanoAug 14, 2013
  3. Junio C HamanoAug 14, 2013
  4. Nicolas PitreAug 14, 2013
  5. Jeff KingAug 16, 2013
  6. 0/4 duplicate objects in packfilesJeff King, Aug 21, 2013
  7. 1/4 sha1-lookup: handle duplicate keys with GIT_USE_LOOKUPJeff King, Aug 21, 2013
  8. 2/4 index-pack: optionally reject packs with duplicate objectsJeff King, Aug 21, 2013
  9. Duy NguyenAug 22, 2013
  10. Jeff KingAug 22, 2013
  11. 0/6 duplicate objects and delta cycles, oh my!Jeff King, Aug 22, 2013
  12. 1/6 test-sha1: add a binary output modeJeff King, Aug 22, 2013
  13. 2/6 sha1-lookup: handle duplicate keys with GIT_USE_LOOKUPJeff King, Aug 22, 2013
  14. Junio C HamanoAug 23, 2013
  15. Jeff KingAug 23, 2013
  16. Nicolas PitreAug 23, 2013
  17. Jeff KingAug 23, 2013
  18. 0/6 duplicate objects and delta cyclesJeff King, Aug 24, 2013
  19. 1/6 test-sha1: add a binary output modeJeff King, Aug 24, 2013
  20. 2/6 sha1-lookup: handle duplicate keys with GIT_USE_LOOKUPJeff King, Aug 24, 2013
  21. 3/6 add tests for indexing packs with delta cyclesJeff King, Aug 24, 2013
  22. 4/6 test index-pack on packs with recoverable delta cyclesJeff King, Aug 24, 2013
  23. 5/6 index-pack: optionally reject packs with duplicate objectsJeff King, Aug 24, 2013
  24. 6/6 default pack.indexDuplicates to falseJeff King, Aug 24, 2013
  25. Johannes SixtAug 23, 2013
  26. Jeff KingAug 23, 2013
  27. 3/6 add tests for indexing packs with delta cyclesJeff King, Aug 22, 2013
  28. 4/6 test index-pack on packs with recoverable delta cyclesJeff King, Aug 22, 2013
  29. 5/6 index-pack: optionally reject packs with duplicate objectsJeff King, Aug 22, 2013
  30. 6/6 default pack.indexDuplicates to falseJeff King, Aug 22, 2013
  31. Nicolas PitreAug 22, 2013
  32. 3/4 reject duplicates when indexing a packfile we createdJeff King, Aug 21, 2013
  33. 4/4 index-pack: optionally skip duplicate packfile entriesJeff King, Aug 21, 2013
  34. Junio C HamanoAug 21, 2013
  35. Jeff KingAug 22, 2013
  36. Junio C HamanoAug 21, 2013
  37. Nicolas PitreAug 14, 2013

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.