diff --git a/pkg/commands/models/branch.go b/pkg/commands/models/branch.go index 75d99f4bc41..25d806fca0e 100644 --- a/pkg/commands/models/branch.go +++ b/pkg/commands/models/branch.go @@ -103,6 +103,10 @@ func (b *Branch) IsBehindForPull() bool { return b.RemoteBranchStoredLocally() && b.BehindForPull != "0" } +func (b *Branch) IsBehindForPush() bool { + return b.BehindForPush != "" && b.BehindForPush != "0" +} + // for when we're in a detached head state func (b *Branch) IsRealBranch() bool { return b.AheadForPull != "" && b.BehindForPull != "" diff --git a/pkg/gui/controllers/sync_controller.go b/pkg/gui/controllers/sync_controller.go index 8bd8dac9a39..7d7ca9eed7d 100644 --- a/pkg/gui/controllers/sync_controller.go +++ b/pkg/gui/controllers/sync_controller.go @@ -90,7 +90,7 @@ func (self *SyncController) push(currentBranch *models.Branch) error { // if we are behind our upstream branch we'll ask if the user wants to force push if currentBranch.IsTrackingRemote() { opts := pushOpts{} - if currentBranch.IsBehindForPull() { + if currentBranch.IsBehindForPush() { return self.requestToForcePush(currentBranch, opts) } else { return self.pushAux(currentBranch, opts) diff --git a/pkg/integration/tests/sync/force_push_triangular.go b/pkg/integration/tests/sync/force_push_triangular.go index 379912f6cd3..70912d1232c 100644 --- a/pkg/integration/tests/sync/force_push_triangular.go +++ b/pkg/integration/tests/sync/force_push_triangular.go @@ -36,12 +36,6 @@ var ForcePushTriangular = NewIntegrationTest(NewIntegrationTestArgs{ t.Views().Files().IsFocused().Press(keys.Universal.Push) - // This results in an attempt to push normally, which fails with an error: - t.ExpectPopup().Alert(). - Title(Equals("Error")). - Content(Contains("Updates were rejected. Please fetch and examine the remote changes before pushing again.")) - - /* EXPECTED: t.ExpectPopup().Confirmation(). Title(Equals("Force push")). Content(Equals("Your branch has diverged from the remote branch. Press to cancel, or to force push.")). @@ -67,6 +61,5 @@ var ForcePushTriangular = NewIntegrationTest(NewIntegrationTestArgs{ t.Views().SubCommits().IsFocused(). Lines(Contains("one")) - */ }, })