Subject: Re: [PATCH v2 0/3] contrib/subtree: reduce recursion during split

From: Junio C Hamano <[email-masked]>
Date: Tue, 02 Jun 2026 07:13:10 +0900

Colin Stagner <[email-masked]> writes:

> On 4/16/26 08:25, Ian Jackson wrote:
>
>> FTR Debian supports multiple options for /bin/sh.  The shell in
>> question, with the limit that's troubling us, is dash.
>
> Correct, I experience this behavior in dash.
>
>> Why not run the script under bash in non-POSIX mode instead?  I think
>> that would sidestep the problem. 
>
> Our coding guidelines favor POSIX constructs over non-POSIX constructs, 
> including for shell scripts [1]. POSIX helps us stay portable.
>
> I'm not convinced that adding more shell interpreters to the mix would 
> be a net win in terms of stability or consistency. This patch series 
> addresses issues that arise from different implementations of sh. Adding 
> bash vs sh to the mix will probably just make more bugs.
>
>
>> If it had been me I would probably have used Rust and libgit2.
>
> git-subtree has been around since 2009, so you would have first needed 
> to invent Rust. :-) That said, a native Rust version of 
> git-subtree-split would be much faster and easier to read.
>
>
> Thanks for looking at this,
>
> Colin
>
> [1]: https://git-scm.com/docs/CodingGuidelines

So after this message the thread went dark (except for a side
discussion about rewriting subtree in Rust, which I do think it is a
good direction to go in the longer term).  Are we still interested in
polishing the original patch further?

While I do agree that avoiding bash-isms in the main part of Git and
sticking to vanilla POSIX has merit, this particular one seems more
like an artificial limit imposed by dash than sticking to the POSIX
as the common denoninator, at least to me.

I am tempted to mark the topic as stalled, to be discarded for
inaction, but thought I should ask first before doing so.

Thanks.