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

Re: What's cooking in git.git (Nov 2023, #04; Thu, 9)

From
Taylor Blau <me@ttaylorr.com>
Date
Nov 9, 2023, 13:20 UTC
Message-ID
<ZUzcmsfJe6jk4fTk@nand.local>
In-Reply-To
<xmqq34xg5ek3.fsf@gitster.g>
On Thu, Nov 09, 2023 at 02:40:28AM +0900, Junio C Hamano wrote:
Show 12 quoted lines
> * tb/merge-tree-write-pack (2023-10-23) 5 commits
>  - builtin/merge-tree.c: implement support for `--write-pack`
>  - bulk-checkin: introduce `index_tree_bulk_checkin_incore()`
>  - bulk-checkin: introduce `index_blob_bulk_checkin_incore()`
>  - bulk-checkin: generify `stream_blob_to_pack()` for arbitrary types
>  - bulk-checkin: extract abstract `bulk_checkin_source`
>
>  "git merge-tree" learned "--write-pack" to record its result
>  without creating loose objects.
>
>  Comments?
>  source: <cover.1698101088.git.me@ttaylorr.com>
This series received a couple of LGTMs from you and Patrick:
  - https://lore.kernel.org/git/xmqqo7go7w63.fsf@gitster.g/#t
  - https://lore.kernel.org/git/ZTjKmcV5c_EFuoGo@tanuki/

Johannes had posted some comments[1] about instead using a temporary object store where objects are written as loose that would extend to git replay. Like Peff mentions[2] below in that thread, that approach would still involve writing loose objects, and it is the goal of my series to avoid doing so.

I demonstrated in a follow-up thread[3] that my approach of using the bulk-checkin and tmp-objdir APIs does extend straightforwardly to 'git replay'. This works by writing out one pack per replay step in a temporary object directory, and then running 'git repack -adf' on that temporary object directory before migrating a single pack containing all new objects back into the main object store.

I am fairly confident that tb/merge-tree-write-pack is ready to go. I'll spin off a separate thread based on that branch and cc/git-replay as a non-RFC series that extends this approach to 'git replay', so we'll be ready to go there once Christian's series progresses.

[1]: https://lore.kernel.org/git/0ac32374-7d52-8f0c-8583-110de678291e@gmx.de/ [2]: https://lore.kernel.org/git/20231107034224.GA874199@coredump.intra.peff.net/ [3]: https://lore.kernel.org/git/cover.1699381371.git.me@ttaylorr.com/

Thanks, Taylor

Previous: Taylor BlauNext: Junio C Hamano
Message 4 of 8 in “What's cooking in git.git (Nov 2023, #04; Thu, 9)”
  1. Junio C HamanoNov 8, 2023
  2. Jeff KingNov 9, 2023
  3. Taylor BlauNov 9, 2023
  4. Taylor BlauNov 9, 2023
  5. Junio C HamanoNov 9, 2023
  6. tb/merge-tree-write-pack, was Re: What's cooking in git.git (Nov 2023, #04; Thu, 9)Johannes Schindelin, Nov 15, 2023
  7. Jeff KingNov 16, 2023
  8. tb/merge-tree-write-pack [Was: Re: What's cooking in git.git (Nov 2023, #04; Thu, 9)]Elijah Newren, Nov 11, 2023

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.