Git development
 help / color / mirror / Atom feed
From: Ian Jackson <ijackson@chiark.greenend.org.uk>
To: Avery Pennarun <apenwarr@gmail.com>
Cc: Colin Stagner <ask+git@howdoi.land>,
	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: git-subtree rewrite
Date: Wed, 22 Apr 2026 18:12:32 +0100	[thread overview]
Message-ID: <27113.384.389621.34039@chiark.greenend.org.uk> (raw)
In-Reply-To: <27109.63619.90318.366157@chiark.greenend.org.uk>

Hi, Avery.

tl;dr:
  Do you object if I use the name git-subtree for my rewrite?

  I intend it to be forward compatible with existing git-subtree
  histories and existing command line invocations.


I've been looking into your git-subtree program.  Thanks for it;
it is definitely solving a very real problem reasonably well. [1]
However, I think the existing implementation (in shell) and data model
need some work.

I have done some experiments, with enough success that I have more or
less decided to try to rewrite git-subtree.

I am intending to make my rewrite able to work with existing histories
(ie, projects which have done git-subtree add and git-subtree merge).
I intend to support the existing command line interface, although I
may improve that later.

I am also hoping to be able to define the data model more formally.

The git maintainers and others on the git mailing list seem reasonably
enthusiastic about all this.  My nascent rewrite is a a standalone
Rust package, and the plan would be for it to obsolete the shell
script in git.git/contrib, but live outside the git project itself.

I would like to call my new program "git-subtree" and have it use
(and extend) the exisitng `git-subtree-...:` metadata that
`git-subtree add` puts into its generated commits.

Obviously there are compatibility, packaging, and deployment
considerations, which I'm keeping in mind.  I don't want to break
anyone downstream.  So I will proceed reasonably cautiously.

I hope this is all OK with you.  If not, or if you have questions,
please let me know, using reply-all to this email (so the mailing list
gets a copy).

If I don't hear from you I will go ahead.  The actual programming work
is going to take a while so watch this space but not too closely :-).

Regards,
Ian.

[1] See also my blog post
   Never use git submodules
   https://diziet.dreamwidth.org/14666.html

-- 
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.

      parent reply	other threads:[~2026-04-22 17:12 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
2026-04-21  5:07           ` Colin Stagner
2026-04-22  9:43             ` Johannes Schindelin
2026-04-22 17:12           ` Ian Jackson [this message]

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=27113.384.389621.34039@chiark.greenend.org.uk \
    --to=ijackson@chiark.greenend.org.uk \
    --cc=apenwarr@gmail.com \
    --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