git subcommand cleanup
Pass subcommand as a regular param, which allows passing git parameters like -c before it. This was already done in the pipeing set of functions, but not the command running set.
This commit is contained in:
parent
3a783b4a3a
commit
0c13d3065e
20 changed files with 95 additions and 76 deletions
|
@ -30,8 +30,12 @@ perform :: CommandPerform
|
|||
perform = do
|
||||
showStart "commit" ""
|
||||
showOutput
|
||||
_ <- inRepo $ Git.Command.runBool "commit"
|
||||
[Param "-a", Param "-m", Param "commit before switching to direct mode"]
|
||||
_ <- inRepo $ Git.Command.runBool
|
||||
[ Param "commit"
|
||||
, Param "-a"
|
||||
, Param "-m"
|
||||
, Param "commit before switching to direct mode"
|
||||
]
|
||||
showEndOk
|
||||
|
||||
top <- fromRepo Git.repoPath
|
||||
|
|
|
@ -43,8 +43,11 @@ perform = do
|
|||
showStart "commit" ""
|
||||
whenM (stageDirect) $ do
|
||||
showOutput
|
||||
void $ inRepo $ Git.Command.runBool "commit"
|
||||
[Param "-m", Param "commit before switching to indirect mode"]
|
||||
void $ inRepo $ Git.Command.runBool
|
||||
[ Param "commit"
|
||||
, Param "-m"
|
||||
, Param "commit before switching to indirect mode"
|
||||
]
|
||||
showEndOk
|
||||
|
||||
-- Note that we set indirect mode early, so that we can use
|
||||
|
|
|
@ -91,7 +91,7 @@ commit = next $ next $ do
|
|||
showOutput
|
||||
Annex.Branch.commit "update"
|
||||
-- Commit will fail when the tree is clean, so ignore failure.
|
||||
_ <- inRepo $ Git.Command.runBool "commit" $ ps ++
|
||||
_ <- inRepo $ Git.Command.runBool $ (Param "commit") : ps ++
|
||||
[Param "-m", Param "git-annex automatic sync"]
|
||||
return True
|
||||
|
||||
|
@ -117,8 +117,9 @@ updateBranch :: Git.Ref -> Git.Repo -> IO ()
|
|||
updateBranch syncbranch g =
|
||||
unlessM go $ error $ "failed to update " ++ show syncbranch
|
||||
where
|
||||
go = Git.Command.runBool "branch"
|
||||
[ Param "-f"
|
||||
go = Git.Command.runBool
|
||||
[ Param "branch"
|
||||
, Param "-f"
|
||||
, Param $ show $ Git.Ref.base syncbranch
|
||||
] g
|
||||
|
||||
|
@ -130,8 +131,8 @@ pullRemote remote branch = do
|
|||
stopUnless fetch $
|
||||
next $ mergeRemote remote (Just branch)
|
||||
where
|
||||
fetch = inRepo $ Git.Command.runBool "fetch"
|
||||
[Param $ Remote.name remote]
|
||||
fetch = inRepo $ Git.Command.runBool
|
||||
[Param "fetch", Param $ Remote.name remote]
|
||||
|
||||
{- The remote probably has both a master and a synced/master branch.
|
||||
- Which to merge from? Well, the master has whatever latest changes
|
||||
|
@ -162,8 +163,9 @@ pushRemote remote branch = go =<< needpush
|
|||
|
||||
pushBranch :: Remote -> Git.Ref -> Git.Repo -> IO Bool
|
||||
pushBranch remote branch g =
|
||||
Git.Command.runBool "push"
|
||||
[ Param $ Remote.name remote
|
||||
Git.Command.runBool
|
||||
[ Param "push"
|
||||
, Param $ Remote.name remote
|
||||
, Param $ refspec Annex.Branch.name
|
||||
, Param $ refspec branch
|
||||
] g
|
||||
|
@ -233,8 +235,11 @@ resolveMerge = do
|
|||
|
||||
when merged $ do
|
||||
Annex.Queue.flush
|
||||
void $ inRepo $ Git.Command.runBool "commit"
|
||||
[Param "-m", Param "git-annex automatic merge conflict fix"]
|
||||
void $ inRepo $ Git.Command.runBool
|
||||
[ Param "commit"
|
||||
, Param "-m"
|
||||
, Param "git-annex automatic merge conflict fix"
|
||||
]
|
||||
return merged
|
||||
|
||||
resolveMerge' :: LsFiles.Unmerged -> Annex Bool
|
||||
|
|
|
@ -34,7 +34,7 @@ cleanup :: FilePath -> Key -> CommandCleanup
|
|||
cleanup file key = do
|
||||
liftIO $ removeFile file
|
||||
-- git rm deletes empty directory without --cached
|
||||
inRepo $ Git.Command.run "rm" [Params "--cached --quiet --", File file]
|
||||
inRepo $ Git.Command.run [Params "rm --cached --quiet --", File file]
|
||||
|
||||
-- If the file was already committed, it is now staged for removal.
|
||||
-- Commit that removal now, to avoid later confusing the
|
||||
|
@ -42,10 +42,12 @@ cleanup file key = do
|
|||
-- git as a normal, non-annexed file.
|
||||
(s, clean) <- inRepo $ LsFiles.staged [file]
|
||||
when (not $ null s) $ do
|
||||
inRepo $ Git.Command.run "commit" [
|
||||
Param "-q",
|
||||
Params "-m", Param "content removed from git annex",
|
||||
Param "--", File file]
|
||||
inRepo $ Git.Command.run
|
||||
[ Param "commit"
|
||||
, Param "-q"
|
||||
, Param "-m", Param "content removed from git annex"
|
||||
, Param "--", File file
|
||||
]
|
||||
void $ liftIO clean
|
||||
|
||||
ifM (Annex.getState Annex.fast)
|
||||
|
|
|
@ -67,6 +67,6 @@ start = next $ next $ do
|
|||
liftIO $ removeDirectoryRecursive annexdir
|
||||
-- avoid normal shutdown
|
||||
saveState False
|
||||
inRepo $ Git.Command.run "branch"
|
||||
[Param "-D", Param $ show Annex.Branch.name]
|
||||
inRepo $ Git.Command.run
|
||||
[Param "branch", Param "-D", Param $ show Annex.Branch.name]
|
||||
liftIO exitSuccess
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue