summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-12-25 14:10:07 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-12-25 14:10:07 -0400
commitbf3472bb1409d9879272471420d6724ee4ed096b (patch)
tree2a8e96b9c2130298897b6adcf2ac3dabd421ce71
parent399b31f5f3adfe2b9cd662c8b0e8127067568364 (diff)
use sync command merge engine in assistant
To handle direct mode merging.
-rw-r--r--Assistant/Threads/Merger.hs5
-rw-r--r--Command/Sync.hs2
-rw-r--r--doc/design/assistant/desymlink.mdwn6
3 files changed, 9 insertions, 4 deletions
diff --git a/Assistant/Threads/Merger.hs b/Assistant/Threads/Merger.hs
index 105f0cc9f..c581f8087 100644
--- a/Assistant/Threads/Merger.hs
+++ b/Assistant/Threads/Merger.hs
@@ -14,8 +14,8 @@ import Utility.DirWatcher
import Utility.Types.DirWatcher
import qualified Annex.Branch
import qualified Git
-import qualified Git.Merge
import qualified Git.Branch
+import qualified Command.Sync
thisThread :: ThreadName
thisThread = "Merger"
@@ -80,8 +80,7 @@ onAdd file
[ "merging", show changedbranch
, "into", show current
]
- void $ liftAnnex $ inRepo $
- Git.Merge.mergeNonInteractive changedbranch
+ void $ liftAnnex $ Command.Sync.mergeFrom changedbranch
mergecurrent _ = noop
equivBranches :: Git.Ref -> Git.Ref -> Bool
diff --git a/Command/Sync.hs b/Command/Sync.hs
index e70524ee3..f7241ce82 100644
--- a/Command/Sync.hs
+++ b/Command/Sync.hs
@@ -1,7 +1,7 @@
{- git-annex command
-
- - Copyright 2011 Joey Hess <joey@kitenet.net>
- Copyright 2011 Joachim Breitner <mail@joachim-breitner.de>
+ - Copyright 2011,2012 Joey Hess <joey@kitenet.net>
-
- Licensed under the GNU GPL version 3 or higher.
-}
diff --git a/doc/design/assistant/desymlink.mdwn b/doc/design/assistant/desymlink.mdwn
index f2ba914bc..45229f3f3 100644
--- a/doc/design/assistant/desymlink.mdwn
+++ b/doc/design/assistant/desymlink.mdwn
@@ -87,6 +87,12 @@ is converted to a real file when it becomes present.
* Deal with files changing as they're being transferred from a direct mode
repository to another git repository. The remote repo currently will
accept the bad data and update the location log to say it has the key.
+* When the assistant adds a modified direct mode file, it leaves behind
+ an associated files mapping to the file for the old key as well. That
+ needs to be deleted (sync deletes it in the similar situation).
+* kqueue does not deliver an event when an existing file is modified;
+ need a different way to detect file modifications (possibly an OSX specific
+ interface?)
## done