diff options
author | Derrick Stolee <derrickstolee@github.com> | 2022-10-12 15:52:38 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-10-12 19:13:25 +0300 |
commit | 70334fc3ebf1c6199014d82bbbf0595b64a8fa90 (patch) | |
tree | 8c4fa2ad3639510f5b90259f48f23c5853eb308d /t/t5558-clone-bundle-uri.sh | |
parent | 89bd7fedf947484da08e2722d663fdac23a431be (diff) |
bundle-uri: quiet failed unbundlings
When downloading a list of bundles in "all" mode, Git has no
understanding of the dependencies between the bundles. Git attempts to
unbundle the bundles in some order, but some may not pass the
verify_bundle() step because of missing prerequisites. This is passed as
error messages to the user, even when they eventually succeed in later
attempts after their dependent bundles are unbundled.
Add a new VERIFY_BUNDLE_QUIET flag to verify_bundle() that avoids the
error messages from the missing prerequisite commits. The method still
returns the number of missing prerequisit commits, allowing callers to
unbundle() to notice that the bundle failed to apply.
Use this flag in bundle-uri.c and test that the messages go away for
'git clone --bundle-uri' commands.
Signed-off-by: Derrick Stolee <derrickstolee@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t5558-clone-bundle-uri.sh')
-rwxr-xr-x | t/t5558-clone-bundle-uri.sh | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/t/t5558-clone-bundle-uri.sh b/t/t5558-clone-bundle-uri.sh index a86dc04f52..9b15907838 100755 --- a/t/t5558-clone-bundle-uri.sh +++ b/t/t5558-clone-bundle-uri.sh @@ -99,7 +99,10 @@ test_expect_success 'clone bundle list (file, no heuristic)' ' uri = file://$(pwd)/clone-from/bundle-4.bundle EOF - git clone --bundle-uri="file://$(pwd)/bundle-list" clone-from clone-list-file && + git clone --bundle-uri="file://$(pwd)/bundle-list" \ + clone-from clone-list-file 2>err && + ! grep "Repository lacks these prerequisite commits" err && + git -C clone-from for-each-ref --format="%(objectname)" >oids && git -C clone-list-file cat-file --batch-check <oids && @@ -141,7 +144,10 @@ test_expect_success 'clone bundle list (file, all mode, some failures)' ' EOF GIT_TRACE2_PERF=1 \ - git clone --bundle-uri="file://$(pwd)/bundle-list" clone-from clone-all-some && + git clone --bundle-uri="file://$(pwd)/bundle-list" \ + clone-from clone-all-some 2>err && + ! grep "Repository lacks these prerequisite commits" err && + git -C clone-from for-each-ref --format="%(objectname)" >oids && git -C clone-all-some cat-file --batch-check <oids && @@ -169,7 +175,10 @@ test_expect_success 'clone bundle list (file, all mode, all failures)' ' uri = file://$(pwd)/clone-from/bundle-5.bundle EOF - git clone --bundle-uri="file://$(pwd)/bundle-list" clone-from clone-all-fail && + git clone --bundle-uri="file://$(pwd)/bundle-list" \ + clone-from clone-all-fail 2>err && + ! grep "Repository lacks these prerequisite commits" err && + git -C clone-from for-each-ref --format="%(objectname)" >oids && git -C clone-all-fail cat-file --batch-check <oids && @@ -195,7 +204,10 @@ test_expect_success 'clone bundle list (file, any mode)' ' uri = file://$(pwd)/clone-from/bundle-5.bundle EOF - git clone --bundle-uri="file://$(pwd)/bundle-list" clone-from clone-any-file && + git clone --bundle-uri="file://$(pwd)/bundle-list" \ + clone-from clone-any-file 2>err && + ! grep "Repository lacks these prerequisite commits" err && + git -C clone-from for-each-ref --format="%(objectname)" >oids && git -C clone-any-file cat-file --batch-check <oids && @@ -284,7 +296,10 @@ test_expect_success 'clone bundle list (HTTP, no heuristic)' ' uri = $HTTPD_URL/bundle-4.bundle EOF - git clone --bundle-uri="$HTTPD_URL/bundle-list" clone-from clone-list-http && + git clone --bundle-uri="$HTTPD_URL/bundle-list" \ + clone-from clone-list-http 2>err && + ! grep "Repository lacks these prerequisite commits" err && + git -C clone-from for-each-ref --format="%(objectname)" >oids && git -C clone-list-http cat-file --batch-check <oids ' |