diff options
author | Joey Hess <joeyh@joeyh.name> | 2015-06-01 13:52:23 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2015-06-01 13:52:23 -0400 |
commit | 39c13f91004b41166b786785083e78b34df0c48f (patch) | |
tree | bf5ea0acf27c9075a63d3b23b970c3ea44ecee64 /Command | |
parent | 3a9ca30fa8740a57ea477243498339f9738102d6 (diff) |
remove Params constructor from Utility.SafeCommand
This removes a bit of complexity, and should make things faster
(avoids tokenizing Params string), and probably involve less garbage
collection.
In a few places, it was useful to use Params to avoid needing a list,
but that is easily avoided.
Problems noticed while doing this conversion:
* Some uses of Params "oneword" which was entirely unnecessary
overhead.
* A few places that built up a list of parameters with ++
and then used Params to split it!
Test suite passes.
Diffstat (limited to 'Command')
-rw-r--r-- | Command/Log.hs | 6 | ||||
-rw-r--r-- | Command/Unannex.hs | 18 | ||||
-rw-r--r-- | Command/Uninit.hs | 2 |
3 files changed, 22 insertions, 4 deletions
diff --git a/Command/Log.hs b/Command/Log.hs index 671c9d674..9ee7f8543 100644 --- a/Command/Log.hs +++ b/Command/Log.hs @@ -148,7 +148,11 @@ getLog key os = do config <- Annex.getGitConfig let logfile = p </> locationLogFile config key inRepo $ pipeNullSplitZombie $ - [ Params "log -z --pretty=format:%ct --raw --abbrev=40" + [ Param "log" + , Param "-z" + , Param "--pretty=format:%ct" + , Param "-raw" + , Param "--abbrev=40" , Param "--remove-empty" ] ++ os ++ [ Param $ Git.fromRef Annex.Branch.fullname diff --git a/Command/Unannex.hs b/Command/Unannex.hs index 4b803401e..0d88148c8 100644 --- a/Command/Unannex.hs +++ b/Command/Unannex.hs @@ -72,7 +72,14 @@ start file key = stopUnless (inAnnex key) $ do performIndirect :: FilePath -> Key -> CommandPerform performIndirect file key = do liftIO $ removeFile file - inRepo $ Git.Command.run [Params "rm --cached --force --quiet --", File file] + inRepo $ Git.Command.run + [ Param "rm" + , Param "--cached" + , Param "--force" + , Param "--quiet" + , Param "--" + , File file + ] next $ cleanupIndirect file key cleanupIndirect :: FilePath -> Key -> CommandCleanup @@ -108,7 +115,14 @@ cleanupIndirect file key = do performDirect :: FilePath -> Key -> CommandPerform performDirect file key = do -- --force is needed when the file is not committed - inRepo $ Git.Command.run [Params "rm --cached --force --quiet --", File file] + inRepo $ Git.Command.run + [ Param "rm" + , Param "--cached" + , Param "--force" + , Param "--quiet" + , Param "--" + , File file + ] next $ cleanupDirect file key {- The direct mode file is not touched during unannex, so the content diff --git a/Command/Uninit.hs b/Command/Uninit.hs index 28c169919..4a918070c 100644 --- a/Command/Uninit.hs +++ b/Command/Uninit.hs @@ -37,7 +37,7 @@ check = do where current_branch = Git.Ref . Prelude.head . lines <$> revhead revhead = inRepo $ Git.Command.pipeReadStrict - [Params "rev-parse --abbrev-ref HEAD"] + [Param "rev-parse", Param "--abbrev-ref", Param "HEAD"] seek :: CommandSeek seek ps = do |