Re: [PATCH v3 0/3] fast-import: add mode to re-sign invalid commit signatures
- From
Justin Tobler <jltobler@gmail.com>
- Date
- Mar 10, 2026, 22:13 UTC
- Message-ID
- <abCTTaYCQIub_xjW@denethor>
- In-Reply-To
- <xmqqqzprs7o3.fsf@gitster.g>
On 26/03/10 02:20PM, Junio C Hamano wrote:
Show 16 quoted lines
> Justin Tobler <jltobler@gmail.com> writes:
>
> > From my perspective, "re-sign" implies that the signature was previously
> > signed, but we are now going to sign it again. Indeed, the resulting
> > commit signing is functionally the same as if the object never had a
> > previous signature though. Also, "if-invalid" already implies that the
> > object is signed, but its signature is invalid. So it could be argued
> > that "re-sign" is already redundant.
>
> Yup. if-invalid part indeed was why I thought "re-" was redundant.
>
> Also, if a project is redoing its history with such a bulk
> operation, I wonder if it _still_ makes sense to tie this re-signing
> to the --signed-{tags,commits} option. Adding signature to commits
> that were not signed is not covered well with the
> "--signed-commits=<mode>" option.Ya, the --signed-{tags,commits} option is really only intended to specify how already signed objects should be handled. Adding a mode to sign unsigned objects likely wouldn't fit well. I do think this "re-signing" mode still makes sense though since it is limited to the subset of objects that were previously signed and the signature invalid.
Show 7 quoted lines
> A project may have required that all commits and tags to be signed, > in which case "--signed-*=sign-if-invalid" would create a new > history with everything freshly signed, but if the original history > has signed and unsigned commits, and if they want to sign all the > objects while rewriting their history, they may find it more handy > if we let them do --signed-commits=strip-if-invalid --sign-commits > i.e., drop the invalid ones and make sure all commits are signed.
This certainly seems like a reasonable use case, but if we want to support leaving previously unsigned objects unsigned too, `--signed-commits=strip-if-invalid --signed-commits` wouldn't be granular enough. My thinking is that users may want such targeted object re-signing when bulk rewriting history via tools such as git-filter-repo. I do think that it could make sense to still add a separate `--signed-commits` option in the future though that targets the remaining unsigned objects.
Thanks, -Justin