On Fri, Sep 11, 2020 at 12:07:51PM -0700, Junio C Hamano wrote: > SZEDER Gábor <szeder.dev@xxxxxxxxx> writes: > > > Having said that, unlike 'git submodule', 'git-sh-setup' is meant to > > be dot-sourced into users' shell scripts, and, therefore, should work > > with the shell options set in users' scripts, including even 'set -u'. > > Is it and should it? > > git-sh-setup was meant to be an implementation detail for our own > scripts and we know don't use "-u -e". We never cared about > backward compatibility for such use by end-users when we made any > update to the git-sh-setup scriptlet. We freely changed existing > features and squatted on good names for variables and functions we > used in it, because it is designed as a private helper library. It has a manpage that it installed by 'make install-doc', and 'man git' advertises it, so I use it in most of my git-foo shell scripts, e.g. for 'require_clean_work_tree'. > Having said that, we do protect from end-user misconfiguration like > exporting CDPATH, and protecting ourselves from exporting SHELLOPTS > is not something I would oppose. > > Thanks.