mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-06-04 23:37:41 +02:00
Select same commit again after pressing "e" to edit a commit (#2954)
This commit is contained in:
commit
a670fbb33c
@ -125,8 +125,8 @@ func isMergeConflictErr(errStr string) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *MergeAndRebaseHelper) CheckMergeOrRebase(result error) error {
|
func (self *MergeAndRebaseHelper) CheckMergeOrRebaseWithRefreshOptions(result error, refreshOptions types.RefreshOptions) error {
|
||||||
if err := self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC}); err != nil {
|
if err := self.c.Refresh(refreshOptions); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if result == nil {
|
if result == nil {
|
||||||
@ -143,6 +143,10 @@ func (self *MergeAndRebaseHelper) CheckMergeOrRebase(result error) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (self *MergeAndRebaseHelper) CheckMergeOrRebase(result error) error {
|
||||||
|
return self.CheckMergeOrRebaseWithRefreshOptions(result, types.RefreshOptions{Mode: types.ASYNC})
|
||||||
|
}
|
||||||
|
|
||||||
func (self *MergeAndRebaseHelper) CheckForConflicts(result error) error {
|
func (self *MergeAndRebaseHelper) CheckForConflicts(result error) error {
|
||||||
if result == nil {
|
if result == nil {
|
||||||
return nil
|
return nil
|
||||||
|
@ -51,6 +51,10 @@ func NewRefreshHelper(
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *RefreshHelper) Refresh(options types.RefreshOptions) error {
|
func (self *RefreshHelper) Refresh(options types.RefreshOptions) error {
|
||||||
|
if options.Mode == types.ASYNC && options.Then != nil {
|
||||||
|
panic("RefreshOptions.Then doesn't work with mode ASYNC")
|
||||||
|
}
|
||||||
|
|
||||||
t := time.Now()
|
t := time.Now()
|
||||||
defer func() {
|
defer func() {
|
||||||
self.c.Log.Infof(fmt.Sprintf("Refresh took %s", time.Since(t)))
|
self.c.Log.Infof(fmt.Sprintf("Refresh took %s", time.Since(t)))
|
||||||
@ -174,11 +178,11 @@ func (self *RefreshHelper) Refresh(options types.RefreshOptions) error {
|
|||||||
|
|
||||||
self.refreshStatus()
|
self.refreshStatus()
|
||||||
|
|
||||||
|
wg.Wait()
|
||||||
|
|
||||||
if options.Then != nil {
|
if options.Then != nil {
|
||||||
options.Then()
|
options.Then()
|
||||||
}
|
}
|
||||||
|
|
||||||
wg.Wait()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if options.Mode == types.BLOCK_UI {
|
if options.Mode == types.BLOCK_UI {
|
||||||
|
@ -392,7 +392,16 @@ func (self *LocalCommitsController) edit(commit *models.Commit) error {
|
|||||||
return self.c.WithWaitingStatus(self.c.Tr.RebasingStatus, func(gocui.Task) error {
|
return self.c.WithWaitingStatus(self.c.Tr.RebasingStatus, func(gocui.Task) error {
|
||||||
self.c.LogAction(self.c.Tr.Actions.EditCommit)
|
self.c.LogAction(self.c.Tr.Actions.EditCommit)
|
||||||
err := self.c.Git().Rebase.EditRebase(commit.Sha)
|
err := self.c.Git().Rebase.EditRebase(commit.Sha)
|
||||||
return self.c.Helpers().MergeAndRebase.CheckMergeOrRebase(err)
|
return self.c.Helpers().MergeAndRebase.CheckMergeOrRebaseWithRefreshOptions(
|
||||||
|
err,
|
||||||
|
types.RefreshOptions{Mode: types.BLOCK_UI, Then: func() {
|
||||||
|
_, index, ok := lo.FindIndexOf(self.c.Model().Commits, func(c *models.Commit) bool {
|
||||||
|
return c.Sha == commit.Sha
|
||||||
|
})
|
||||||
|
if ok {
|
||||||
|
self.context().SetSelectedLineIdx(index)
|
||||||
|
}
|
||||||
|
}})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ var DropTodoCommitWithUpdateRef = NewIntegrationTest(NewIntegrationTestArgs{
|
|||||||
Contains("update-ref").Contains("branch1").DoesNotContain("*"),
|
Contains("update-ref").Contains("branch1").DoesNotContain("*"),
|
||||||
Contains("pick").Contains("CI * commit 04"),
|
Contains("pick").Contains("CI * commit 04"),
|
||||||
Contains("pick").Contains("CI commit 03"),
|
Contains("pick").Contains("CI commit 03"),
|
||||||
Contains("<-- YOU ARE HERE --- commit 02"),
|
Contains("<-- YOU ARE HERE --- commit 02").IsSelected(),
|
||||||
Contains("CI commit 01"),
|
Contains("CI commit 01"),
|
||||||
).
|
).
|
||||||
NavigateToLine(Contains("commit 06")).
|
NavigateToLine(Contains("commit 06")).
|
||||||
|
Loading…
x
Reference in New Issue
Block a user