diff options
Diffstat (limited to 'Command')
-rw-r--r-- | Command/Sync.hs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/Command/Sync.hs b/Command/Sync.hs index 28d7c69c5..2299306ed 100644 --- a/Command/Sync.hs +++ b/Command/Sync.hs @@ -227,12 +227,15 @@ pullRemote remote branch = do - while the synced/master may have changes that some - other remote synced to this remote. So, merge them both. -} mergeRemote :: Remote -> Maybe Git.Ref -> CommandCleanup -mergeRemote remote b = case b of - Nothing -> do - branch <- inRepo Git.Branch.currentUnsafe - and <$> mapM (merge Nothing) (branchlist branch) - Just thisbranch -> - and <$> (mapM (merge (Just thisbranch)) =<< tomerge (branchlist b)) +mergeRemote remote b = ifM isBareRepo + ( return True + , case b of + Nothing -> do + branch <- inRepo Git.Branch.currentUnsafe + and <$> mapM (merge Nothing) (branchlist branch) + Just thisbranch -> + and <$> (mapM (merge (Just thisbranch)) =<< tomerge (branchlist b)) + ) where merge thisbranch br = autoMergeFrom (remoteBranch remote br) thisbranch Git.Branch.ManualCommit tomerge = filterM (changed remote) |