diff --git a/Remote.hs b/Remote.hs index 456716c6e6..22e304de37 100644 --- a/Remote.hs +++ b/Remote.hs @@ -81,7 +81,9 @@ byName' "" = return $ Left "no remote specified" byName' n = handle . filter matching <$> remoteList where handle [] = Left $ "there is no available git remote named \"" ++ n ++ "\"" - handle match = Right $ Prelude.head match + handle (match:_) + | uuid match == NoUUID = Left $ "cannot determine uuid for " ++ name match + | otherwise = Right match matching r = n == name r || toUUID n == uuid r {- Looks up a remote by name (or by UUID, or even by description), diff --git a/debian/changelog b/debian/changelog index 348aa7bc1f..8dffeca12e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -20,6 +20,9 @@ git-annex (4.20130228) UNRELEASED; urgency=low set to direct mode when it was transferred. * webapp: Proceed automatically on from "Configure jabber account" to pairing. + * Bugfix: If the UUID of a remote is not known, prevent --from, --to, + and other ways of specifying remotes by name from selecting it, + since it is not possible to sanely use it. -- Joey Hess Wed, 27 Feb 2013 23:20:40 -0400