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