update cached uuids if it's noticed they changed

This commit is contained in:
Joey Hess 2010-10-14 14:22:05 -04:00
parent a200761e66
commit 65e4f9cc73

23
UUID.hs
View file

@ -41,22 +41,21 @@ genUUID = liftIO $ pOpen ReadFromPipe "uuid" ["-m"] $ \h -> hGetLine h
getUUID :: Git.Repo -> Annex UUID getUUID :: Git.Repo -> Annex UUID
getUUID r = do getUUID r = do
g <- Annex.gitRepo g <- Annex.gitRepo
let uuid = cached r g
if (uuid /= "") let c = cached r g
then return $ uuid let u = uncached r
else do
let uuid = uncached r if (c /= u && u /= "")
if (uuid /= "") then do
then do updatecache g r u
updatecache r g uuid return u
return uuid else return c
else return ""
where where
uncached r = Git.configGet r "annex.uuid" "" uncached r = Git.configGet r "annex.uuid" ""
cached r g = Git.configGet g (cachekey r) "" cached r g = Git.configGet g (cachekey r) ""
updatecache r g uuid = do updatecache g r u = do
if (g /= r) if (g /= r)
then setConfig (cachekey r) uuid then setConfig (cachekey r) u
else return () else return ()
cachekey r = "remote." ++ (Git.repoRemoteName r) ++ ".annex-uuid" cachekey r = "remote." ++ (Git.repoRemoteName r) ++ ".annex-uuid"