A remote can have a annexUrl configured, that is used by git-annex instead of its usual url. (Similar to pushUrl.)

This commit is contained in:
Joey Hess 2011-10-14 18:17:46 -04:00
parent 3e07780bf8
commit 9fa9214106
6 changed files with 44 additions and 8 deletions

View file

@ -34,7 +34,18 @@ remote = RemoteType {
list :: Annex [Git.Repo]
list = do
g <- gitRepo
return $ Git.remotes g
let c = Git.configMap g
mapM (tweakurl c) $ Git.remotes g
where
annexurl n = "remote." ++ n ++ ".annexurl"
tweakurl c r = do
let n = fromJust $ Git.repoRemoteName r
case M.lookup (annexurl n) c of
Nothing -> return r
Just url -> do
g <- gitRepo
r' <- liftIO $ Git.genRemote g url
return $ Git.repoRemoteNameSet r' n
gen :: Git.Repo -> UUID -> Maybe RemoteConfig -> Annex (Remote Annex)
gen r u _ = do

View file

@ -24,7 +24,7 @@ findSpecialRemotes s = do
return $ map construct $ remotepairs g
where
remotepairs r = M.toList $ M.filterWithKey match $ Git.configMap r
construct (k,_) = Git.repoRemoteNameSet Git.repoFromUnknown k
construct (k,_) = Git.repoRemoteNameFromKey Git.repoFromUnknown k
match k _ = startswith "remote." k && endswith (".annex-"++s) k
{- Sets up configuration for a special remote in .git/config. -}

View file

@ -33,7 +33,7 @@ remote = RemoteType {
-- (If the web should cease to exist, remove this module and redistribute
-- a new release to the survivors by carrier pigeon.)
list :: Annex [Git.Repo]
list = return [Git.repoRemoteNameSet Git.repoFromUnknown "remote.web.dummy"]
list = return [Git.repoRemoteNameSet Git.repoFromUnknown "web"]
-- Dummy uuid for the whole web. Do not alter.
webUUID :: UUID