Cannot run `git submodule init` on Cygwin from script with strict error checking
- From
- Jędrzej Dudkiewicz <jedrzej.dudkiewicz@gmail.com>
- Date
- Sep 11, 2020, 08:20 UTC
- Message-ID
- <CABJqhQNh2Qc2Btp==bGUbT-AaSjGdGEmhtphQQyX=nqjWOis0A@mail.gmail.com>
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 <branch>] [-f|--force] [--name <name>] [--reference <repository>] [--] <repository> [<path>] or: git submodule [--quiet] status [--cached] [--recursive] [--] [<path>...] or: git submodule [--quiet] init [--] [<path>...] or: git submodule [--quiet] deinit [-f|--force] (--all| [--] <path>...) or: git submodule [--quiet] update [--init] [--remote] [-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-shallow] [--reference <repository>] [--recursive] [--[no-]single-branch] [--] [<path>...] or: git submodule [--quiet] set-branch (--default|--branch <branch>) [--] <path> or: git submodule [--quiet] set-url [--] <path> <newurl> or: git submodule [--quiet] summary [--cached|--files] [--summary-limit <n>] [commit] [--] [<path>...] or: git submodule [--quiet] foreach [--recursive] <command> or: git submodule [--quiet] sync [--recursive] [--] [<path>...] or: git submodule [--quiet] absorbgitdirs [--] [<path>...]' + 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
(TL;DR: This basically boils down to GIT_TEXTDOMAINDIR being unbound, i.e. uninitialized/non-existant.)
When I exported GIT_TEXTDOMAINDIR with bogus value from my script before calling "git submodule init":
export GIT_TEXTDOMAINDIR=/bogus/value
I got (only error shown):
/usr/libexec/git-core/git-sh-i18n: line 20: GIT_TEST_GETTEXT_POISON: unbound variable
I set it to `false`, restarted and then got:
/usr/libexec/git-core/git-sh-i18n: line 28: GIT_INTERNAL_GETTEXT_TEST_FALLBACKS: unbound variable
I set it to empty value, restarted and then got:
/usr/libexec/git-core/git-sh-setup: line 91: LONG_USAGE: unbound variable
This is when I gave up.
Same script run with git 2.21.0 on Linux has no problems, but I haven't compare differences between two versions, so I don't know why it stopped working.
-- Jędrzej Dudkiewicz I really hate this damn machine, I wish that they would sell it. It never does just what I want, but only what I tell it.