From: Joey Hess Date: Fri, 23 Oct 2020 17:36:56 +0000 (-0400) Subject: pass --git-dir, rather than changing cwd X-Git-Tag: archive/raspbian/10.20250416-2+rpi1~1^2~106^2~44 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c142696c587100b195accec4e9bfaa26cde73d48;p=git-annex.git pass --git-dir, rather than changing cwd If .git is a gitlink file, setting cwd to it will fail, but --git-dir will succeed. And this is the only place where it sets cwd when running git, everywhere else already uses --git-dir. Note that, git-annex's submodule fixup code usually converts gitlink files to symlinks, so this wasn't usually problem. Still, worth fixing. This commit was sponsored by Svenne Krap on Patreon. --- diff --git a/Git/Config.hs b/Git/Config.hs index 45cf4aa8fb..db1bc3c19b 100644 --- a/Git/Config.hs +++ b/Git/Config.hs @@ -61,10 +61,15 @@ read' repo = go repo go _ = assertLocal repo $ error "internal" git_config d = withCreateProcess p (git_config' p) where - params = ["config", "--null", "--list"] + params = + [ "--git-dir" + , fromRawFilePath d + , "config" + , "--null" + , "--list" + ] p = (proc "git" params) - { cwd = Just (fromRawFilePath d) - , env = gitEnv repo + { env = gitEnv repo , std_out = CreatePipe } git_config' p _ (Just hout) _ pid =