From: Nico Williams <nico@cryptonector.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Matt Stark <msta@google.com>,
git@vger.kernel.org, ps@pks.im, phillip.wood@dunelm.org.uk,
Martin von Zweigbergk <martinvonz@google.com>,
remo@buenzli.dev, Edwin Kempin <ekempin@google.com>,
schacon@gmail.com, philipmetzger@bluewin.ch,
konstantin@linuxfoundation.org, newren@gmail.com, tytso@mit.edu,
rikingcoding@gmail.com
Subject: Re: [PATCH] headers: Preserve 'change-id' header in rebase / cherry-pick.
Date: Mon, 6 Apr 2026 23:58:19 -0500 [thread overview]
Message-ID: <adSO6zPwtFOWBcOw@ubby> (raw)
In-Reply-To: <xmqqqzor76nh.fsf@gitster.g>
On Mon, Apr 06, 2026 at 09:09:54PM -0700, Junio C Hamano wrote:
> Matt Stark <msta@google.com> writes:
>
> > In the discussions on
> > https://lore.kernel.org/git/Z_OGMb-1oV0Ex05e@pks.im/T/#m038be849b9b4020c16c562d810cf77bad91a2c87,
> > it seems to be that:
> > * There is consensus that a `change-id` header provides good value
>
> I doubt it.
>
> There are multiple people who wanted it, but as far as I can recall,
> I did not get the sense that they had the same semantics in mind.
The less semantics it has, the more acceptable it might be :)
But then what would need patching? So it needs _some_ semantics.
Finding the minimal acceptable semantics for this header is the trick to
pull.
> > * There is not consenus on what precise format that should take
>
> Format is one thing, but what it means is much more important. When
> is it inherited? What happens when you split a single commit into
> three pieces, which piece, if any, among the resulting three will
> inherit thee parent's? Should rebase, cherry-pick, and replay
> behave the same way (IIRC, rebase and cherry-pick behaves
> differently while propagating notes). Etc., etc.
Exactly. I remember I argued that cherry-pick and rebase should have
the same behavior given that rebase is logically a script of
cherry-picks, but others had strong arguments that the two should not
have the same behavior (something which is not hard to implement if you
make the inherittance / non-inherittance an option to cherry-pick has
different defaults for cherry-pick than for rebase).
That the value of this header should not have a format imposed -- that
much is certainly the case as far as consensus goes, I think. Basically
it should be site-local, for some definition of site. But the tooling
can just treat it as opaque, perhaps with hooks to do any interpretation
of those values.
Maybe that's the trick: local configuration for determining the
copy-or-drop semantic for different operations, and maybe hooks for
altering when copying. Thus for example splitting a commit (something
jj supports directly but Git doesn't, unless I missed something) could
derive or create new change-id values from the original using hooks. A
hook might do things like create child or sibling problem tickets, or
might only qualify the original with some qualifier. A hook might even
interact with the user to create new change-ids as needed.
The risk here is that this could yield too much configuration and be
more annoying than useful, but I think that wouldn't turn out to be the
case.
Nico
--
next prev parent reply other threads:[~2026-04-07 8:23 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-07 3:13 [PATCH] headers: Preserve 'change-id' header in rebase / cherry-pick Matt Stark
2026-04-07 4:09 ` Junio C Hamano
2026-04-07 4:58 ` Nico Williams [this message]
2026-04-07 5:02 ` Nico Williams
2026-04-07 14:33 ` Junio C Hamano
2026-04-07 9:55 ` Phillip Wood
2026-04-07 15:52 ` Nico Williams
2026-04-07 16:20 ` Junio C Hamano
2026-04-07 20:13 ` Nico Williams
2026-04-07 14:42 ` Junio C Hamano
2026-04-07 9:41 ` Phillip Wood
2026-04-07 23:28 ` brian m. carlson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=adSO6zPwtFOWBcOw@ubby \
--to=nico@cryptonector.com \
--cc=ekempin@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=konstantin@linuxfoundation.org \
--cc=martinvonz@google.com \
--cc=msta@google.com \
--cc=newren@gmail.com \
--cc=philipmetzger@bluewin.ch \
--cc=phillip.wood@dunelm.org.uk \
--cc=ps@pks.im \
--cc=remo@buenzli.dev \
--cc=rikingcoding@gmail.com \
--cc=schacon@gmail.com \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.