diff options
author | Joey Hess <joey@kitenet.net> | 2011-07-02 19:16:28 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-07-02 19:16:28 -0400 |
commit | f626512b07f3675f184101c4c945861381862339 (patch) | |
tree | 7f6a387e3506ca2bdefa080660fafa4e91007fda /Branch.hs | |
parent | bd5884d8dd873d6bc7a5e938afb2d835b7bd968f (diff) |
further improved git cat-file error handling
Diffstat (limited to 'Branch.hs')
-rw-r--r-- | Branch.hs | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -241,8 +241,7 @@ catFile file = do [Param "cat-file", Param "--batch"] let gitcmd = join " " ("git" : toCommand cmd) (_, from, to) <- liftIO $ hPipeBoth "sh" - -- want stderr on stdin to see error messages - ["-c", "exec " ++ gitcmd ++ " 2>&1"] + ["-c", "exec " ++ gitcmd ++ " 2>/dev/null"] setState state { catFileHandles = Just (from, to) } ask (from, to) ask (from, to) = liftIO $ do @@ -255,7 +254,9 @@ catFile file = do | length sha == Git.shaSize && blob == "blob" -> handle from size | otherwise -> empty - _ -> empty + _ + | header == want ++ " missing" -> empty + | otherwise -> error $ "unknown response from git cat-file " ++ header handle from size = case reads size of [(bytes, "")] -> readcontent from bytes _ -> empty |