diff options
author | Joey Hess <joey@kitenet.net> | 2012-12-18 17:15:16 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-12-18 17:15:16 -0400 |
commit | ea7dc8c893299331684ac0f68b78e96ad037baef (patch) | |
tree | 0953358a62c7c9e7dc7aa3de6c733d702f114606 /Command/Sync.hs | |
parent | 845de8f36631f8bb18abba43d00e44fa38e91cbf (diff) |
partial and incomplete automatic merging in direct mode
Handles our file right, but not theirs.
Diffstat (limited to 'Command/Sync.hs')
-rw-r--r-- | Command/Sync.hs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/Command/Sync.hs b/Command/Sync.hs index 2d1b2fb9c..d6736a616 100644 --- a/Command/Sync.hs +++ b/Command/Sync.hs @@ -15,6 +15,7 @@ import qualified Annex import qualified Annex.Branch import qualified Annex.Queue import Annex.Content +import Annex.Content.Direct import Annex.Direct import Annex.CatFile import qualified Git.Command @@ -234,7 +235,8 @@ resolveMerge' :: LsFiles.Unmerged -> Annex Bool resolveMerge' u | issymlink LsFiles.valUs && issymlink LsFiles.valThem = withKey LsFiles.valUs $ \keyUs -> - withKey LsFiles.valThem $ \keyThem -> go keyUs keyThem + withKey LsFiles.valThem $ \keyThem -> do + go keyUs keyThem | otherwise = return False where go keyUs keyThem @@ -242,7 +244,10 @@ resolveMerge' u makelink keyUs return True | otherwise = do - liftIO $ nukeFile file + ifM isDirect + ( maybe noop (\k -> removeDirect k file) keyUs + , liftIO $ nukeFile file + ) Annex.Queue.addCommand "rm" [Params "--quiet -f --"] [file] makelink keyUs makelink keyThem @@ -257,6 +262,8 @@ resolveMerge' u nukeFile dest createSymbolicLink l dest Annex.Queue.addCommand "add" [Param "--force", Param "--"] [dest] + whenM (isDirect) $ + toDirect key dest makelink _ = noop withKey select a = do let msha = select $ LsFiles.unmergedSha u |