aboutsummaryrefslogtreecommitdiff
path: root/Logs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2017-02-03 13:40:14 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2017-02-03 13:58:53 -0400
commit4cded2bc85d530dd335738cb870daf3a2d4e4a2f (patch)
tree6b84dd8cf04f9fa17d3de55c17e4139278f398bd /Logs
parentc35b2728cffdb98fa3b962505ebb0f1d2304ecce (diff)
annex.autocommit can be configured via git-annex config
... to control the default behavior in all clones of a repository. This includes a new Configurable data type, so the GitConfig type indicates which values can be configured this way. The implementation should be quite efficient; the config log is only read once, and only when a Configurable value has not already been set by git-config. Indeed, it would be nice in the future to extend this, so that git-config is itself only read on demand. Some commands may not need to look at the git configuration at all. This commit was sponsored by Trenton Cronholm on Patreon.
Diffstat (limited to 'Logs')
-rw-r--r--Logs/Config.hs16
1 files changed, 5 insertions, 11 deletions
diff --git a/Logs/Config.hs b/Logs/Config.hs
index fc26db939..b16a64dba 100644
--- a/Logs/Config.hs
+++ b/Logs/Config.hs
@@ -1,4 +1,4 @@
-{- git-annex config log
+{- git-annex repository-global config log
-
- Copyright 2017 Joey Hess <id@joeyh.name>
-
@@ -15,7 +15,6 @@ module Logs.Config (
) where
import Annex.Common
-import qualified Annex
import Logs
import Logs.MapLog
import qualified Annex.Branch
@@ -44,18 +43,13 @@ unsetGlobalConfig name = do
when (curr /= Nothing) $
setGlobalConfig' name "" -- set to empty string to unset
+-- Reads the global config log every time.
getGlobalConfig :: ConfigName -> Annex (Maybe ConfigValue)
-getGlobalConfig name = do
- m <- maybe loadGlobalConfig return
- =<< Annex.getState Annex.globalconfig
- return (M.lookup name m)
+getGlobalConfig name = M.lookup name <$> loadGlobalConfig
parseGlobalConfig :: String -> MapLog ConfigName ConfigValue
parseGlobalConfig = parseMapLog Just Just
loadGlobalConfig :: Annex (M.Map ConfigName ConfigValue)
-loadGlobalConfig = do
- m <- M.filter (not . null) . simpleMap . parseGlobalConfig
- <$> Annex.Branch.get configLog
- Annex.changeState $ \s -> s { Annex.globalconfig = Just m }
- return m
+loadGlobalConfig = M.filter (not . null) . simpleMap . parseGlobalConfig
+ <$> Annex.Branch.get configLog