diff options
-rw-r--r-- | Command/Map.hs | 14 | ||||
-rw-r--r-- | debian/changelog | 2 |
2 files changed, 12 insertions, 4 deletions
diff --git a/Command/Map.hs b/Command/Map.hs index 64137ebe3..e7789bdac 100644 --- a/Command/Map.hs +++ b/Command/Map.hs @@ -15,6 +15,7 @@ import qualified Git import qualified Git.Url import qualified Git.Config import qualified Git.Construct +import qualified Remote import qualified Annex import Annex.UUID import Logs.UUID @@ -166,9 +167,8 @@ absRepo reference r {- Checks if two repos are the same. -} same :: Git.Repo -> Git.Repo -> Bool same a b - | both Git.repoIsSsh = matching Git.Url.authority && matching Git.repoPath - | both Git.repoIsUrl && neither Git.repoIsSsh = matching show - | neither Git.repoIsSsh = matching Git.repoPath + | both Git.repoIsUrl = matching Git.Url.scheme && matching Git.Url.authority && matching Git.repoPath + | neither Git.repoIsUrl = matching Git.repoPath | otherwise = False where matching t = t a == t b @@ -194,7 +194,13 @@ scan r = do tryScan :: Git.Repo -> Annex (Maybe Git.Repo) tryScan r | Git.repoIsSsh r = sshscan - | Git.repoIsUrl r = return Nothing + | Git.repoIsUrl r = case Git.remoteName r of + -- Can't scan a non-ssh url, so use any cached uuid for it. + Just n -> Just <$> (either + (const (pure r)) + (liftIO . setUUID r . Remote.uuid) + =<< Remote.byName' n) + Nothing -> return $ Just r | otherwise = liftIO $ safely $ Git.Config.read r where pipedconfig pcmd params = liftIO $ safely $ diff --git a/debian/changelog b/debian/changelog index 4231f9989..9c9b2c7c9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,8 @@ git-annex (5.20151117) UNRELEASED; urgency=medium * Display progress meter in -J mode when copying from a local git repo, to a local git repo, and from a remote git repo. * Display progress meter in -J mode when downloading from the web. + * map: Improve display of git remotes with non-ssh urls, including http + and gcrypt. -- Joey Hess <id@joeyh.name> Mon, 16 Nov 2015 16:49:34 -0400 |