summaryrefslogtreecommitdiff
path: root/Annex/GitOverlay.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2016-05-17 13:29:51 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2016-05-17 13:29:51 -0400
commite2b93987143faba2c1f507da436752ef826c5ff3 (patch)
treea23a6d48f619686854926b809f2d64dcc7683819 /Annex/GitOverlay.hs
parent4efa70598eda24fddf8c3f4bbd86fc96576a5bf1 (diff)
Work around git bug in handling of relative path to GIT_INDEX_FILE when in a subdirectory of the repository.
This affected git annex view. It turns out that some other places that use GIT_INDEX_FILE were already working around the bug. I removed the workaround from Annex.Branch since the new workaround will do.
Diffstat (limited to 'Annex/GitOverlay.hs')
-rw-r--r--Annex/GitOverlay.hs10
1 files changed, 7 insertions, 3 deletions
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.
-