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:
parent
3e07780bf8
commit
9fa9214106
6 changed files with 44 additions and 8 deletions
|
@ -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
|
||||
|
|
|
@ -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. -}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue