Re: [PATCH v2 0/3] contrib/subtree: reduce recursion during split
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 13, 2026, 22:51 UTC
- Message-ID
- <xmqqldfv1gxc.fsf@gitster.g>
- In-Reply-To
- <20260305-cs-subtree-split-recursion-v2-0-7266be870ba9@howdoi.land>
Colin Stagner <ask+git@howdoi.land> writes:
Show 22 quoted lines
> * cs/subtree-split-recursion: when processing large history
> graphs on Debian or Ubuntu, "git subtree" can die with a
> "recursion depth reached" error. Reduce recursion.
>
> On Debian's POSIX sh, shell recursion is artificially limited
> to 1000 calls. You can check if your sh has limited recursion
> with:
>
> #!/bin/sh
> recurse() {
> r=$(( r + 1 ))
> test "$r" -le 1000 || { echo OK; exit; }
> recurse
> } && r=0 && recurse
>
> Depending on the history graph, subtree split can recurse deeply
> enough to encounter this limit. Rewrite the rejoin-deepening
> algorithm to reduce recursive calls.
>
> ---
> Changes in v2:
> - Rebase on masterWe have seen two iterations of this series without anybody commenting on it. Is it a sign that the topic, or possibly "git subtree" itself, is of interest to nobody? Or is it that it is so well done that nobody had any comment on it?
I don't use "git subtree" myself, and I do not know of anybody who will scream at me if I break it by merging an unreviewed patch, so I can merge it without worrying too much about fallout personally, but that is a tad irresponsible as the maintainer ;-)
So...? Any volunteers among those who have a higher stake in the program than I do (which admittedly is not a high bar to cross)?
Thanks.