Subject: Re: [PATCH 2/4] editor: use standard strvec API to receive environment for external editors

From: Junio C Hamano <[email-masked]>
Date: Wed, 21 May 2025 08:20:36 -0700

"D. Ben Knoble" <[email-masked]> writes:

> Thanks; I didn't know that! (Aside: rebase --signoff seems to add SOB
> even when it's already present. Is that a bug in rebase --signoff or a
> misuse of the trailer on my end? Setting "trailer.ifExists =
> addIfDifferent" didn't seem to affect it.)

Why do "rebase --signoff" in the first place?  Unless you forgot to,
that is.  "I do not remember if I did, so I blindly add it" is
something we do not want to see, as we want to keep signing-off a
concious act.

Anyway, as the intent of the trailer is to record what happened
until the patch was finalized and sent out with your sign-off
chronologically, if the order of events were

 - You wrote the patch, gave it to somebody else with your sign-off,
   to show that it is shared under DCO (a).

 - Somebody else may make modification, share it with their
   sign-off under DCO (b).

 - You find that their version is a good one, and with or without
   further change of yours, you sign-off to show that you are
   sharing this final version under DCO, either (b) or (c).

it is perfectly fine for your sign-off to appear twice.

The only case Git's built-in sign-off logic omits adding a sign-off
is when the same sign-off is sitting at the end.  After the above
event, if you took that "final" version and then gave it to somebody
else, with or without further changes, that is still covered by the
last sign-off you made, so there is no point adding a duplicate.