diff options
-rw-r--r-- | Assistant/Sync.hs | 10 | ||||
-rw-r--r-- | Assistant/Threads/Merger.hs | 3 | ||||
-rw-r--r-- | CHANGELOG | 3 | ||||
-rw-r--r-- | Command/Sync.hs | 7 |
4 files changed, 11 insertions, 12 deletions
diff --git a/Assistant/Sync.hs b/Assistant/Sync.hs index 9b9e7ebe5..ff34c0656 100644 --- a/Assistant/Sync.hs +++ b/Assistant/Sync.hs @@ -21,7 +21,6 @@ import Utility.Parallel import qualified Git import qualified Git.Command import qualified Git.Ref -import qualified Git.Merge import qualified Remote import qualified Types.Remote as Remote import qualified Remote.List as Remote @@ -239,19 +238,12 @@ manualPull currentbranch remotes = do ) haddiverged <- liftAnnex Annex.Branch.forceUpdate forM_ normalremotes $ \r -> - liftAnnex $ Command.Sync.mergeRemote r currentbranch mergeConfig + liftAnnex $ Command.Sync.mergeRemote r currentbranch Command.Sync.mergeConfig u <- liftAnnex getUUID forM_ xmppremotes $ \r -> sendNetMessage $ Pushing (getXMPPClientID r) (PushRequest u) return (catMaybes failed, haddiverged) -mergeConfig :: [Git.Merge.MergeConfig] -mergeConfig = - [ Git.Merge.MergeNonInteractive - -- Pairing involves merging unrelated histories - , Git.Merge.MergeUnrelatedHistories - ] - {- Start syncing a remote, using a background thread. -} syncRemote :: Remote -> Assistant () syncRemote remote = do diff --git a/Assistant/Threads/Merger.hs b/Assistant/Threads/Merger.hs index 521e5bda6..ce0dfbcb4 100644 --- a/Assistant/Threads/Merger.hs +++ b/Assistant/Threads/Merger.hs @@ -12,7 +12,6 @@ import Assistant.TransferQueue import Assistant.BranchChange import Assistant.DaemonStatus import Assistant.ScanRemotes -import Assistant.Sync import Utility.DirWatcher import Utility.DirWatcher.Types import qualified Annex.Branch @@ -86,7 +85,7 @@ onChange file , "into", Git.fromRef b ] void $ liftAnnex $ Command.Sync.merge - currbranch mergeConfig + currbranch Command.Sync.mergeConfig Git.Branch.AutomaticCommit changedbranch mergecurrent _ = noop @@ -6,6 +6,9 @@ git-annex (6.20161112) UNRELEASED; urgency=medium if so, either use stack to build, or run cabal with --constraint='persistent ==2.2.4.1' Hopefully this mess with esqueleto will be resolved soon. + * sync: Pass --allow-unrelated-histories to git merge when used with git + git 2.9.0 or newer. This makes merging a remote into a freshly created + direct mode repository work the same as it works in indirect mode. -- Joey Hess <id@joeyh.name> Tue, 15 Nov 2016 11:15:27 -0400 diff --git a/Command/Sync.hs b/Command/Sync.hs index d7edac743..fb80c3e74 100644 --- a/Command/Sync.hs +++ b/Command/Sync.hs @@ -169,7 +169,12 @@ prepMerge :: Annex () prepMerge = Annex.changeDirectory =<< fromRepo Git.repoPath mergeConfig :: [Git.Merge.MergeConfig] -mergeConfig = [Git.Merge.MergeNonInteractive] +mergeConfig = + [ Git.Merge.MergeNonInteractive + -- In several situations, unrelated histories should be merged + -- together. This includes pairing in the assistant etc. + , Git.Merge.MergeUnrelatedHistories + ] merge :: CurrBranch -> [Git.Merge.MergeConfig] -> Git.Branch.CommitMode -> Git.Branch -> Annex Bool merge (Just b, Just adj) mergeconfig commitmode tomerge = |