fix git ls-tree parser
File mode is octal not decimal. This broke in the conversion to attoparsec. (I've submitted the content of Utility.Attoparsec to the attoparsec developers.) Test suite passes 100% now.
This commit is contained in:
parent
4aaef14c61
commit
f39f018ee0
5 changed files with 59 additions and 3 deletions
|
@ -24,6 +24,7 @@ import Git.Command
|
|||
import Git.Sha
|
||||
import Git.FilePath
|
||||
import qualified Git.Filename
|
||||
import Utility.Attoparsec
|
||||
|
||||
import Numeric
|
||||
import Data.Either
|
||||
|
@ -90,7 +91,7 @@ parseLsTree b = case A.parse parserLsTree b of
|
|||
parserLsTree :: A.Parser TreeItem
|
||||
parserLsTree = TreeItem
|
||||
-- mode
|
||||
<$> A8.decimal
|
||||
<$> octal
|
||||
<* A8.char ' '
|
||||
-- type
|
||||
<*> A.takeTill (== 32)
|
||||
|
|
|
@ -112,7 +112,7 @@ fmtObjectType TreeObject = "tree"
|
|||
|
||||
{- Types of items in a tree. -}
|
||||
data TreeItemType = TreeFile | TreeExecutable | TreeSymlink | TreeSubmodule
|
||||
deriving (Eq)
|
||||
deriving (Eq, Show)
|
||||
|
||||
{- Git uses magic numbers to denote the type of a tree item. -}
|
||||
readTreeItemType :: S.ByteString -> Maybe TreeItemType
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue