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.
This commit is contained in:
Joey Hess 2020-10-23 13:36:56 -04:00
parent 966dbb518e
commit c142696c58
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38

View file

@ -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 =