pass -c option on to all git commands run

The -c option now not only modifies the git configuration seen by
git-annex, but it is passed along to every git command git-annex runs.

This was easy to plumb through because gitCommandLine is already used to
construct every git command line, to add --git-dir and --work-tree
This commit is contained in:
Joey Hess 2013-11-05 13:38:37 -04:00
parent 2eeb54a107
commit c2862d9585
5 changed files with 13 additions and 3 deletions

View file

@ -11,6 +11,7 @@ import System.Console.GetOpt
import Common.Annex
import qualified Git.Config
import Git.Types
import Command
import Types.TrustLevel
import qualified Annex
@ -59,12 +60,14 @@ options = Option.common ++
"Trust Amazon Glacier inventory"
] ++ Option.matcher
where
trustArg t = ReqArg (Remote.forceTrust t) paramRemote
setnumcopies v = maybe noop
(\n -> Annex.changeState $ \s -> s { Annex.forcenumcopies = Just n })
(readish v)
setuseragent v = Annex.changeState $ \s -> s { Annex.useragent = Just v }
setgitconfig v = Annex.changeGitRepo =<< inRepo (Git.Config.store v)
trustArg t = ReqArg (Remote.forceTrust t) paramRemote
setgitconfig v = inRepo (Git.Config.store v)
>>= pure . (\r -> r { gitGlobalOpts = gitGlobalOpts r ++ [Param "-c", Param v] })
>>= Annex.changeGitRepo
keyOptions :: [Option]
keyOptions =