From b4e6850f98987d23a0211cb5b9b91d173c1e7210 Mon Sep 17 00:00:00 2001 From: Emiliano Ruiz Carletti Date: Thu, 22 Apr 2021 09:28:40 -0300 Subject: Fix wrong ff-only configuration --- pkg/commands/sync.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'pkg/commands') diff --git a/pkg/commands/sync.go b/pkg/commands/sync.go index e3be30dc1..e032d0a65 100644 --- a/pkg/commands/sync.go +++ b/pkg/commands/sync.go @@ -2,6 +2,7 @@ package commands import ( "fmt" + "sync" ) // Push pushes to a branch @@ -59,3 +60,32 @@ func (c *GitCommand) FetchRemote(remoteName string, promptUserForCredential func command := fmt.Sprintf("git fetch %s", remoteName) return c.OSCommand.DetectUnamePass(command, promptUserForCredential) } + +func (c *GitCommand) GetPullMode(mode string) string { + if mode != "auto" { + return mode + } + + var isRebase bool + var isFf bool + var wg sync.WaitGroup + + wg.Add(2) + go func() { + isRebase = c.GetConfigValue("pull.rebase") == "true" + wg.Done() + }() + go func() { + isFf = c.GetConfigValue("pull.ff") == "only" + wg.Done() + }() + wg.Wait() + + if isRebase { + return "rebase" + } else if isFf { + return "ff-only" + } else { + return "merge" + } +} -- cgit v1.2.3