From a1885bd11607d8668d70f81eaafa25e5341e8e8c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 18 May 2012 18:30:50 -0400 Subject: [PATCH] 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. --- Git/CurrentRepo.hs | 10 ++++++---- test.hs | 1 - 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Git/CurrentRepo.hs b/Git/CurrentRepo.hs index 4325f452c0..746904caf2 100644 --- a/Git/CurrentRepo.hs +++ b/Git/CurrentRepo.hs @@ -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 diff --git a/test.hs b/test.hs index c52a88d66f..9a0fce873e 100644 --- a/test.hs +++ b/test.hs @@ -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