Subject: Re: [PATCH 0/9] remove dead shell code

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Fri, 03 Sep 2021 00:17:08 +0200

On Thu, Sep 02 2021, Junio C Hamano wrote:

> Ævar Arnfjörð Bjarmason  <[email-masked]> writes:
>
>> Remove dead shell code in git-sh-setup, inspired by parallel
>> discussion on another topic (but the two don't conflict):
>> https://lore.kernel.org/git/[email-masked]/
>>
>> The last two patches were picked from a dropped series of mine
>> submitted earlier this year, it was dropped because of other more
>> complex patches that I haven't included here:
>> https://lore.kernel.org/git/[email-masked]/
>>
>> Ævar Arnfjörð Bjarmason (9):
>>   git-sh-setup: remove unused set_reflog_action() function
>>   git-sh-setup: remove unused git_editor() function
>>   git-sh-setup: remove unused git_pager() function
>>   git-sh-setup: remove unused sane_egrep() function
>>   git-sh-setup: remove unused require_work_tree_exists() function
>>   git-sh-setup: move create_virtual_base() to mergetools/p4merge
>>   git-sh-setup: move peel_committish() function to git-subtree.sh
>>   git-bisect: remove unused SHA-1 $x40 shell variable
>>   test-lib: remove unused $_x40 and $_z40 variables
>
> Was "unused" above decided based solely on the presence of in-tree
> users?  If that is the case, I do not think we want to take these
> sh-setup changes.

I should have remembered to reference the earlier discussion, but I
think we had this exact discussion around a year ago when I submitted
patches to remove git-parse-remote.sh, and decided this direction was
OK.

See a89a2fbfccd (parse-remote: remove this now-unused library,
2020-11-14) and the thread starting at
<[email-masked]>:
https://lore.kernel.org/git/[email-masked]/

You'll know better what you meant, but I interpreted the docs you added
for git-sh-setup in 850844e28f7 (Documentation/git-sh-setup.txt:
programmer's docs, 2007-01-17) as a guide for in-tree porcelain scripts.

As noted in my recently sent <[email-masked]>
(https://lore.kernel.org/git/[email-masked]/) the
eventual goal I have in mind here is to get rid of git-sh-i18n.sh.

If we're set on maintaining these shell libraries indefinitely even
after in-tree users have gone away that pretty much means we can't do
that, which would be unfortunate. We continue paying for quite a bit of
technical debt to extend certain parts of core C git functionality to
*.sh and *.perl.