From 376e69ec65a4c56bfc8571ffa4714de625b36bfd Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Tue, 17 Mar 2020 22:16:06 -0400 Subject: [PATCH] adjust: Propagate submodule changes back to original branch When the recorded submodule commit changes on an adjusted branch, the change is carried in the function that reverseAdjustedCommit passes for adjustTree's adjusttreeitem parameter. Update the CommitObject handling in adjustTree to consider adjusttreeitem so that a submodule change is synced back. --- Git/Tree.hs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Git/Tree.hs b/Git/Tree.hs index da05a3fa5d..9627ae9690 100644 --- a/Git/Tree.hs +++ b/Git/Tree.hs @@ -237,8 +237,12 @@ adjustTree adjusttreeitem addtreeitems resolveaddconflict removefiles r repo = let !modified' = modified || slmodified || wasmodified go h modified' (subtree : c) depth intree is' Just CommitObject -> do - let ti = TreeCommit (LsTree.file i) (LsTree.mode i) (LsTree.sha i) - go h wasmodified (ti:c) depth intree is + let ti = TreeItem (LsTree.file i) (LsTree.mode i) (LsTree.sha i) + v <- adjusttreeitem ti + let commit = tc $ fromMaybe ti v + go h wasmodified (commit:c) depth intree is + where + tc (TreeItem f m s) = TreeCommit f m s _ -> error ("unexpected object type \"" ++ decodeBS (LsTree.typeobj i) ++ "\"") | otherwise = return (c, wasmodified, i:is) -- 2.39.5