From deb66de37f3e590ba70c062399c659b366e1d1f6 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 7 Jul 2015 15:45:41 -0400 Subject: 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. --- Command/Sync.hs | 11 ++++++----- debian/changelog | 1 + .../comment_5_39009651c3f65e2ecd225e17d157c8d8._comment | 10 ++++++++++ 3 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 doc/forum/annex_merge_creates___34__synced__47____42____34___branches/comment_5_39009651c3f65e2ecd225e17d157c8d8._comment 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 diff --git a/debian/changelog b/debian/changelog index e8264a4a9..45619ea2a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -22,6 +22,7 @@ git-annex (5.20150618) UNRELEASED; urgency=medium * On linux, pass --as-needed to linker to avoid linking with unused shared libraries including libyaml. * import: Fix failure of cross-device import on Windows. + * merge: Avoid creating the synced/master branch. -- Joey Hess Thu, 02 Jul 2015 12:31:14 -0400 diff --git a/doc/forum/annex_merge_creates___34__synced__47____42____34___branches/comment_5_39009651c3f65e2ecd225e17d157c8d8._comment b/doc/forum/annex_merge_creates___34__synced__47____42____34___branches/comment_5_39009651c3f65e2ecd225e17d157c8d8._comment new file mode 100644 index 000000000..488f3ae7b --- /dev/null +++ b/doc/forum/annex_merge_creates___34__synced__47____42____34___branches/comment_5_39009651c3f65e2ecd225e17d157c8d8._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 5""" + date="2015-07-07T19:20:17Z" + content=""" +So, I was wrong about `git annex merge` creating the synced/master branch. + +There's no good reason for it to do that, so I've fixed it not to create +it. +"""]] -- cgit v1.2.3