]> git.ipfire.org Git - thirdparty/git.git/commit
chunk-format: create chunk format write API
authorDerrick Stolee <dstolee@microsoft.com>
Thu, 18 Feb 2021 14:07:24 +0000 (14:07 +0000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 18 Feb 2021 21:38:16 +0000 (13:38 -0800)
commit570df42610a971b80046846d7f262007bec23dd6
tree383b8bb465bcf7c08377cd04f7b70c99f01903dc
parenteb9071912f5ca370d7e30e88434ffa10c182ed81
chunk-format: create chunk format write API

In anticipation of combining the logic from the commit-graph and
multi-pack-index file formats, create a new chunk-format API. Use a
'struct chunkfile' pointer to keep track of data that has been
registered for writes. This struct is anonymous outside of
chunk-format.c to ensure no user attempts to interfere with the data.

The next change will use this API in commit-graph.c, but the general
approach is:

 1. initialize the chunkfile with init_chunkfile(f).
 2. add chunks in the intended writing order with add_chunk().
 3. write any header information to the hashfile f.
 4. write the chunkfile data using write_chunkfile().
 5. free the chunkfile struct using free_chunkfile().

Helped-by: Taylor Blau <me@ttaylorr.com>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
chunk-format.c [new file with mode: 0644]
chunk-format.h [new file with mode: 0644]