Open yegorich opened 2 years ago
/mingw64/libexec/git-core/git-sh-setup: line 365: cd: .git: Not a directory
That is a shell script. Could you edit it, inserting the set -x
command somewhere in the beginning, then instrument it just before line 365 to show the current working directory via pwd >&2
, then see whether .git
might be a file instead of a directory?
PS C:\TEMP> git submodule update --init
+++ git --exec-path
++ . C:/Users/ContainerAdministrator/scoop/apps/git/2.35.0.windows.1/mingw64/libexec/git-core/git-sh-i18n
+++ TEXTDOMAIN=git
+++ export TEXTDOMAIN
+++ test -z ''
+++ test -z ''
+++ TEXTDOMAINDIR=/mingw64/share/locale
+++ export TEXTDOMAINDIR
+++ GIT_INTERNAL_GETTEXT_SH_SCHEME=fallthrough
+++ test -n fallthrough
+++ GIT_INTERNAL_GETTEXT_SH_SCHEME=fallthrough
+++ export GIT_INTERNAL_GETTEXT_SH_SCHEME
+++ case "$GIT_INTERNAL_GETTEXT_SH_SCHEME" in
++ GIT_QUIET=
++ test -n ''
+++ basename -- 'C:/Users/ContainerAdministrator/scoop/apps/git/2.35.0.windows.1/mingw64/libexec/git-core\git-submodule'
+++ sed -e 's/-/ /'
++ dashless='git submodule'
++ '[' -z '' ']'
+++ eval_gettext 'usage: $dashless $USAGE'
+++ printf %s 'usage: $dashless $USAGE'
++++ git sh-i18n--envsubst --variables 'usage: $dashless $USAGE'
+++ export PATH dashless USAGE
+++ git sh-i18n--envsubst 'usage: $dashless $USAGE'
++ LONG_USAGE='usage: git submodule [--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>...]'
++ case "$1" in
++ case $(uname -s) in
+++ uname -s
++ test -x /usr/bin/sort
++ test -x /usr/bin/find
++ type builtin
++ test -z ''
++ git_dir_init
+++ git rev-parse --git-dir
++ GIT_DIR=.git
++ '[' -z Yes ']'
++ pwd
++ builtin pwd -W
C:/TEMP
++ test -n .git
+++ cd .git
/mingw64/libexec/git-core/git-sh-setup: line 368: cd: .git: Not a directory
++ GIT_DIR=
++ gettextln 'Unable to determine absolute path of git directory'
++ gettext 'Unable to determine absolute path of git directory'
++ printf %s 'Unable to determine absolute path of git directory'
Unable to determine absolute path of git directory++ echo
++ exit 1
This is a part of the mapped folder. Windows sees .git
as a folder and from command line I can change there.
PS C:\TEMP> dir
Directory: C:\TEMP
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 1/27/2022 6:59 AM .git
d----- 1/26/2022 6:01 PM src
-a---- 1/26/2022 6:01 PM 88 .gitmodules
-a---- 1/26/2022 6:01 PM 162 build.bat
If I don't mount the local folder into the Docker image and just clone git repository when running the Docker image, git has no problems with the .git
folder.
Maybe the problem is Bash? Can you cd
into C:\TEMP\.git
via the Git Bash, like this:
C:/Users/ContainerAdministrator/scoop/apps/git/2.35.0.windows.1/usr/bin/bash.exe -lc "cd C:/TEMP/.git"
(You could compare that to cd
ing directly in CMD.)
In PowerShell there are problems, but in cmd environment the command could be successfully executed:
PS C:\TEMP> C:/Users/ContainerAdministrator/scoop/apps/git/2.35.0.windows.1/usr/bin/bash.exe -lc "cd C:/TEMP/.git"
'C:\Windows\system32\drivers\etc\hosts' -> '/etc/hosts'
'C:\Windows\system32\drivers\etc\protocol' -> '/etc/protocols'
'C:\Windows\system32\drivers\etc\services' -> '/etc/services'
'C:\Windows\system32\drivers\etc\networks' -> '/etc/networks'
ln: failed to create hard link 'C:/Users/ContainerAdministrator/scoop/apps/git/2.35.0.windows.1/mingw64/libexec/git-core/dlls-copied' => 'C:/Users/ContainerAdministrator/scoop/apps/git/2.35.0.windows.1/mingw64//bin/git.exe': Permission denied
PS C:\TEMP> cmd
Microsoft Windows [Version 10.0.17763.2458]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\TEMP>C:/Users/ContainerAdministrator/scoop/apps/git/2.35.0.windows.1/usr/bin/bash.exe -lc "cd C:/TEMP/.git"
Update:
Though cd
command didn't throw any errors, it didn't change into .git
.
My Dockerfile that can help to reproduce this issue:
# escape=`
# Use a specific tagged image. Tags can be changed, though that is unlikely for most images.
# You could also use the immutable tag @sha256:324e9ab7262331ebb16a4100d0fb1cfb804395a766e3bb1806c62989d1fc1326
ARG FROM_IMAGE=mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019
FROM ${FROM_IMAGE}
# Restore the default Windows shell for correct batch processing.
SHELL ["cmd", "/S", "/C"]
# Copy our Install script.
COPY Install.cmd C:\TEMP\
# Download collect.exe in case of an install failure.
ADD https://aka.ms/vscollect.exe C:\TEMP\collect.exe
# Use the latest release channel. For more control, specify the location of an internal layout.
ARG CHANNEL_URL=https://aka.ms/vs/17/release/channel
ADD ${CHANNEL_URL} C:\TEMP\VisualStudio.chman
ADD https://aka.ms/vs/17/release/vs_buildtools.exe C:\TEMP\vs_buildtools.exe
RUN C:\TEMP\Install.cmd C:\TEMP\vs_buildtools.exe --quiet --wait --norestart --nocache modify `
--installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" `
--channelUri C:\TEMP\VisualStudio.chman `
--installChannelUri C:\TEMP\VisualStudio.chman `
--add Microsoft.VisualStudio.Workload.VCTools;includeRecommended `
--add Microsoft.Component.MSBuild
# Install Python and Git.
RUN powershell.exe -ExecutionPolicy RemoteSigned `
iex (new-object net.webclient).downloadstring('https://get.scoop.sh'); `
scoop install python git vim
# Define the entry point for the Docker container.
# This entry point starts the developer command prompt and launches the PowerShell shell.
ENTRYPOINT ["C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\Common7\\Tools\\VsDevCmd.bat", "&&", "powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]
My Docker version info (4.4.4):
$ docker version
Client:
Cloud integration: v1.0.22
Version: 20.10.12
API version: 1.41
Go version: go1.16.12
Git commit: e91ed57
Built: Mon Dec 13 11:44:07 2021
OS/Arch: windows/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.12
API version: 1.41 (minimum version 1.24)
Go version: go1.16.12
Git commit: 459d0df
Built: Mon Dec 13 11:42:13 2021
OS/Arch: windows/amd64
Experimental: false
ln: failed to create hard link 'C:/Users/ContainerAdministrator/scoop/apps/git/2.35.0.windows.1/mingw64/libexec/git-core/dlls-copied' => 'C:/Users/ContainerAdministrator/scoop/apps/git/2.35.0.windows.1/mingw64//bin/git.exe': Permission denied
That looks suspicious. Could you insert a set -x
somewhere in the beginning of /etc/profile
? That might be something scoop
-specific.
Though
cd
command didn't throw any errors, it didn't change into.git
.
Can you do cd C:/TEMP/.git || { echo $?; exit 1}
? The exit code might say more. You could then also run the Bash commands stat C:/TEMP/.git
and cygpath -aw C:/TEMP/.git
to find out more.
My Dockerfile that can help to reproduce this issue:
Thank you for that. I do not have any working Windows Docker set up, though, so I cannot investigate further over here.
Result of "C:/Program Files/Git/usr/bin/bash.exe" -lc "cd C:/TEMP/.git"
C:\TEMP>"C:/Program Files/Git/usr/bin/bash.exe" -lc "cd C:/TEMP/.git"
+ case "${MSYS2_PATH_TYPE:-inherit}" in
+ ORIGINAL_PATH='/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.30.30705/bin/HostX86/x86:/c/Program Files (x86)/Microsoft Visual Studio/
2022/BuildTools/Common7/IDE/VC/VCPackages:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/TestWindow:/c/Program Fil
es (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/TeamFoundation/Team Explorer:/c/Program Files (x86)/Microsoft Visual Studio/2022/
BuildTools/MSBuild/Current/bin/Roslyn:/c/Program Files (x86)/Microsoft SDKs/Windows/v10.0A/bin/NETFX 4.8 Tools:/c/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x8
6:/c/Program Files (x86)/Windows Kits/10/bin/x86:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/amd64:/c/Windows/Microsoft.NET/Framew
ork/v4.0.30319:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/Tools:/c
/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Windows/System32/OpenSSH:/c/Program Files/dotnet:/c/Users/ContainerAd
ministrator/AppData/Local/Microsoft/WindowsApps:/c/Users/ContainerAdministrator/.dotnet/tools:/c/Program Files/NuGet:/c/Program Files (x86)/Microsoft Visual Studio/2022/
TestAgent/Common7/IDE/CommonExtensions/Microsoft/TestWindow:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin:/c/Program Files (x86)/Mic
rosoft SDKs/Windows/v10.0A/bin/NETFX 4.8 Tools:/c/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool:/cmd:/c/Users/ContainerAdministrator/scoop/apps/python/current/Sc
ripts:/c/Users/ContainerAdministrator/scoop/apps/python/current:/c/Users/ContainerAdministrator/scoop/shims:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTool
s/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninj
a'
+ unset MINGW_MOUNT_POINT
+ . /etc/msystem
++ export MSYSTEM=MSYS
++ MSYSTEM=MSYS
++ unset MSYSTEM_PREFIX
++ unset MSYSTEM_CARCH
++ unset MSYSTEM_CHOST
++ unset MINGW_CHOST
++ unset MINGW_PREFIX
++ unset MINGW_PACKAGE_PREFIX
++ case "${MSYSTEM}" in
++ MSYSTEM_PREFIX=/usr
+++ /usr/bin/uname -m
++ MSYSTEM_CARCH=x86_64
+++ /usr/bin/uname -m
++ MSYSTEM_CHOST=x86_64-pc-msys
++ export MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST
+ case "${MSYSTEM}" in
+ PATH='/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.30.30705/bin/HostX86/x86:/c/Program Files (
x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/VC/VCPackages:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Micros
oft/TestWindow:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/TeamFoundation/Team Explorer:/c/Program Files (x86)/
Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/bin/Roslyn:/c/Program Files (x86)/Microsoft SDKs/Windows/v10.0A/bin/NETFX 4.8 Tools:/c/Program Files (x86)/Window
s Kits/10/bin/10.0.19041.0/x86:/c/Program Files (x86)/Windows Kits/10/bin/x86:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/amd64:/c
/Windows/Microsoft.NET/Framework/v4.0.30319:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE:/c/Program Files (x86)/Microsoft Visual Studio/202
2/BuildTools/Common7/Tools:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Windows/System32/OpenSSH:/c/Program File
s/dotnet:/c/Users/ContainerAdministrator/AppData/Local/Microsoft/WindowsApps:/c/Users/ContainerAdministrator/.dotnet/tools:/c/Program Files/NuGet:/c/Program Files (x86)/
Microsoft Visual Studio/2022/TestAgent/Common7/IDE/CommonExtensions/Microsoft/TestWindow:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/B
in:/c/Program Files (x86)/Microsoft SDKs/Windows/v10.0A/bin/NETFX 4.8 Tools:/c/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool:/cmd:/c/Users/ContainerAdministrator
/scoop/apps/python/current/Scripts:/c/Users/ContainerAdministrator/scoop/apps/python/current:/c/Users/ContainerAdministrator/scoop/shims:/c/Program Files (x86)/Microsoft
Visual Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/CommonEx
tensions/Microsoft/CMake/Ninja'
+ PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig:/lib/pkgconfig
+ CONFIG_SITE=/etc/config.site
+ MAYBE_FIRST_START=false
+ SYSCONFDIR=/etc
+ ORIGINAL_TMP=/tmp
+ ORIGINAL_TEMP=/tmp
+ case "$TMP" in
+ case "$TEMP" in
+ test -d ''
+ test '!' -d /tmp
+ TMPDIR=/tmp
+ export TMPDIR
++ export LC_COLLATE=C
++ LC_COLLATE=C
++ echo '/etc/post-install/*.post'
+ for postinst in $(export LC_COLLATE=C; echo /etc/post-install/*.post)
+ '[' -e '/etc/post-install/*.post' ']'
+ '[' '!' 'x4.4.23(2)-release' = x ']'
++ exec /usr/bin/hostname
+ HOSTNAME=2281de303e3a
++ which bash
+ SHELL=/usr/bin/bash
+ profile_d sh
+ local file=
++ export LC_COLLATE=C
++ LC_COLLATE=C
++ echo /etc/profile.d/aliases.sh /etc/profile.d/bash_profile.sh /etc/profile.d/env.sh /etc/profile.d/git-prompt.sh /etc/profile.d/lang.sh /etc/profile.d/perlbin.sh
+ for file in $(export LC_COLLATE=C; echo /etc/profile.d/*.$1)
+ '[' -e /etc/profile.d/aliases.sh ']'
+ . /etc/profile.d/aliases.sh
++ alias 'ls=ls -F --color=auto --show-control-chars'
++ alias 'll=ls -l'
++ case "$TERM" in
++ for name in node ipython php php5 psql python2.7
++ case "$(type -p "$name".exe 2>/dev/null)" in
+++ type -p node.exe
++ continue
++ for name in node ipython php php5 psql python2.7
++ case "$(type -p "$name".exe 2>/dev/null)" in
+++ type -p ipython.exe
++ continue
++ for name in node ipython php php5 psql python2.7
++ case "$(type -p "$name".exe 2>/dev/null)" in
+++ type -p php.exe
++ continue
++ for name in node ipython php php5 psql python2.7
++ case "$(type -p "$name".exe 2>/dev/null)" in
+++ type -p php5.exe
++ continue
++ for name in node ipython php php5 psql python2.7
++ case "$(type -p "$name".exe 2>/dev/null)" in
+++ type -p psql.exe
++ continue
++ for name in node ipython php php5 psql python2.7
++ case "$(type -p "$name".exe 2>/dev/null)" in
+++ type -p python2.7.exe
++ continue
+ for file in $(export LC_COLLATE=C; echo /etc/profile.d/*.$1)
+ '[' -e /etc/profile.d/bash_profile.sh ']'
+ . /etc/profile.d/bash_profile.sh
++ '[' -e /c/Users/ContainerAdministrator/.bashrc -a '!' -e /c/Users/ContainerAdministrator/.bash_profile -a '!' -e /c/Users/ContainerAdministrator/.bash_login -a '!' -e
/c/Users/ContainerAdministrator/.profile ']'
+ for file in $(export LC_COLLATE=C; echo /etc/profile.d/*.$1)
+ '[' -e /etc/profile.d/env.sh ']'
+ . /etc/profile.d/env.sh
++ export 'PATH=/c/Users/ContainerAdministrator/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14
.30.30705/bin/HostX86/x86:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/VC/VCPackages:/c/Program Files (x86)/Microsoft Visual Studio/2022/Bu
ildTools/Common7/IDE/CommonExtensions/Microsoft/TestWindow:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/TeamFoun
dation/Team Explorer:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/bin/Roslyn:/c/Program Files (x86)/Microsoft SDKs/Windows/v10.0A/bin/N
ETFX 4.8 Tools:/c/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x86:/c/Program Files (x86)/Windows Kits/10/bin/x86:/c/Program Files (x86)/Microsoft Visual Studio/
2022/BuildTools/MSBuild/Current/Bin/amd64:/c/Windows/Microsoft.NET/Framework/v4.0.30319:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE:/c/Pro
gram Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/Tools:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0
:/c/Windows/System32/OpenSSH:/c/Program Files/dotnet:/c/Users/ContainerAdministrator/AppData/Local/Microsoft/WindowsApps:/c/Users/ContainerAdministrator/.dotnet/tools:/c
/Program Files/NuGet:/c/Program Files (x86)/Microsoft Visual Studio/2022/TestAgent/Common7/IDE/CommonExtensions/Microsoft/TestWindow:/c/Program Files (x86)/Microsoft Vis
ual Studio/2022/BuildTools/MSBuild/Current/Bin:/c/Program Files (x86)/Microsoft SDKs/Windows/v10.0A/bin/NETFX 4.8 Tools:/c/Program Files (x86)/Microsoft SDKs/ClickOnce/S
ignTool:/cmd:/c/Users/ContainerAdministrator/scoop/apps/python/current/Scripts:/c/Users/ContainerAdministrator/scoop/apps/python/current:/c/Users/ContainerAdministrator/
scoop/shims:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin:/c/Program Files (x86)/Microsoft Visual
Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja'
++ PATH='/c/Users/ContainerAdministrator/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.30.307
05/bin/HostX86/x86:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/VC/VCPackages:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTool
s/Common7/IDE/CommonExtensions/Microsoft/TestWindow:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/TeamFoundation/
Team Explorer:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/bin/Roslyn:/c/Program Files (x86)/Microsoft SDKs/Windows/v10.0A/bin/NETFX 4.
8 Tools:/c/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x86:/c/Program Files (x86)/Windows Kits/10/bin/x86:/c/Program Files (x86)/Microsoft Visual Studio/2022/Bu
ildTools/MSBuild/Current/Bin/amd64:/c/Windows/Microsoft.NET/Framework/v4.0.30319:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE:/c/Program Fi
les (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/Tools:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Win
dows/System32/OpenSSH:/c/Program Files/dotnet:/c/Users/ContainerAdministrator/AppData/Local/Microsoft/WindowsApps:/c/Users/ContainerAdministrator/.dotnet/tools:/c/Progra
m Files/NuGet:/c/Program Files (x86)/Microsoft Visual Studio/2022/TestAgent/Common7/IDE/CommonExtensions/Microsoft/TestWindow:/c/Program Files (x86)/Microsoft Visual Stu
dio/2022/BuildTools/MSBuild/Current/Bin:/c/Program Files (x86)/Microsoft SDKs/Windows/v10.0A/bin/NETFX 4.8 Tools:/c/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool
:/cmd:/c/Users/ContainerAdministrator/scoop/apps/python/current/Scripts:/c/Users/ContainerAdministrator/scoop/apps/python/current:/c/Users/ContainerAdministrator/scoop/s
hims:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin:/c/Program Files (x86)/Microsoft Visual Studio
/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja'
++ test -n ''
++ case "$MSYSTEM" in
+ for file in $(export LC_COLLATE=C; echo /etc/profile.d/*.$1)
+ '[' -e /etc/profile.d/git-prompt.sh ']'
+ . /etc/profile.d/git-prompt.sh
++ test -f /etc/profile.d/git-sdk.sh
++ TITLEPREFIX=MSYS
++ test -f /c/Users/ContainerAdministrator/.config/git/git-prompt.sh
++ PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]'
++ PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]\n'
++ PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]\n\[\033[32m\]'
++ PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]\n\[\033[32m\]\u@\h '
++ PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]\n\[\033[32m\]\u@\h \[\033[35m\]'
++ PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]\n\[\033[32m\]\u@\h \[\033[35m\]$MSYSTEM '
++ PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]\n\[\033[32m\]\u@\h \[\033[35m\]$MSYSTEM \[\033[33m\]'
++ PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]\n\[\033[32m\]\u@\h \[\033[35m\]$MSYSTEM \[\033[33m\]\w'
++ test -z ''
+++ git --exec-path
++ GIT_EXEC_PATH='C:/Program Files/Git/mingw64/libexec/git-core'
++ COMPLETION_PATH='C:/Program Files/Git/mingw64'
++ COMPLETION_PATH='C:/Program Files/Git/mingw64'
++ COMPLETION_PATH='C:/Program Files/Git/mingw64/share/git/completion'
++ test -f 'C:/Program Files/Git/mingw64/share/git/completion/git-prompt.sh'
++ . 'C:/Program Files/Git/mingw64/share/git/completion/git-completion.bash'
+++ case "$COMP_WORDBREAKS" in
+++ : great
+++ type _get_comp_words_by_ref
+++ [[ -n '' ]]
++++ compgen -v __gitcomp_builtin_
+++ unset
+++ __git_merge_strategies=
+++ __git_merge_strategy_options='ours theirs subtree subtree= patience
histogram diff-algorithm= ignore-space-change ignore-all-space
ignore-space-at-eol renormalize no-renormalize no-renames
find-renames find-renames= rename-threshold='
+++ __git_all_commands=
+++ __git_whitespacelist='nowarn warn error error-all fix'
+++ __git_patchformat='mbox stgit stgit-series hg mboxrd'
+++ __git_showcurrentpatch='diff raw'
+++ __git_am_inprogress_options='--skip --continue --resolved --abort --quit --show-current-patch'
+++ __git_quoted_cr='nowarn warn strip'
+++ __git_ref_fieldlist='refname objecttype objectsize objectname upstream push HEAD symref'
+++ __git_sequencer_inprogress_options='--continue --quit --abort --skip'
+++ __git_cherry_pick_inprogress_options='--continue --quit --abort --skip'
+++ __git_untracked_file_modes='all no normal'
+++ __git_diff_algorithms='myers minimal patience histogram'
+++ __git_diff_submodule_formats='diff log short'
+++ __git_color_moved_opts='no default plain blocks zebra dimmed-zebra'
+++ __git_color_moved_ws_opts='no ignore-space-at-eol ignore-space-change
ignore-all-space allow-indentation-change'
+++ __git_diff_common_options='--stat --numstat --shortstat --summary
--patch-with-stat --name-only --name-status --color
--no-color --color-words --no-renames --check
--color-moved --color-moved= --no-color-moved
--color-moved-ws= --no-color-moved-ws
--full-index --binary --abbrev --diff-filter=
--find-copies-harder --ignore-cr-at-eol
--text --ignore-space-at-eol --ignore-space-change
--ignore-all-space --ignore-blank-lines --exit-code
--quiet --ext-diff --no-ext-diff
--no-prefix --src-prefix= --dst-prefix=
--inter-hunk-context=
--patience --histogram --minimal
--raw --word-diff --word-diff-regex=
--dirstat --dirstat= --dirstat-by-file
--dirstat-by-file= --cumulative
--diff-algorithm=
--submodule --submodule= --ignore-submodules
--indent-heuristic --no-indent-heuristic
--textconv --no-textconv
--patch --no-patch
--anchored=
'
+++ __git_diff_difftool_options='--cached --staged --pickaxe-all --pickaxe-regex
--base --ours --theirs --no-index --relative --merge-base
--stat --numstat --shortstat --summary
--patch-with-stat --name-only --name-status --color
--no-color --color-words --no-renames --check
--color-moved --color-moved= --no-color-moved
--color-moved-ws= --no-color-moved-ws
--full-index --binary --abbrev --diff-filter=
--find-copies-harder --ignore-cr-at-eol
--text --ignore-space-at-eol --ignore-space-change
--ignore-all-space --ignore-blank-lines --exit-code
--quiet --ext-diff --no-ext-diff
--no-prefix --src-prefix= --dst-prefix=
--inter-hunk-context=
--patience --histogram --minimal
--raw --word-diff --word-diff-regex=
--dirstat --dirstat= --dirstat-by-file
--dirstat-by-file= --cumulative
--diff-algorithm=
--submodule --submodule= --ignore-submodules
--indent-heuristic --no-indent-heuristic
--textconv --no-textconv
--patch --no-patch
--anchored=
'
+++ __git_mergetools_common='diffuse diffmerge ecmerge emerge kdiff3 meld opendiff
tkdiff vimdiff nvimdiff gvimdiff xxdiff araxis p4merge
bc codecompare smerge
'
+++ __git_fetch_recurse_submodules='yes on-demand no'
+++ __git_format_patch_extra_options='
--full-index --not --all --no-prefix --src-prefix=
--dst-prefix= --notes
'
+++ __git_log_common_options='
--not --all
--branches --tags --remotes
--first-parent --merges --no-merges
--max-count=
--max-age= --since= --after=
--min-age= --until= --before=
--min-parents= --max-parents=
--no-min-parents --no-max-parents
'
+++ __git_log_gitk_options='
--dense --sparse --full-history
--simplify-merges --simplify-by-decoration
--left-right --notes --no-notes
'
+++ __git_log_shortlog_options='
--author= --committer= --grep=
--all-match --invert-grep
'
+++ __git_log_pretty_formats='oneline short medium full fuller reference email raw format: tformat: mboxrd'
+++ __git_log_date_formats='relative iso8601 iso8601-strict rfc2822 short local default human raw unix auto: format:'
+++ __git_push_recurse_submodules='check on-demand only'
+++ __git_rebase_inprogress_options='--continue --skip --abort --quit --show-current-patch'
+++ __git_rebase_interactive_inprogress_options='--continue --skip --abort --quit --show-current-patch --edit-todo'
+++ __git_send_email_confirm_options='always never auto cc compose'
+++ __git_send_email_suppresscc_options='author self cc bodycc sob cccmd body all'
+++ __git_config_vars=
+++ __git_config_sections=
+++ __git_revert_inprogress_options='--continue --quit --abort --skip'
+++ __git_cmds_with_parseopt_helper=
+++ [[ -n '' ]]
+++ ___git_complete git __git_main
+++ local wrapper=__git_wrap__git_main
+++ eval '__git_wrap__git_main () { __git_func_wrap __git_main ; }'
+++ complete -o bashdefault -o default -o nospace -F __git_wrap__git_main git
+++ ___git_complete gitk __gitk_main
+++ local wrapper=__git_wrap__gitk_main
+++ eval '__git_wrap__gitk_main () { __git_func_wrap __gitk_main ; }'
+++ complete -o bashdefault -o default -o nospace -F __git_wrap__gitk_main gitk
+++ '[' msys = cygwin ']'
++ . 'C:/Program Files/Git/mingw64/share/git/completion/git-prompt.sh'
+++ __git_printf_supports_v=
+++ printf -v __git_printf_supports_v -- %s yes
++ PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]\n\[\033[32m\]\u@\h \[\033[35m\]$MSYSTEM \[\033[33m\]\w\[\033[36m\]'
++ PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]\n\[\033[32m\]\u@\h \[\033[35m\]$MSYSTEM \[\033[33m\]\w\[\033[36m\]`__git_ps1`'
++ PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]\n\[\033[32m\]\u@\h \[\033[35m\]$MSYSTEM \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\]'
++ PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]\n\[\033[32m\]\u@\h \[\033[35m\]$MSYSTEM \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\]\n'
++ PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]\n\[\033[32m\]\u@\h \[\033[35m\]$MSYSTEM \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\]\n$ '
++ MSYS2_PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]\n\[\033[32m\]\u@\h \[\033[35m\]$MSYSTEM \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\]\n$ '
++ test -z ''
++ for c in "$HOME"/bash_completion.d/*.bash
++ test '!' -f '/c/Users/ContainerAdministrator/bash_completion.d/*.bash'
+ for file in $(export LC_COLLATE=C; echo /etc/profile.d/*.$1)
+ '[' -e /etc/profile.d/lang.sh ']'
+ . /etc/profile.d/lang.sh
++ test -z ''
+++ exec /usr/bin/locale -uU
++ export LANG=en_US.UTF-8
++ LANG=en_US.UTF-8
+ for file in $(export LC_COLLATE=C; echo /etc/profile.d/*.$1)
+ '[' -e /etc/profile.d/perlbin.sh ']'
+ . /etc/profile.d/perlbin.sh
++ '[' -d /usr/bin/site_perl ']'
++ '[' -d /usr/lib/perl5/site_perl/bin ']'
++ '[' -d /usr/bin/vendor_perl ']'
++ PATH='/c/Users/ContainerAdministrator/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.30.307
05/bin/HostX86/x86:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/VC/VCPackages:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTool
s/Common7/IDE/CommonExtensions/Microsoft/TestWindow:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/TeamFoundation/
Team Explorer:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/bin/Roslyn:/c/Program Files (x86)/Microsoft SDKs/Windows/v10.0A/bin/NETFX 4.
8 Tools:/c/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x86:/c/Program Files (x86)/Windows Kits/10/bin/x86:/c/Program Files (x86)/Microsoft Visual Studio/2022/Bu
ildTools/MSBuild/Current/Bin/amd64:/c/Windows/Microsoft.NET/Framework/v4.0.30319:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE:/c/Program Fi
les (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/Tools:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Win
dows/System32/OpenSSH:/c/Program Files/dotnet:/c/Users/ContainerAdministrator/AppData/Local/Microsoft/WindowsApps:/c/Users/ContainerAdministrator/.dotnet/tools:/c/Progra
m Files/NuGet:/c/Program Files (x86)/Microsoft Visual Studio/2022/TestAgent/Common7/IDE/CommonExtensions/Microsoft/TestWindow:/c/Program Files (x86)/Microsoft Visual Stu
dio/2022/BuildTools/MSBuild/Current/Bin:/c/Program Files (x86)/Microsoft SDKs/Windows/v10.0A/bin/NETFX 4.8 Tools:/c/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool
:/cmd:/c/Users/ContainerAdministrator/scoop/apps/python/current/Scripts:/c/Users/ContainerAdministrator/scoop/apps/python/current:/c/Users/ContainerAdministrator/scoop/s
hims:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin:/c/Program Files (x86)/Microsoft Visual Studio
/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja:/usr/bin/vendor_perl'
++ '[' -d /usr/lib/perl5/vendor_perl/bin ']'
++ '[' -d /usr/bin/core_perl ']'
++ PATH='/c/Users/ContainerAdministrator/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.30.307
ildTools/MSBuild/Current/Bin/amd64:/c/Windows/Microsoft.NET/Framework/v4.0.30319:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE:/c/Program Fi
les (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/Tools:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Win
dows/System32/OpenSSH:/c/Program Files/dotnet:/c/Users/ContainerAdministrator/AppData/Local/Microsoft/WindowsApps:/c/Users/ContainerAdministrator/.dotnet/tools:/c/Progra
m Files/NuGet:/c/Program Files (x86)/Microsoft Visual Studio/2022/TestAgent/Common7/IDE/CommonExtensions/Microsoft/TestWindow:/c/Program Files (x86)/Microsoft Visual Stu
dio/2022/BuildTools/MSBuild/Current/Bin:/c/Program Files (x86)/Microsoft SDKs/Windows/v10.0A/bin/NETFX 4.8 Tools:/c/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool
:/cmd:/c/Users/ContainerAdministrator/scoop/apps/python/current/Scripts:/c/Users/ContainerAdministrator/scoop/apps/python/current:/c/Users/ContainerAdministrator/scoop/s
hims:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin:/c/Program Files (x86)/Microsoft Visual Studio
/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja:/usr/bin/vendor_perl'
++ '[' -d /usr/lib/perl5/vendor_perl/bin ']'
++ '[' -d /usr/bin/core_perl ']'
++ PATH='/c/Users/ContainerAdministrator/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.30.307
05/bin/HostX86/x86:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/VC/VCPackages:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTool
s/Common7/IDE/CommonExtensions/Microsoft/TestWindow:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/TeamFoundation/
Team Explorer:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/bin/Roslyn:/c/Program Files (x86)/Microsoft SDKs/Windows/v10.0A/bin/NETFX 4.
8 Tools:/c/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x86:/c/Program Files (x86)/Windows Kits/10/bin/x86:/c/Program Files (x86)/Microsoft Visual Studio/2022/Bu
ildTools/MSBuild/Current/Bin/amd64:/c/Windows/Microsoft.NET/Framework/v4.0.30319:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE:/c/Program Fi
les (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/Tools:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Win
dows/System32/OpenSSH:/c/Program Files/dotnet:/c/Users/ContainerAdministrator/AppData/Local/Microsoft/WindowsApps:/c/Users/ContainerAdministrator/.dotnet/tools:/c/Progra
m Files/NuGet:/c/Program Files (x86)/Microsoft Visual Studio/2022/TestAgent/Common7/IDE/CommonExtensions/Microsoft/TestWindow:/c/Program Files (x86)/Microsoft Visual Stu
dio/2022/BuildTools/MSBuild/Current/Bin:/c/Program Files (x86)/Microsoft SDKs/Windows/v10.0A/bin/NETFX 4.8 Tools:/c/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool
:/cmd:/c/Users/ContainerAdministrator/scoop/apps/python/current/Scripts:/c/Users/ContainerAdministrator/scoop/apps/python/current:/c/Users/ContainerAdministrator/scoop/s
hims:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin:/c/Program Files (x86)/Microsoft Visual Studio
/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja:/usr/bin/vendor_perl:/usr/bin/core_perl'
++ export PATH
+ '[' -n '' ']'
+ '[' -f /etc/bash.bashrc ']'
+ . /etc/bash.bashrc
++ [[ -z '' ]]
++ CYG_SYS_BASHRC=1
++ [[ hxBc != *i* ]]
++ return
+ '[' -n '' ']'
+ export PATH MANPATH INFOPATH PKG_CONFIG_PATH USER TMP TEMP HOSTNAME PS1 SHELL tmp temp ORIGINAL_TMP ORIGINAL_TEMP ORIGINAL_PATH CONFIG_SITE
+ unset PATH_SEPARATOR
+ '[' false = true ']'
+ unset MAYBE_FIRST_START
+ cd C:/TEMP/.git
C:\TEMP>
"C:/Program Files/Git/usr/bin/bash.exe" -lc "stat C:/TEMP/.git"
....
++ export PATH
+ '[' -n '' ']'
+ '[' -f /etc/bash.bashrc ']'
+ . /etc/bash.bashrc
++ [[ -z '' ]]
++ CYG_SYS_BASHRC=1
++ [[ hxBc != *i* ]]
++ return
+ '[' -n '' ']'
+ export PATH MANPATH INFOPATH PKG_CONFIG_PATH USER TMP TEMP HOSTNAME PS1 SHELL tmp temp ORIGINAL_TMP ORIGINAL_TEMP ORIGINAL_PATH CONFIG_SITE
+ unset PATH_SEPARATOR
+ '[' false = true ']'
+ unset MAYBE_FIRST_START
+ stat C:/TEMP/.git
File: C:/TEMP/.git
Size: 0 Blocks: 4 IO Block: 65536 directory
Device: 2a980aa8h/714607272d Inode: 281474977885218 Links: 1
Access: (0755/drwxr-xr-x) Uid: (380929/ContainerAdministrator) Gid: (380929/ UNKNOWN)
Access: 2022-01-28 17:47:24.080548400 +0100
Modify: 2022-01-28 06:41:22.275407700 +0100
Change: 2022-01-28 06:41:22.275407700 +0100
Birth: 2020-04-28 13:35:42.007765400 +0200
"C:/Program Files/Git/usr/bin/bash.exe" -lc "cygpath -aw C:/TEMP/.git"
...
++ export PATH
+ '[' -n '' ']'
+ '[' -f /etc/bash.bashrc ']'
+ . /etc/bash.bashrc
++ [[ -z '' ]]
++ CYG_SYS_BASHRC=1
++ [[ hxBc != *i* ]]
++ return
+ '[' -n '' ']'
+ export PATH MANPATH INFOPATH PKG_CONFIG_PATH USER TMP TEMP HOSTNAME PS1 SHELL tmp temp ORIGINAL_TMP ORIGINAL_TEMP ORIGINAL_PATH CONFIG_SITE
+ unset PATH_SEPARATOR
+ '[' false = true ']'
+ unset MAYBE_FIRST_START
+ cygpath -aw C:/TEMP/.git
C:\TEMP\.git
C:\TEMP>
To rule out the scoop stuff, I have installed git "manually":
ADD https://github.com/git-for-windows/git/releases/download/v2.35.0.windows.1/Git-2.35.0-64-bit.exe git.exe
# install Git
RUN c:\git.exe /SP- /VERYSILENT /NORESTART /NOCANCEL /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS -Wait -NoNewWindow
But the behavior is stil the same.
C:\TEMP>"C:/Program Files/Git/usr/bin/bash.exe" -lc "cd C:/TEMP/.git; echo $?"
0
C:\TEMP>
Though the result code is 0, we are still in C:\TEMP
I bet the same happens with a Cygwin Bash, i.e. I suspect that this is actually a bug in the Cygwin runtime (a close fork of which is used in Git for Windows' Bash, namely the MSYS2 runtime).
If that is the case, running the cd
command through strace -fF bash -c "cd ..."
might turn out to be informative.
The log is huge: strace.log
This part is strange:
198 441517 [main] bash 1533 mount_info::conv_to_posix_path: /c/TEMP/ = conv_to_posix_path (C:\TEMP\)
171 441688 [main] bash 1533 symlink_info::check: -8 = symlink.check(C:\TEMP, 0xFFFFB360) (mount_flags 0x6020, path_flags 0x0)
233 441921 [main] bash 1533 stat_worker: got 92 error from path_conv
155 442076 [main] bash 1533 __set_errno: int stat_worker(path_conv&, stat*):2096 setting errno 92
161 442237 [main] bash 1533 stat_worker: -1 = ((null),0xFFFFC5B0)
171 441688 [main] bash 1533 symlink_info::check: -8 = symlink.check(C:\TEMP, 0xFFFFB360) (mount_flags 0x6020, path_flags 0x0)
This message is produced by this code.
Since Docker volumes are represented as some sort of bogus symlink on some Windows versions, I suspect that we're running into this code block.
At first, I suspected check_reparse_point_target()
to return that -8
. But that function returns the negative errno
value, and 8
corresponds to ENOEXEC
, which would not make any sense in this context.
So I think we're running into this block instead, where we "posixify" c:\TEMP
and do not receive the expected \??\X:\
prefix (because the bogus symlink target looks more like /ContainerMappedDirectories/
). The length of /c/TEMP/
is 8, whose negative is suspiciously identical to the reported value.
Now, as to how to fix this, I can only offer suspicions, and would like to encourage you to run with them, hopefully figuring out a fix:
psymbuf
starts with /ContainerMappedDirectories/
, we can be pretty certain that this is not a symlink, and return 0 instead.check_reparse_point_string()
is called there already, and it does not look as if it would accept such a bogus symlink target. But then, maybe the reparse point is marked as SYMLINK_FLAG_RELATIVE
?small_printf()
function to sprinkle the code liberally with debug messages.Thanks for the hints. I'll try to debug it as described.
Meanwhile, I have some interesting results with different git versions:
cd: .git: Not a directory
git submodule update --init
twice or trice, it succeedsOutput from git submodule update --init
using git 2.34 (as one can see, the second invocation was successful):
C:\TEMP>git submodule update --init
Submodule 'jimtcl' (https://github.com/msteveb/jimtcl.git) registered for path 'jimtcl'
Submodule 'src/jtag/drivers/libjaylink' (https://repo.or.cz/libjaylink.git) registered for path 'src/jtag/drivers/libjaylink'
Submodule 'tools/git2cl' (https://repo.or.cz/git2cl.git) registered for path 'tools/git2cl'
Cloning into 'C:/TEMP//jimtcl'...
fatal: Invalid path 'C:/TEMP/.git/modules/jimtcl': Not a directory
fatal: clone of 'https://github.com/msteveb/jimtcl.git' into submodule path 'C:/TEMP//jimtcl' failed
Failed to clone 'jimtcl'. Retry scheduled
Cloning into 'C:/TEMP//src/jtag/drivers/libjaylink'...
fatal: Invalid path 'C:/TEMP/.git/modules/src/jtag/drivers/libjaylink': Not a directory
fatal: clone of 'https://repo.or.cz/libjaylink.git' into submodule path 'C:/TEMP//src/jtag/drivers/libjaylink' failed
Failed to clone 'src/jtag/drivers/libjaylink'. Retry scheduled
Cloning into 'C:/TEMP//tools/git2cl'...
fatal: Invalid path 'C:/TEMP/.git/modules/tools/git2cl': Not a directory
fatal: clone of 'https://repo.or.cz/git2cl.git' into submodule path 'C:/TEMP//tools/git2cl' failed
Failed to clone 'tools/git2cl'. Retry scheduled
Cloning into 'C:/TEMP//jimtcl'...
fatal: Invalid path 'C:/TEMP/.git/modules/jimtcl': Not a directory
fatal: clone of 'https://github.com/msteveb/jimtcl.git' into submodule path 'C:/TEMP//jimtcl' failed
Failed to clone 'jimtcl' a second time, aborting
C:\TEMP>git submodule update --init
Cloning into 'C:/TEMP//jimtcl'...
Cloning into 'C:/TEMP//src/jtag/drivers/libjaylink'...
Cloning into 'C:/TEMP//tools/git2cl'...
Submodule path 'jimtcl': checked out 'a77ef1a6218fad4c928ddbdc03c1aedc41007e70'
Submodule path 'src/jtag/drivers/libjaylink': checked out '9aa7a5957c07bb6e862fc1a6d3153d109c7407e4'
Submodule path 'tools/git2cl': checked out '8373c9f74993e218a08819cbcdbab3f3564bbeba'
Most likely the second try takes a different code path where git
is asked to cd
into the directory (probably because that directory now already exists). And git
has no problem since we added that work-around.
As to why earlier Git versions seem not to have any problems? Probably because the Cygwin runtime was taught to handle more types of symlinks in the meantime, and just has not learned yet to work around the mislabeled symlink that some Windows versions show Docker volumes as.
Setup
I have used the scoop installation method.
Windows host: Windows 10 64-bit, Windows image in Docker:
Details
CMD and PowerShell
Update of the submodules.
/mingw64/libexec/git-core/git-sh-setup: line 365: cd: .git: Not a directory Unable to determine absolute path of git directory
OpenOCD
The problem is that inside the mounted volume git cannot properly execute
cd
command. I have already asked this question on Stackoverflow but without an answer.