diff options
author | Joey Hess <joey@kitenet.net> | 2010-11-28 14:19:43 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-11-28 14:21:30 -0400 |
commit | 92e5d28ca83d057a3d8f5d7d30806642de699172 (patch) | |
tree | a4021ec369a077dd3916c98e3ebfd9e368302afc /Command | |
parent | 1f9ce9e9a5f6d7eaf149f42de559cb9830c7f28e (diff) |
precommit: Optimise to avoid calling git-check-attr more than once.
Diffstat (limited to 'Command')
-rw-r--r-- | Command/Add.hs | 2 | ||||
-rw-r--r-- | Command/PreCommit.hs | 14 | ||||
-rw-r--r-- | Command/Unlock.hs | 1 |
3 files changed, 7 insertions, 10 deletions
diff --git a/Command/Add.hs b/Command/Add.hs index cf32a8d64..d141448a3 100644 --- a/Command/Add.hs +++ b/Command/Add.hs @@ -34,7 +34,7 @@ start pair@(file, _) = notAnnexed file $ do showStart "add" file return $ Just $ perform pair -perform :: (FilePath, Maybe Backend) -> SubCmdPerform +perform :: BackendFile -> SubCmdPerform perform (file, backend) = do stored <- Backend.storeFileKey file backend case stored of diff --git a/Command/PreCommit.hs b/Command/PreCommit.hs index d4e5c04b9..513d5d43f 100644 --- a/Command/PreCommit.hs +++ b/Command/PreCommit.hs @@ -11,7 +11,6 @@ import Control.Monad.State (liftIO) import Command import qualified Annex -import qualified Backend import qualified GitRepo as Git import qualified Command.Add import qualified Command.Fix @@ -20,15 +19,14 @@ import qualified Command.Fix - And, it needs to inject unlocked files into the annex. -} seek :: [SubCmdSeek] seek = [withFilesToBeCommitted Command.Fix.start, - withUnlockedFilesToBeCommitted start] + withFilesUnlockedToBeCommitted start] -start :: SubCmdStartString -start file = return $ Just $ perform file +start :: SubCmdStartBackendFile +start pair = return $ Just $ perform pair -perform :: FilePath -> SubCmdPerform -perform file = do - pairs <- Backend.chooseBackends [file] - ok <- doSubCmd $ Command.Add.start $ head pairs +perform :: BackendFile -> SubCmdPerform +perform pair@(file, _) = do + ok <- doSubCmd $ Command.Add.start pair if ok then return $ Just $ cleanup file else error $ "failed to add " ++ file ++ "; canceling commit" diff --git a/Command/Unlock.hs b/Command/Unlock.hs index 34fde819c..ff22fa84b 100644 --- a/Command/Unlock.hs +++ b/Command/Unlock.hs @@ -15,7 +15,6 @@ import qualified Annex import Types import Messages import Locations -import Utility import Core import CopyFile |