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

Re: [PATCHv3 5/6] fast-export: Fix output order of D/F changes

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 7, 2010, 21:40 UTC
Message-ID
<7vy6dnrmvu.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1278480034-22939-6-git-send-email-newren@gmail.com>
newren@gmail.com writes:
Show 11 quoted lines
> From: Elijah Newren <newren@gmail.com>
>
> The fast-import stream format requires incremental changes which take place
> immediately, meaning that for D->F conversions all files below the relevant
> directory must be deleted before the resulting file of the same name is
> created.  Reversing the order can result in fast-import silently deleting
> the file right after creating it, resulting in the file missing from the
> resulting repository.
>
> We correct the order by instructing the diff_tree machinery to compare
> entries using df_name_compare instead of base_name_compare.
I am not so sure about this one.

You can be walking two trees, one of which has "b-1" (blob), "b-2" (blob) and then "b" (tree), while the other one has "b" (blob), "b-1" (blob) and then "b-2" (blob). The patch tells the machinery that "b" (tree) sorts just like "b" (blob) only during comparison, but the actual data stream it is walking is sorted differently. Without some form of lookahead, can you reliably "correct the order"?

Previous: newren@gmail.comNext: Elijah Newren
Message 14 of 17 in “[PATCHv3 0/6] D/F conflict fixes”
  1. newren@gmail.comJul 7, 2010
  2. 1/6 Add additional testcases for D/F conflictsnewren@gmail.com, Jul 7, 2010
  3. Junio C HamanoJul 7, 2010
  4. Elijah NewrenJul 8, 2010
  5. Junio C HamanoJul 8, 2010
  6. 2/6 Add a rename + D/F conflict testcasenewren@gmail.com, Jul 7, 2010
  7. Junio C HamanoJul 7, 2010
  8. Elijah NewrenJul 8, 2010
  9. 3/6 merge-recursive: Fix D/F conflictsnewren@gmail.com, Jul 7, 2010
  10. Junio C HamanoJul 7, 2010
  11. Elijah NewrenJul 8, 2010
  12. 4/6 merge_recursive: Fix renames across paths below D/F conflictsnewren@gmail.com, Jul 7, 2010
  13. 5/6 fast-export: Fix output order of D/F changesnewren@gmail.com, Jul 7, 2010
  14. Junio C HamanoJul 7, 2010
  15. Elijah NewrenJul 8, 2010
  16. Junio C HamanoJul 8, 2010
  17. 6/6 fast-import: Improve robustness when D->F changes provided in wrong ordernewren@gmail.com, Jul 7, 2010

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.