summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-03-04 23:27:18 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-03-04 23:27:18 -0400
commit6f4e0fa4a08b5abccbbfd363892f084faa6a2c39 (patch)
tree109b7f0b60c7951120d5391ec4eb9b4ec69d2ba9
parent5123a1a83aa3b954fe67629508bab5ccea0e4148 (diff)
print a warning message when garbage is received from configlist
-rw-r--r--Messages.hs7
-rw-r--r--Remote/Git.hs11
2 files changed, 16 insertions, 2 deletions
diff --git a/Messages.hs b/Messages.hs
index 63c628108..d79c91aa0 100644
--- a/Messages.hs
+++ b/Messages.hs
@@ -23,6 +23,7 @@ module Messages (
showEndResult,
showErr,
warning,
+ warningIO,
fileNotFound,
indent,
maybeShowJSON,
@@ -158,6 +159,12 @@ warning' w = do
hFlush stdout
hPutStrLn stderr w
+warningIO :: String -> IO ()
+warningIO w = do
+ putStr "\n"
+ hFlush stdout
+ hPutStrLn stderr w
+
{- Displays a warning one time about a file the user specified not existing. -}
fileNotFound :: FilePath -> Annex ()
fileNotFound file = do
diff --git a/Remote/Git.hs b/Remote/Git.hs
index 7f9f95e2a..d39e0afe2 100644
--- a/Remote/Git.hs
+++ b/Remote/Git.hs
@@ -161,8 +161,15 @@ tryGitConfigRead r
=<< liftIO (try a :: IO (Either SomeException Git.Repo))
pipedconfig cmd params =
- withHandle StdoutHandle createProcessSuccess p $
- Git.Config.hRead r
+ withHandle StdoutHandle createProcessSuccess p $ \h -> do
+ fileEncoding h
+ val <- hGetContentsStrict h
+ r' <- Git.Config.store val r
+ when (getUncachedUUID r' == NoUUID && not (null val)) $ do
+ warningIO $ "Failed to get annex.uuid configuration of repository " ++ Git.repoDescribe r
+ warningIO $ "Instead, got: " ++ show val
+ warningIO $ "This is unexpected; please check the network transport!"
+ return r'
where
p = proc cmd $ toCommand params