Support hot-swapping of removable drives containing gcrypt repositories.
To support this, a core.gcrypt-id is stored by git-annex inside the git config of a local gcrypt repository, when setting it up. That is compared with the remote's cached gcrypt-id. When different, a drive has been changed. git-annex then looks up the remote config for the uuid mapped from the core.gcrypt-id, and tweaks the configuration appropriately. When there is no known config for the uuid, it will refuse to use the remote.
This commit is contained in:
parent
5aecf2b42d
commit
5fe49b98f8
15 changed files with 85 additions and 42 deletions
|
@ -36,8 +36,11 @@ setConfig (ConfigKey key) value = do
|
|||
|
||||
{- Unsets a git config setting. (Leaves it in state currently.) -}
|
||||
unsetConfig :: ConfigKey -> Annex ()
|
||||
unsetConfig (ConfigKey key) = inRepo $ Git.Command.run
|
||||
[Param "config", Param "--unset", Param key]
|
||||
unsetConfig ck@(ConfigKey key) = ifM (isJust <$> getConfigMaybe ck)
|
||||
( inRepo $ Git.Command.run
|
||||
[Param "config", Param "--unset", Param key]
|
||||
, noop -- avoid unsetting something not set; that would fail
|
||||
)
|
||||
|
||||
{- A per-remote config setting in git config. -}
|
||||
remoteConfig :: Git.Repo -> UnqualifiedConfigKey -> ConfigKey
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue