Thread (11 messages) 11 messages, 2 authors, 2025-09-17

Re: [PATCH v2 2/2] fast-import: add '--signed-commits=<mode>' option

From: Christian Couder <hidden>
Date: 2025-09-15 10:17:47

On Mon, Sep 15, 2025 at 8:27 AM Patrick Steinhardt [off-list ref] wrote:
On Fri, Sep 12, 2025 at 02:40:42PM +0200, Christian Couder wrote:
quoted
-     /* Process signatures (up to 2: one "sha1" and one "sha256") */
      while (skip_prefix(command_buf.buf, "gpgsig ", &v)) {
              struct signature_data sig = { NULL, NULL, STRBUF_INIT };

-             parse_one_signature(&sig, v);
+             if (signed_commit_mode == SIGN_ABORT)
+                     die(_("encountered signed commit; use "
+                           "--signed-commits=<mode> to handle it"));

-             if (!strcmp(sig.hash_algo, "sha1"))
-                     store_signature(&sig_sha1, &sig, "SHA-1");
-             else if (!strcmp(sig.hash_algo, "sha256"))
-                     store_signature(&sig_sha256, &sig, "SHA-256");
-             else
-                     BUG("parse_one_signature() returned unknown hash algo");
+             parse_one_signature(&sig, v);

+             switch (signed_commit_mode) {
+             case SIGN_ABORT:
+                     BUG("SIGN_ABORT should be handled before calling parse_one_signature()");
+                     break;
Let's be defensive and convert this into a `default:` case so that any
unhandled value will cause a BUG.
Ok, maybe something like BUG("invalid signed_commit_mode value %d",
signed_commit_mode) then?

Note that if we later develop new modes like "re-sign" or
"strip-if-invalid", and users tries one such mode with an old version
of Git, that should already be handled by the following code in
parse_one_option():

    } else if (skip_prefix(option, "signed-commits=", &option)) {
        if (parse_sign_mode(option, &signed_commit_mode))
            usagef(_("unknown --signed-commits mode '%s'"), option);
    } ...

Thanks,
Christian.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help