Shell executor fails on existing Git repository if a relative builds_dir is specified

Hiya,

I've been trying to set-up a self-hosted GitLab runner on a old-ish Windows Server 2016 server. Everything went well, beside for this weird error that causes only fresh checkouts to work.

In the attached log you can see the runner is not determining the absolute project path for some reason, causing git to rightfully complain about the config file not existing.

Please let me know if you need further infos.

DEBUG:  376+  >>>> & "git" 'init' 'builds/gT1qUFFlx/0/GROUP/PROJECT' '--template' 
'builds\gT1qUFFlx\0\GROUP\PROJECT.tmp\git-template'
09:58:47.738387 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
09:58:47.758533 git.c:502               trace: built-in: git init builds/gT1qUFFlx/0/GROUP/PROJECT --template 'builds\gT1qUFFlx\0\GROUP\PROJECT.tmp\git-template'
Reinitialized existing Git repository in C:/gitlab-runner/builds/gT1qUFFlx/0/GROUP/PROJECT/.git/
DEBUG:  377+ if( >>>> !$?) { Exit &{if($LASTEXITCODE) {$LASTEXITCODE} else {1}} }
DEBUG:  378+  >>>> cd "builds\gT1qUFFlx\0\GROUP\PROJECT"
DEBUG:  379+ if( >>>> !$?) { Exit &{if($LASTEXITCODE) {$LASTEXITCODE} else {1}} }
DEBUG:  380+  >>>> Set-Variable -Name cmdErr -Value $false
DEBUG:  382+    >>>> & "git" 'remote' 'add' 'origin' 
'https://URL/GROUP/PROJECT.git' 2>$null
DEBUG:  383+   if( >>>> !$?) { throw &{if($LASTEXITCODE) {$LASTEXITCODE} else {1}} }
DEBUG:  383+   if(!$?) {  >>>> throw &{if($LASTEXITCODE) {$LASTEXITCODE} else {1}} }
DEBUG:  383+   if(!$?) { throw  >>>> &{if($LASTEXITCODE) {$LASTEXITCODE} else {1}} }
DEBUG:  383+   if(!$?) { throw & >>>> {if($LASTEXITCODE) {$LASTEXITCODE} else {1}} }
DEBUG:     ! CALL function '<ScriptBlock>'
DEBUG:  383+   if(!$?) { throw &{if( >>>> $LASTEXITCODE) {$LASTEXITCODE} else {1}} }
DEBUG:  383+   if(!$?) { throw &{if($LASTEXITCODE) { >>>> $LASTEXITCODE} else {1}} }
DEBUG:  383+   if(!$?) { throw &{if($LASTEXITCODE) {$LASTEXITCODE} else {1} >>>> } }
DEBUG:  385+    >>>> Set-Variable -Name cmdErr -Value $true
DEBUG:  387+ if( >>>> !$cmdErr) {
DEBUG:  390+    >>>> & "git" 'remote' 'set-url' 'origin' 
'https://URL/GROUP/PROJECT.git'
09:58:48.009257 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
09:58:48.045230 git.c:502               trace: built-in: git remote set-url origin https://URL/GROUP/PROJECT.git
DEBUG:  391+   if( >>>> !$?) { Exit &{if($LASTEXITCODE) {$LASTEXITCODE} else {1}} }
DEBUG:  392+    >>>> $CurrentDirectory = (Resolve-Path .\).Path
DEBUG:     ! SET $CurrentDirectory = 'C:\gitlab-runner\builds\gT1qUFFlx\0\GROUP\lay...'.
DEBUG:  393+    >>>> & "git" "config" "--file" "builds\gT1qUFFlx\0\GROUP\PROJECT\.git\config" 
"--replace-all" "include.path" 
"$CurrentDirectory\builds\gT1qUFFlx\0\GROUP\PROJECT.tmp\.gitlab-runner.ext.conf" 
"\.gitlab-runner\.ext\.conf$"
09:58:48.115172 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
09:58:48.145307 git.c:502               trace: built-in: git config --file 'builds\gT1qUFFlx\0\GROUP\PROJECT\.git\config' --replace-all include.path 'C:\gitlab-runner\builds\gT1qUFFlx\0\GROUP\PROJECT\builds\gT1qUFFlx\0\GROUP\PROJECT.tmp\.gitlab-runner.ext.conf' '\.gitlab-runner\.ext\.conf$'
error: could not lock config file builds\gT1qUFFlx\0\GROUP\PROJECT\.git\config: No such file or directory