diff options
Diffstat (limited to 'Annex')
-rw-r--r-- | Annex/Branch.hs | 2 | ||||
-rw-r--r-- | Annex/GitOverlay.hs | 10 |
2 files changed, 8 insertions, 4 deletions
diff --git a/Annex/Branch.hs b/Annex/Branch.hs index 1e5800c21..e43c07f8e 100644 --- a/Annex/Branch.hs +++ b/Annex/Branch.hs @@ -367,7 +367,7 @@ withIndex :: Annex a -> Annex a withIndex = withIndex' False withIndex' :: Bool -> Annex a -> Annex a withIndex' bootstrapping a = do - f <- liftIO . absPath =<< fromRepo gitAnnexIndex + f <- fromRepo gitAnnexIndex withIndexFile f $ do checkIndexOnce $ unlessM (liftIO $ doesFileExist f) $ do unless bootstrapping create diff --git a/Annex/GitOverlay.hs b/Annex/GitOverlay.hs index e33d8a83c..8cc1e04d1 100644 --- a/Annex/GitOverlay.hs +++ b/Annex/GitOverlay.hs @@ -17,9 +17,13 @@ import qualified Annex {- Runs an action using a different git index file. -} withIndexFile :: FilePath -> Annex a -> Annex a -withIndexFile f = withAltRepo - (\g -> addGitEnv g "GIT_INDEX_FILE" f) - (\g g' -> g' { gitEnv = gitEnv g }) +withIndexFile f a = do + -- Workaround http://thread.gmane.org/gmane.comp.version-control.git/294880 + absf <- liftIO $ absPath f + withAltRepo + (\g -> addGitEnv g "GIT_INDEX_FILE" absf) + (\g g' -> g' { gitEnv = gitEnv g }) + a {- Runs an action using a different git work tree. - |