From: Adam Dinwoodie Date: Fri, 11 Sep 2020 11:30:21 GMT Subject: Re: Cannot run `git submodule init` on Cygwin from script with strict error checking Message-ID: In-Reply-To: Hi Jędrzej, On Fri, 11 Sep 2020 at 09:20, Jędrzej Dudkiewicz wrote: > > I'm running git 2.28.0 on Cygwin. I have a script with: > > set -aeu > > at the beginning (as all scripts should have). In the script I'm trying to run: > > git submodule init > > When running via "bash -x script.sh", I get: > > + git submodule init > ++ basename /usr/libexec/git-core/git-submodule > ++ sed -e 's/-/ /' > + dashless='git submodule' > + USAGE='[--quiet] [--cached] > or: git submodule [--quiet] add [-b ] [-f|--force] [--name > ] [--reference ] [--] [] > or: git submodule [--quiet] status [--cached] [--recursive] [--] [...] > or: git submodule [--quiet] init [--] [...] > or: git submodule [--quiet] deinit [-f|--force] (--all| [--] ...) > or: git submodule [--quiet] update [--init] [--remote] > [-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] > [--[no-]recommend-shallow] [--reference ] [--recursive] > [--[no-]single-branch] [--] [...] > or: git submodule [--quiet] set-branch (--default|--branch > ) [--] > or: git submodule [--quiet] set-url [--] > or: git submodule [--quiet] summary [--cached|--files] > [--summary-limit ] [commit] [--] [...] > or: git submodule [--quiet] foreach [--recursive] > or: git submodule [--quiet] sync [--recursive] [--] [...] > or: git submodule [--quiet] absorbgitdirs [--] [...]' > + OPTIONS_SPEC= > + SUBDIRECTORY_OK=Yes > + . git-sh-setup > ++ unset CDPATH > ++ IFS=' > ' > +++ git --exec-path > ++ . /usr/libexec/git-core/git-sh-i18n > +++ TEXTDOMAIN=git > +++ export TEXTDOMAIN > /usr/libexec/git-core/git-sh-i18n: line 10: GIT_TEXTDOMAINDIR: unbound variable > I think there's something odd about the way you're calling `git submodule init`: it should normally be a separate execution that wouldn't inherit the `-aeu` or `-x` settings from the parent Bash process. It looks like perhaps you're `source`ing or dotting in the `git-submodule` script? Whatever it is, I think the issue is down to the way you're using `git submodule`, rather than a problem with Git or the Cygwin Git build. I did just try to reproduce the problem using Git v2.28.0-1 on Cygwin, and wasn't able to: ``` $ cat test.sh set -aeu rm -rf testdir mkdir testdir cd testdir git init git submodule init $ bash -x test.sh + set -aeu + rm -rf testdir + mkdir testdir + cd testdir + git init Initialized empty Git repository in /home/adam/testdir/.git/ + git submodule init $ echo $? 0 ``` HTH Adam