summaryrefslogtreecommitdiff
path: root/Command/Sync.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-05-26 18:32:11 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-05-26 18:32:11 -0400
commit52ec7a96752c5aa03749ff945a00371f7a7d22c2 (patch)
tree3d33cf0318166d67d4834583db877227257569d8 /Command/Sync.hs
parent029b25dc0d4ac6b035eedfedb44fdfe7bb35a580 (diff)
fix merge conflict resolution when both sides have the same key
Still need to git rm the old file so git accepts the merge is resolved.
Diffstat (limited to 'Command/Sync.hs')
-rw-r--r--Command/Sync.hs14
1 files changed, 7 insertions, 7 deletions
diff --git a/Command/Sync.hs b/Command/Sync.hs
index 96aae888b..091431bda 100644
--- a/Command/Sync.hs
+++ b/Command/Sync.hs
@@ -248,8 +248,13 @@ resolveMerge' :: LsFiles.Unmerged -> Annex Bool
resolveMerge' u
| issymlink LsFiles.valUs && issymlink LsFiles.valThem =
withKey LsFiles.valUs $ \keyUs ->
- withKey LsFiles.valThem $ \keyThem -> do
- go keyUs keyThem
+ withKey LsFiles.valThem $ \keyThem -> do
+ ifM isDirect
+ ( maybe noop (\k -> removeDirect k file) keyUs
+ , liftIO $ nukeFile file
+ )
+ Annex.Queue.addCommand "rm" [Params "--quiet -f --"] [file]
+ go keyUs keyThem
| otherwise = return False
where
go keyUs keyThem
@@ -257,11 +262,6 @@ resolveMerge' u
makelink keyUs
return True
| otherwise = do
- ifM isDirect
- ( maybe noop (\k -> removeDirect k file) keyUs
- , liftIO $ nukeFile file
- )
- Annex.Queue.addCommand "rm" [Params "--quiet -f --"] [file]
makelink keyUs
makelink keyThem
return True