index-pack: document and test the --promisor option

The --promisor option of 'git index-pack' was created in 88e2f9e
(introduce fetch-object: fetch one promisor object, 2017-12-05) but was
untested. It is currently unused within the Git codebase, but that will
change in an upcoming change to 'git bundle unbundle' when there is a
filter capability.

For now, add documentation about the option and add a test to ensure it
is working as expected.

Signed-off-by: Derrick Stolee <derrickstolee@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Derrick Stolee 2022-03-09 16:01:31 +00:00 committed by Junio C Hamano
parent dab1b7905d
commit 1f52cdfacb
2 changed files with 11 additions and 1 deletions

View File

@ -122,6 +122,14 @@ This option cannot be used with --stdin.
+ +
include::object-format-disclaimer.txt[] include::object-format-disclaimer.txt[]
--promisor[=<message>]::
Before committing the pack-index, create a .promisor file for this
pack. Particularly helpful when writing a promisor pack with --fix-thin
since the name of the pack is not final until the pack has been fully
written. If a `<message>` is provided, then that content will be
written to the .promisor file for future reference. See
link:technical/partial-clone.html[partial clone] for more information.
NOTES NOTES
----- -----

View File

@ -315,8 +315,10 @@ test_expect_success \
git index-pack -o tmp.idx test-3.pack && git index-pack -o tmp.idx test-3.pack &&
cmp tmp.idx test-1-${packname_1}.idx && cmp tmp.idx test-1-${packname_1}.idx &&
git index-pack test-3.pack && git index-pack --promisor=message test-3.pack &&
cmp test-3.idx test-1-${packname_1}.idx && cmp test-3.idx test-1-${packname_1}.idx &&
echo message >expect &&
test_cmp expect test-3.promisor &&
cat test-2-${packname_2}.pack >test-3.pack && cat test-2-${packname_2}.pack >test-3.pack &&
git index-pack -o tmp.idx test-2-${packname_2}.pack && git index-pack -o tmp.idx test-2-${packname_2}.pack &&