make GIT_DIR, GIT_WORK_TREE absolute

GIT_DIR is set to something relative, like ".git" in the pre-commit hook.
But internally all the directories are assumed to be absolute.
This commit is contained in:
Joey Hess 2012-05-18 18:30:50 -04:00
parent eb6cb1b87f
commit a1885bd116
2 changed files with 6 additions and 5 deletions

View file

@ -29,20 +29,22 @@ import qualified Git.Config
-}
get :: IO Repo
get = do
gd <- takeenv "GIT_DIR"
gd <- pathenv "GIT_DIR"
r <- configure gd =<< maybe fromCwd fromPath gd
wt <- maybe (worktree $ location r) Just <$> takeenv "GIT_WORK_TREE"
wt <- maybe (worktree $ location r) Just <$> pathenv "GIT_WORK_TREE"
case wt of
Nothing -> return r
Just d -> do
changeWorkingDirectory d
return $ addworktree wt r
where
takeenv s = do
pathenv s = do
v <- getEnv s
when (isJust v) $
unsetEnv s
return v
case v of
Nothing -> return Nothing
Just d -> Just <$> absPath d
configure Nothing r = Git.Config.read r
configure (Just d) r = do
r' <- Git.Config.read r

View file

@ -25,7 +25,6 @@ import qualified Utility.SafeCommand
import qualified Annex
import qualified Annex.UUID
import qualified Backend
import qualified Git.Config
import qualified Git.CurrentRepo
import qualified Git.Filename
import qualified Locations