pass --git-dir when reading git config when it was specified explicitly

Let GIT_DIR and --git-dir override git's protection against operating in a
repository owned by another user.

This is the same behavior other git commands have.

Sponsored-by: Jarkko Kniivilä on Patreon
This commit is contained in:
Joey Hess 2022-09-26 14:38:34 -04:00
parent 1d47a7e7e6
commit bfa451fc4e
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
3 changed files with 19 additions and 9 deletions

View file

@ -79,11 +79,11 @@ get = do
{ gitdir = absd
, worktree = Just curr
}
r <- Git.Config.read $ newFrom loc
let r' = r { gitDirSpecifiedExplicitly = True }
return $ if Git.Config.isBare r'
then r' { location = (location r) { worktree = Nothing } }
else r'
r <- Git.Config.read $ (newFrom loc)
{ gitDirSpecifiedExplicitly = True }
return $ if Git.Config.isBare r
then r { location = (location r) { worktree = Nothing } }
else r
configure Nothing Nothing = giveup "Not in a git repository."
addworktree w r = changelocation r $ Local