summaryrefslogtreecommitdiff
path: root/Command/Sync.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-07-07 15:45:41 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-07-07 15:53:27 -0400
commitdeb66de37f3e590ba70c062399c659b366e1d1f6 (patch)
treeb50cee1e4d6d501c34a58412fbd5c0c8689ed065 /Command/Sync.hs
parent6621e07eb527098d9a8bc6dd9a3576a1a27b3563 (diff)
merge: Avoid creating the synced/master branch.
The branch needs to be created when merging from the remote in sync, since we diff between it and the remote's sync branch. But git annex merge should not be creating sync branches.
Diffstat (limited to 'Command/Sync.hs')
-rw-r--r--Command/Sync.hs11
1 files changed, 6 insertions, 5 deletions
diff --git a/Command/Sync.hs b/Command/Sync.hs
index 958f034c8..403b463b0 100644
--- a/Command/Sync.hs
+++ b/Command/Sync.hs
@@ -194,10 +194,10 @@ mergeLocal (Just branch) = go =<< needmerge
syncbranch = syncBranch branch
needmerge = ifM isBareRepo
( return False
- , do
- unlessM (inRepo $ Git.Ref.exists syncbranch) $
- inRepo $ updateBranch syncbranch
- inRepo $ Git.Branch.changed branch syncbranch
+ , ifM (inRepo $ Git.Ref.exists syncbranch)
+ ( inRepo $ Git.Branch.changed branch syncbranch
+ , return False
+ )
)
go False = stop
go True = do
@@ -254,7 +254,8 @@ mergeRemote remote b = ifM isBareRepo
Nothing -> do
branch <- inRepo Git.Branch.currentUnsafe
and <$> mapM (merge Nothing) (branchlist branch)
- Just thisbranch ->
+ Just thisbranch -> do
+ inRepo $ updateBranch $ syncBranch thisbranch
and <$> (mapM (merge (Just thisbranch)) =<< tomerge (branchlist b))
)
where