optimize pre-commit in direct mode

This commit is contained in:
Joey Hess 2013-01-06 16:56:55 -04:00
parent 7888b38e3e
commit f12202f771
2 changed files with 5 additions and 5 deletions

View file

@ -11,7 +11,6 @@ import Common.Annex
import Command import Command
import qualified Command.Add import qualified Command.Add
import qualified Command.Fix import qualified Command.Fix
import Config
def :: [Command] def :: [Command]
def = [command "pre-commit" paramPaths seek "run by git pre-commit hook"] def = [command "pre-commit" paramPaths seek "run by git pre-commit hook"]
@ -20,12 +19,9 @@ def = [command "pre-commit" paramPaths seek "run by git pre-commit hook"]
- And, it needs to inject unlocked files into the annex. -} - And, it needs to inject unlocked files into the annex. -}
seek :: [CommandSeek] seek :: [CommandSeek]
seek = seek =
[ withFilesToBeCommitted $ whenNotDirect $ whenAnnexed $ Command.Fix.start [ whenNotDirect $ withFilesToBeCommitted $ whenAnnexed $ Command.Fix.start
, withFilesUnlockedToBeCommitted start] , withFilesUnlockedToBeCommitted start]
whenNotDirect :: (FilePath -> Annex (Maybe CommandPerform)) -> FilePath -> Annex (Maybe CommandPerform)
whenNotDirect a f = ifM isDirect ( stop , a f )
start :: FilePath -> CommandStart start :: FilePath -> CommandStart
start file = next $ perform file start file = next $ perform file

View file

@ -20,6 +20,7 @@ import qualified Git.Command
import qualified Git.LsFiles as LsFiles import qualified Git.LsFiles as LsFiles
import qualified Limit import qualified Limit
import qualified Option import qualified Option
import Config
seekHelper :: ([FilePath] -> Git.Repo -> IO ([FilePath], IO Bool)) -> [FilePath] -> Annex [FilePath] seekHelper :: ([FilePath] -> Git.Repo -> IO ([FilePath], IO Bool)) -> [FilePath] -> Annex [FilePath]
seekHelper a params = do seekHelper a params = do
@ -123,3 +124,6 @@ prepFiltered a fs = do
notSymlink :: FilePath -> IO Bool notSymlink :: FilePath -> IO Bool
notSymlink f = liftIO $ not . isSymbolicLink <$> getSymbolicLinkStatus f notSymlink f = liftIO $ not . isSymbolicLink <$> getSymbolicLinkStatus f
whenNotDirect :: CommandSeek -> CommandSeek
whenNotDirect a params = ifM isDirect ( return [] , a params )