diff options
author | Joey Hess <joeyh@joeyh.name> | 2016-11-15 21:29:54 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2016-11-15 21:29:54 -0400 |
commit | 381766efcdddb4c8706408a90c515470a6aa43a7 (patch) | |
tree | dda693b36724839ff2daff0e0766b7bdd883ea2c /Command/EnableRemote.hs | |
parent | 27fafd61c39f8436e19e8fd449b5851ead10bbd1 (diff) |
Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors.
ghc 8 added backtraces on uncaught errors. This is great, but git-annex was
using error in many places for a error message targeted at the user, in
some known problem case. A backtrace only confuses such a message, so omit it.
Notably, commands like git annex drop that failed due to eg, numcopies,
used to use error, so had a backtrace.
This commit was sponsored by Ethan Aubin.
Diffstat (limited to 'Command/EnableRemote.hs')
-rw-r--r-- | Command/EnableRemote.hs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Command/EnableRemote.hs b/Command/EnableRemote.hs index dc3e7bc56..e1af8bb7a 100644 --- a/Command/EnableRemote.hs +++ b/Command/EnableRemote.hs @@ -63,7 +63,7 @@ startSpecialRemote name config Nothing = do _ -> unknownNameError "Unknown remote name." startSpecialRemote name config (Just (u, c)) = do let fullconfig = config `M.union` c - t <- either error return (Annex.SpecialRemote.findType fullconfig) + t <- either giveup return (Annex.SpecialRemote.findType fullconfig) showStart "enableremote" name gc <- maybe def Remote.gitconfig <$> Remote.byUUID u next $ performSpecialRemote t u fullconfig gc @@ -94,7 +94,7 @@ unknownNameError prefix = do disabledremotes <- filterM isdisabled =<< Annex.fromRepo Git.remotes let remotesmsg = unlines $ map ("\t" ++) $ mapMaybe Git.remoteName disabledremotes - error $ concat $ filter (not . null) [prefix ++ "\n", remotesmsg, specialmsg] + giveup $ concat $ filter (not . null) [prefix ++ "\n", remotesmsg, specialmsg] where isdisabled r = anyM id [ (==) NoUUID <$> getRepoUUID r |