diff options
-rw-r--r-- | Command/Map.hs | 9 | ||||
-rw-r--r-- | debian/changelog | 7 |
2 files changed, 12 insertions, 4 deletions
diff --git a/Command/Map.hs b/Command/Map.hs index 8755bc7c2..6b1e8d5bb 100644 --- a/Command/Map.hs +++ b/Command/Map.hs @@ -138,15 +138,16 @@ spider' (r:rs) known -- The remotes will be relative to r', and need to be -- made absolute for later use. - let remotes = map (absRepo r') (Git.remotes r') + remotes <- mapM (absRepo r') (Git.remotes r') let r'' = Git.remotesAdd r' remotes spider' (rs ++ remotes) (r'':known) -absRepo :: Git.Repo -> Git.Repo -> Git.Repo +{- Converts repos to a common absolute form. -} +absRepo :: Git.Repo -> Git.Repo -> Annex Git.Repo absRepo reference r - | Git.repoIsUrl reference = Git.localToUrl reference r - | otherwise = r + | Git.repoIsUrl reference = return $ Git.localToUrl reference r + | otherwise = liftIO $ Git.repoFromAbsPath =<< absPath (Git.workTree r) {- Checks if two repos are the same. -} same :: Git.Repo -> Git.Repo -> Bool diff --git a/debian/changelog b/debian/changelog index 41c251b84..7feb8f8ca 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +git-annex (3.20111204) UNRELEASED; urgency=low + + * map: Fix a failure to detect a loop when both repositories are local + and refer to each other with relative paths. + + -- Joey Hess <joeyh@debian.org> Sun, 04 Dec 2011 12:22:37 -0400 + git-annex (3.20111203) unstable; urgency=low * The VFAT filesystem on recent versions of Linux, when mounted with |