remove some more !!
This commit is contained in:
parent
813b28aa49
commit
b281584422
2 changed files with 14 additions and 13 deletions
|
@ -159,11 +159,10 @@ readLog = mapMaybe (parse . lines)
|
||||||
|
|
||||||
-- Parses something like ":100644 100644 oldsha newsha M"
|
-- Parses something like ":100644 100644 oldsha newsha M"
|
||||||
parseRaw :: String -> (Git.Ref, Git.Ref)
|
parseRaw :: String -> (Git.Ref, Git.Ref)
|
||||||
parseRaw l = (Git.Ref oldsha, Git.Ref newsha)
|
parseRaw l = go $ words l
|
||||||
where
|
where
|
||||||
ws = words l
|
go (_:_:oldsha:newsha:_) = (Git.Ref oldsha, Git.Ref newsha)
|
||||||
oldsha = ws !! 2
|
go _ = error $ "unable to parse git log output: " ++ l
|
||||||
newsha = ws !! 3
|
|
||||||
|
|
||||||
parseTimeStamp :: String -> POSIXTime
|
parseTimeStamp :: String -> POSIXTime
|
||||||
parseTimeStamp = utcTimeToPOSIXSeconds . fromMaybe (error "bad timestamp") .
|
parseTimeStamp = utcTimeToPOSIXSeconds . fromMaybe (error "bad timestamp") .
|
||||||
|
|
|
@ -120,17 +120,19 @@ data InternalUnmerged = InternalUnmerged
|
||||||
|
|
||||||
parseUnmerged :: String -> Maybe InternalUnmerged
|
parseUnmerged :: String -> Maybe InternalUnmerged
|
||||||
parseUnmerged s
|
parseUnmerged s
|
||||||
| null file || length ws < 3 = Nothing
|
| null file = Nothing
|
||||||
| otherwise = do
|
| otherwise = case words metadata of
|
||||||
stage <- readish (ws !! 2) :: Maybe Int
|
(rawblobtype:rawsha:rawstage:_) -> do
|
||||||
unless (stage == 2 || stage == 3) $
|
stage <- readish rawstage :: Maybe Int
|
||||||
fail undefined -- skip stage 1
|
unless (stage == 2 || stage == 3) $
|
||||||
blobtype <- readBlobType (ws !! 0)
|
fail undefined -- skip stage 1
|
||||||
sha <- extractSha (ws !! 1)
|
blobtype <- readBlobType rawblobtype
|
||||||
return $ InternalUnmerged (stage == 2) file (Just blobtype) (Just sha)
|
sha <- extractSha rawsha
|
||||||
|
return $ InternalUnmerged (stage == 2) file
|
||||||
|
(Just blobtype) (Just sha)
|
||||||
|
_ -> Nothing
|
||||||
where
|
where
|
||||||
(metadata, file) = separate (== '\t') s
|
(metadata, file) = separate (== '\t') s
|
||||||
ws = words metadata
|
|
||||||
|
|
||||||
reduceUnmerged :: [Unmerged] -> [InternalUnmerged] -> [Unmerged]
|
reduceUnmerged :: [Unmerged] -> [InternalUnmerged] -> [Unmerged]
|
||||||
reduceUnmerged c [] = c
|
reduceUnmerged c [] = c
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue