-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Ask to auto-stage unstaged files when continuing a rebase after resol…
…ving conflicts (#3879) - **PR Description** When lazygit sees that all conflicts were resolved, it auto-stages all previously conflicted files and asks to continue the rebase. (There is [a PR](#3870) open to make this optional.) It is a common situation for this popup to be opened in the background, while the user is still busy fixing build errors in their editor. In this case, coming back to lazygit and confirming the continue prompt would result in an error because not all files are staged. Improve this by opening another popup in this case, asking to stage the newly modified files too and continue. See #3111 (comment) and the following discussion further down in that issue.
- Loading branch information
Showing
5 changed files
with
118 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
76 changes: 76 additions & 0 deletions
76
pkg/integration/tests/branch/rebase_conflicts_fix_build_errors.go
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
package branch | ||
|
||
import ( | ||
"github.com/jesseduffield/lazygit/pkg/config" | ||
. "github.com/jesseduffield/lazygit/pkg/integration/components" | ||
"github.com/jesseduffield/lazygit/pkg/integration/tests/shared" | ||
) | ||
|
||
var RebaseConflictsFixBuildErrors = NewIntegrationTest(NewIntegrationTestArgs{ | ||
Description: "Rebase onto another branch, deal with the conflicts. While continue prompt is showing, fix build errors; get another prompt when continuing.", | ||
ExtraCmdArgs: []string{}, | ||
Skip: false, | ||
SetupConfig: func(config *config.AppConfig) {}, | ||
SetupRepo: func(shell *Shell) { | ||
shared.MergeConflictsSetup(shell) | ||
}, | ||
Run: func(t *TestDriver, keys config.KeybindingConfig) { | ||
t.Views().Commits().TopLines( | ||
Contains("first change"), | ||
Contains("original"), | ||
) | ||
|
||
t.Views().Branches(). | ||
Focus(). | ||
Lines( | ||
Contains("first-change-branch"), | ||
Contains("second-change-branch"), | ||
Contains("original-branch"), | ||
). | ||
SelectNextItem(). | ||
Press(keys.Branches.RebaseBranch) | ||
|
||
t.ExpectPopup().Menu(). | ||
Title(Equals("Rebase 'first-change-branch'")). | ||
Select(Contains("Simple rebase")). | ||
Confirm() | ||
|
||
t.Common().AcknowledgeConflicts() | ||
|
||
t.Views().Files(). | ||
IsFocused(). | ||
SelectedLine(Contains("file")). | ||
PressEnter() | ||
|
||
t.Views().MergeConflicts(). | ||
IsFocused(). | ||
SelectNextItem(). | ||
PressPrimaryAction() | ||
|
||
t.Views().Information().Content(Contains("Rebasing")) | ||
|
||
popup := t.ExpectPopup().Confirmation(). | ||
Title(Equals("Continue")). | ||
Content(Contains("All merge conflicts resolved. Continue?")) | ||
|
||
// While the popup is showing, fix some build errors | ||
t.Shell().UpdateFile("file", "make it compile again") | ||
|
||
// Continue | ||
popup.Confirm() | ||
|
||
t.ExpectPopup().Confirmation(). | ||
Title(Equals("Continue")). | ||
Content(Contains("Files have been modified since conflicts were resolved. Auto-stage them and continue?")). | ||
Confirm() | ||
|
||
t.Views().Information().Content(DoesNotContain("Rebasing")) | ||
|
||
t.Views().Commits().TopLines( | ||
Contains("first change"), | ||
Contains("second-change-branch unrelated change"), | ||
Contains("second change"), | ||
Contains("original"), | ||
) | ||
}, | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters