summaryrefslogtreecommitdiff
path: root/Git
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-07-06 14:21:43 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-07-06 14:21:43 -0400
commit620118676391dbd0b296db4d4bf28574c18b9a3c (patch)
treef96b0b51166c531bfc8d75a9f5bce0557f2cc3b0 /Git
parent2ea34c47dd9819111f3cbaa2ce848581d286c05c (diff)
refactor ls-tree params
All in one place to avoid bugs like 2ea34c47dd9819111f3cbaa2ce848581d286c05c
Diffstat (limited to 'Git')
-rw-r--r--Git/LsTree.hs11
-rw-r--r--Git/Repair.hs2
2 files changed, 7 insertions, 6 deletions
diff --git a/Git/LsTree.hs b/Git/LsTree.hs
index bce635096..1ed62477e 100644
--- a/Git/LsTree.hs
+++ b/Git/LsTree.hs
@@ -34,16 +34,17 @@ data TreeItem = TreeItem
- with lazy output. -}
lsTree :: Ref -> Repo -> IO [TreeItem]
lsTree t repo = map parseLsTree
- <$> pipeNullSplitZombie (lsTreeParams t) repo
+ <$> pipeNullSplitZombie (lsTreeParams t []) repo
-lsTreeParams :: Ref -> [CommandParam]
-lsTreeParams t =
+lsTreeParams :: Ref -> [CommandParam] -> [CommandParam]
+lsTreeParams r ps =
[ Param "ls-tree"
, Param "--full-tree"
, Param "-z"
, Param "-r"
- , Param "--"
- , File $ fromRef t
+ ] ++ ps ++
+ [ Param "--"
+ , File $ fromRef r
]
{- Lists specified files in a tree. -}
diff --git a/Git/Repair.hs b/Git/Repair.hs
index 46cf22123..b441f1337 100644
--- a/Git/Repair.hs
+++ b/Git/Repair.hs
@@ -341,7 +341,7 @@ verifyTree :: MissingObjects -> Sha -> Repo -> IO Bool
verifyTree missing treesha r
| S.member treesha missing = return False
| otherwise = do
- (ls, cleanup) <- pipeNullSplit (LsTree.lsTreeParams treesha) r
+ (ls, cleanup) <- pipeNullSplit (LsTree.lsTreeParams treesha []) r
let objshas = map (extractSha . LsTree.sha . LsTree.parseLsTree) ls
if any isNothing objshas || any (`S.member` missing) (catMaybes objshas)
then do