]> git.ipfire.org Git - thirdparty/git.git/commitdiff
bundle: output hash information in 'verify'
authorDerrick Stolee <derrickstolee@github.com>
Tue, 22 Mar 2022 17:28:39 +0000 (17:28 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 23 Mar 2022 20:14:09 +0000 (13:14 -0700)
The previous change moved the 'filter' capability to the end of the 'git
bundle verify' output. Now, add the 'object-format' capability to the
output, when it exists.

This change makes 'git bundle verify' output the hash used in all cases,
even if the capability is not in the bundle. This means that v2 bundles
will always output that they use "sha1". This might look noisy to some
users, but it does simplify the implementation and the test strategy for
this feature.

Since 'verify' ends early when a prerequisite commit is missing, we need
to insert this hash message carefully into our expected test output
throughout t6020.

Signed-off-by: Derrick Stolee <derrickstolee@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
bundle.c
t/t6020-bundle-misc.sh

index 276b55f8ce25a22ffd04f6647b2de01525b15470..d50cfb5aa7e9c28afc121f9bf27499518a3fee37 100644 (file)
--- a/bundle.c
+++ b/bundle.c
@@ -278,6 +278,8 @@ int verify_bundle(struct repository *r,
                        list_refs(r, 0, NULL);
                }
 
+               printf_ln("The bundle uses this hash algorithm: %s",
+                         header->hash_algo->name);
                if (header->filter.choice)
                        printf_ln("The bundle uses this filter: %s",
                                  list_objects_filter_spec(&header->filter));
index c4ab1367afca3473c085baac19b8645dfd1d2278..833205125abf5a2673ae0cbede62653fbfd151c8 100755 (executable)
@@ -122,6 +122,8 @@ format_and_save_expect () {
        sed -e 's/Z$//' >expect
 }
 
+HASH_MESSAGE="The bundle uses this hash algorithm: $GIT_DEFAULT_HASH"
+
 #            (C)   (D, pull/1/head, topic/1)
 #             o --- o
 #            /       \                              (L)
@@ -194,11 +196,12 @@ test_expect_success 'create bundle from special rev: main^!' '
 
        git bundle verify special-rev.bdl |
                make_user_friendly_and_stable_output >actual &&
-       format_and_save_expect <<-\EOF &&
+       format_and_save_expect <<-EOF &&
        The bundle contains this ref:
        <COMMIT-P> refs/heads/main
        The bundle requires this ref:
        <COMMIT-O> Z
+       $HASH_MESSAGE
        EOF
        test_cmp expect actual &&
 
@@ -215,12 +218,13 @@ test_expect_success 'create bundle with --max-count option' '
 
        git bundle verify max-count.bdl |
                make_user_friendly_and_stable_output >actual &&
-       format_and_save_expect <<-\EOF &&
+       format_and_save_expect <<-EOF &&
        The bundle contains these 2 refs:
        <COMMIT-P> refs/heads/main
        <TAG-1> refs/tags/v1
        The bundle requires this ref:
        <COMMIT-O> Z
+       $HASH_MESSAGE
        EOF
        test_cmp expect actual &&
 
@@ -240,7 +244,7 @@ test_expect_success 'create bundle with --since option' '
 
        git bundle verify since.bdl |
                make_user_friendly_and_stable_output >actual &&
-       format_and_save_expect <<-\EOF &&
+       format_and_save_expect <<-EOF &&
        The bundle contains these 5 refs:
        <COMMIT-P> refs/heads/main
        <COMMIT-N> refs/heads/release
@@ -250,6 +254,7 @@ test_expect_success 'create bundle with --since option' '
        The bundle requires these 2 refs:
        <COMMIT-M> Z
        <COMMIT-K> Z
+       $HASH_MESSAGE
        EOF
        test_cmp expect actual &&
 
@@ -267,11 +272,12 @@ test_expect_success 'create bundle 1 - no prerequisites' '
        EOF
        git bundle create stdin-1.bdl --stdin <input &&
 
-       cat >expect <<-\EOF &&
+       format_and_save_expect <<-EOF &&
        The bundle contains these 2 refs:
        <COMMIT-D> refs/heads/topic/1
        <COMMIT-H> refs/heads/topic/2
        The bundle records a complete history.
+       $HASH_MESSAGE
        EOF
 
        # verify bundle, which has no prerequisites
@@ -308,13 +314,14 @@ test_expect_success 'create bundle 2 - has prerequisites' '
                --stdin \
                release <input &&
 
-       format_and_save_expect <<-\EOF &&
+       format_and_save_expect <<-EOF &&
        The bundle contains this ref:
        <COMMIT-N> refs/heads/release
        The bundle requires these 3 refs:
        <COMMIT-D> Z
        <COMMIT-E> Z
        <COMMIT-G> Z
+       $HASH_MESSAGE
        EOF
 
        git bundle verify 2.bdl |
@@ -367,13 +374,14 @@ test_expect_success 'create bundle 3 - two refs, same object' '
                --stdin \
                main HEAD <input &&
 
-       format_and_save_expect <<-\EOF &&
+       format_and_save_expect <<-EOF &&
        The bundle contains these 2 refs:
        <COMMIT-P> refs/heads/main
        <COMMIT-P> HEAD
        The bundle requires these 2 refs:
        <COMMIT-M> Z
        <COMMIT-K> Z
+       $HASH_MESSAGE
        EOF
 
        git bundle verify 3.bdl |
@@ -409,12 +417,13 @@ test_expect_success 'create bundle 4 - with tags' '
                --stdin \
                --all <input &&
 
-       cat >expect <<-\EOF &&
+       cat >expect <<-EOF &&
        The bundle contains these 3 refs:
        <TAG-1> refs/tags/v1
        <TAG-2> refs/tags/v2
        <TAG-3> refs/tags/v3
        The bundle records a complete history.
+       $HASH_MESSAGE
        EOF
 
        git bundle verify 4.bdl |
@@ -511,6 +520,7 @@ do
                <TAG-3> refs/tags/v3
                <COMMIT-P> HEAD
                The bundle records a complete history.
+               $HASH_MESSAGE
                The bundle uses this filter: $filter
                EOF
                test_cmp expect actual &&