summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-01-17 21:19:00 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-01-17 21:19:00 -0400
commit293170d524af06d14f4b8b0ad7c3f092185a3e9b (patch)
treeccdbe562454c990a10878e336e006c797edc9053
parentb6aca91f02474aec8359dd5472f4ada929925f98 (diff)
sync: Automatic merge conflict resolution now stages deleted files.
-rw-r--r--Command/Sync.hs7
-rw-r--r--debian/changelog1
2 files changed, 7 insertions, 1 deletions
diff --git a/Command/Sync.hs b/Command/Sync.hs
index 61ac3802a..50e709a2d 100644
--- a/Command/Sync.hs
+++ b/Command/Sync.hs
@@ -223,11 +223,16 @@ resolveMerge = do
top <- fromRepo Git.repoPath
(fs, cleanup) <- inRepo (LsFiles.unmerged [top])
merged <- all id <$> mapM resolveMerge' fs
+ void $ liftIO cleanup
+
+ (deleted, cleanup2) <- inRepo (LsFiles.deleted [top])
+ Annex.Queue.addCommand "rm" [Params "--quiet -f --"] deleted
+ void $ liftIO cleanup2
+
when merged $ do
Annex.Queue.flush
void $ inRepo $ Git.Command.runBool "commit"
[Param "-m", Param "git-annex automatic merge conflict fix"]
- void $ liftIO cleanup
return merged
resolveMerge' :: LsFiles.Unmerged -> Annex Bool
diff --git a/debian/changelog b/debian/changelog
index b1a614600..f71a5ab63 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -13,6 +13,7 @@ git-annex (3.20130115) UNRELEASED; urgency=low
* bugfix: Union merges involving two or more repositories could sometimes
result in data from one repository getting lost. This could result
in the location log data becoming wrong, and fsck being needed to fix it.
+ * sync: Automatic merge conflict resolution now stages deleted files.
* Depend on git 1.7.7.6 for --no-edit. Closes: #698399
-- Joey Hess <joeyh@debian.org> Mon, 14 Jan 2013 18:35:01 -0400