diff options
Diffstat (limited to 'Remote')
-rw-r--r-- | Remote/External.hs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/Remote/External.hs b/Remote/External.hs index 63f58204a..4220c47d7 100644 --- a/Remote/External.hs +++ b/Remote/External.hs @@ -20,6 +20,7 @@ import Git.Config (isTrue, boolConfig) import Git.Env import Remote.Helper.Special import Remote.Helper.Export +import Annex.Export import Remote.Helper.ReadOnly import Remote.Helper.Messages import Utility.Metered @@ -69,7 +70,9 @@ gen r u c gc Annex.addCleanup (RemoteCleanup u) $ stopExternal external cst <- getCost external r gc avail <- getAvailability external r gc - exportsupported <- checkExportSupported' external + exportsupported <- if exportTree c + then checkExportSupported' external + else return False let exportactions = if exportsupported then return $ ExportActions { storeExport = storeExportM external @@ -165,8 +168,9 @@ checkExportSupported c gc = do =<< newExternal externaltype NoUUID c gc checkExportSupported' :: External -> Annex Bool -checkExportSupported' external = safely $ - handleRequest external EXPORTSUPPORTED Nothing $ \resp -> case resp of +checkExportSupported' external = go `catchNonAsync` (const (return False)) + where + go = handleRequest external EXPORTSUPPORTED Nothing $ \resp -> case resp of EXPORTSUPPORTED_SUCCESS -> Just $ return True EXPORTSUPPORTED_FAILURE -> Just $ return False UNSUPPORTED_REQUEST -> Just $ return False @@ -313,7 +317,7 @@ safely a = go =<< tryNonAsync a where go (Right r) = return r go (Left e) = do - warning $ show e + toplevelWarning False (show e) return False {- Sends a Request to the external remote, and waits for it to generate |