From: Ian Jackson <ijackson@chiark.greenend.org.uk>
To: Colin Stagner <ask+git@howdoi.land>
Cc: git@vger.kernel.org, Christian Heusel <christian@heusel.eu>,
george@mail.dietrich.pub, Christian Hesse <list@eworm.de>,
Phillip Wood <phillip.wood@dunelm.org.uk>,
Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH v2 0/3] contrib/subtree: reduce recursion during split
Date: Mon, 20 Apr 2026 10:57:23 +0100 [thread overview]
Message-ID: <27109.63619.90318.366157@chiark.greenend.org.uk> (raw)
In-Reply-To: <27109.13129.424068.382997@chiark.greenend.org.uk>
Ian Jackson writes ("Re: [PATCH v2 0/3] contrib/subtree: reduce recursion during split"):
> Algorithm
>
> I don't think it is going to be possible to precisely reproduce the
> output of the existing git-subtree split. Indeed the existing
> git-subtree split is a bit cavalier with metadata (eg `committer` [1])
> which probably ought to be changed in any case.
>
> Even so, it should be possible to avoid foolishly rewriting the whole
> history of the subtree, since we can stop at all the merges made by
> "git-subtree merge", which are easily detectable by the extra metadata
> keyword fields in the commit message.
This last part turns out to be false.
It is only `git-subtree add` that puts this metadata in the commit
message; `git-subtree merge` doesn't. This makes it very hard to
distinguish a subtree merge from (say) a merge of a branch that
predates the subtree add.
I need to think about this some more but I doubt this can be made to
work well without more significant changes, including to the data
model. There would have to be some kind of compatibility arrangement
to handle existing histories.
Colin, is that OK with you? If you would prefer, I could choose a
different name for the resulting program. My preference would be,
with your consent, to continue to call it "git-subtree", version 2.
Regards,
Ian.
--
Ian Jackson <ijackson@chiark.greenend.org.uk> These opinions are my own.
Pronouns: they/he. If I emailed you from @fyvzl.net or @evade.org.uk,
that is a private address which bypasses my fierce spamfilter.
next prev parent reply other threads:[~2026-04-20 9:57 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-15 20:17 [PATCH 0/3] contrib/subtree: reduce recursion during split Colin Stagner
2026-02-15 20:17 ` [PATCH 1/3] contrib/subtree: reduce function side-effects Colin Stagner
2026-02-15 20:17 ` [PATCH 2/3] contrib/subtree: functionalize split traversal Colin Stagner
2026-02-15 20:17 ` [PATCH 3/3] contrib/subtree: reduce recursion during split Colin Stagner
2026-03-05 23:55 ` [PATCH v2 0/3] " Colin Stagner
2026-03-05 23:55 ` [PATCH v2 1/3] contrib/subtree: reduce function side-effects Colin Stagner
2026-03-05 23:55 ` [PATCH v2 2/3] contrib/subtree: functionalize split traversal Colin Stagner
2026-03-05 23:55 ` [PATCH v2 3/3] contrib/subtree: reduce recursion during split Colin Stagner
2026-03-13 22:51 ` [PATCH v2 0/3] " Junio C Hamano
2026-03-13 23:06 ` Junio C Hamano
2026-04-15 17:58 ` Junio C Hamano
2026-04-15 21:39 ` Ben Knoble
2026-04-16 13:25 ` Ian Jackson
2026-04-16 19:34 ` Junio C Hamano
2026-04-17 4:50 ` Colin Stagner
2026-04-19 19:55 ` Ian Jackson
2026-04-20 1:09 ` Ben Knoble
2026-04-20 1:50 ` Junio C Hamano
2026-04-20 9:57 ` Ian Jackson [this message]
2026-04-21 5:07 ` Colin Stagner
2026-04-22 9:43 ` Johannes Schindelin
2026-04-22 17:12 ` git-subtree rewrite Ian Jackson
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=27109.63619.90318.366157@chiark.greenend.org.uk \
--to=ijackson@chiark.greenend.org.uk \
--cc=ask+git@howdoi.land \
--cc=christian@heusel.eu \
--cc=george@mail.dietrich.pub \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=list@eworm.de \
--cc=phillip.wood@dunelm.org.uk \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox