summaryrefslogtreecommitdiff
path: root/Git.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Git.hs')
-rw-r--r--Git.hs12
1 files changed, 6 insertions, 6 deletions
diff --git a/Git.hs b/Git.hs
index b226bce0f..168fe4154 100644
--- a/Git.hs
+++ b/Git.hs
@@ -247,11 +247,11 @@ attributes repo
| configBare repo = workTree repo ++ "/info/.gitattributes"
| otherwise = workTree repo ++ "/.gitattributes"
-{- Path to a repository's .git directory, relative to its workTree. -}
+{- Path to a repository's .git directory. -}
gitDir :: Repo -> String
gitDir repo
- | configBare repo = ""
- | otherwise = ".git"
+ | configBare repo = workTree repo
+ | otherwise = workTree repo </> ".git"
{- Path to a repository's --work-tree, that is, its top.
-
@@ -345,10 +345,10 @@ urlAuthPart _ repo = assertUrl repo $ error "internal"
{- Constructs a git command line operating on the specified repo. -}
gitCommandLine :: Repo -> [CommandParam] -> [CommandParam]
-gitCommandLine repo@(Repo { location = Dir d} ) params =
+gitCommandLine repo@(Repo { location = Dir _ } ) params =
-- force use of specified repo via --git-dir and --work-tree
- [ Param ("--git-dir=" ++ d ++ "/" ++ gitDir repo)
- , Param ("--work-tree=" ++ d)
+ [ Param ("--git-dir=" ++ gitDir repo)
+ , Param ("--work-tree=" ++ workTree repo)
] ++ params
gitCommandLine repo _ = assertLocal repo $ error "internal"