diff options
Diffstat (limited to 'Git')
-rw-r--r-- | Git/Tree.hs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/Git/Tree.hs b/Git/Tree.hs index cfd5b910d..65c3d713a 100644 --- a/Git/Tree.hs +++ b/Git/Tree.hs @@ -184,10 +184,11 @@ adjustTree adjusttreeitem addtreeitems removefiles r repo = Just TreeObject -> do (sl, modified, is') <- go h False [] (beneathSubTree i) is sl' <- adjustlist h (inTree i) (beneathSubTree i) sl - subtree <- if modified || sl' /= sl + let slmodified = sl' /= sl + subtree <- if modified || slmodified then liftIO $ recordSubTree h $ NewSubTree (LsTree.file i) sl' else return $ RecordedSubTree (LsTree.file i) (LsTree.sha i) [] - let !modified' = modified || wasmodified + let !modified' = modified || slmodified || wasmodified go h modified' (subtree : c) intree is' _ -> error ("unexpected object type \"" ++ LsTree.typeobj i ++ "\"") | otherwise = return (c, wasmodified, i:is) |