diff options
author | Joey Hess <joey@kitenet.net> | 2011-06-22 22:56:27 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-06-22 22:56:27 -0400 |
commit | a4ef0e4da4431755c98fa104204af5254727e7a6 (patch) | |
tree | 1b151d2c83ce5e7eaa815367c13e814a2d560044 /Branch.hs | |
parent | c4e6730042e64e3b2f92626aee4a6b38a8f9c70c (diff) |
bugfix: restore index file env var
This fixes precommit, since in that hook, git sets the env var to write
to the lock file, which avoids git add failing due to the presence of the
lock file. (Took me a good hour and a half of confusion to figure this out.)
Test suite now passes 100%! Only the upgrade code still remains to be
written.
Diffstat (limited to 'Branch.hs')
-rw-r--r-- | Branch.hs | 20 |
1 files changed, 10 insertions, 10 deletions
@@ -68,16 +68,19 @@ genIndex g = do {- Runs an action using the branch's index file. -} withIndex :: Annex a -> Annex a -withIndex a = do +withIndex = withIndex' False +withIndex' :: Bool -> Annex a -> Annex a +withIndex' bootstrapping a = do g <- Annex.gitRepo let f = index g - liftIO $ Git.useIndex f + reset <- liftIO $ Git.useIndex f - e <- liftIO $ doesFileExist f - unless e $ liftIO $ genIndex g + unless bootstrapping $ do + e <- liftIO $ doesFileExist f + unless e $ liftIO $ genIndex g r <- a - liftIO $ Git.useDefaultIndex + liftIO reset return r withIndexUpdate :: Annex a -> Annex a @@ -121,11 +124,8 @@ create = do inorigin <- refexists origin if inorigin then liftIO $ Git.run g "branch" [Param name, Param origin] - else liftIO $ do - let f = index g - liftIO $ Git.useIndex f - GitUnionMerge.commit g "branch created" fullname [] - liftIO $ Git.useDefaultIndex + else withIndex' True $ + liftIO $ GitUnionMerge.commit g "branch created" fullname [] where origin = "origin/" ++ name refexists ref = do |