git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Cannot run `git submodule init` on Cygwin from script with strict error checking

From
JDJę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.
Next: Adam Dinwoodie
Message 1 of 6 in “Cannot run `git submodule init` on Cygwin from script with strict error checking”
  1. Jędrzej DudkiewiczSep 11, 2020
  2. Adam DinwoodieSep 11, 2020
  3. Jędrzej DudkiewiczSep 11, 2020
  4. SZEDER GáborSep 11, 2020
  5. Junio C HamanoSep 11, 2020
  6. SZEDER GáborSep 15, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.