@@ -340,22 +340,35 @@ func (self *LocalCommitsController) squashDown(selectedCommits []*models.Commit,
340340}
341341
342342func  (self  * LocalCommitsController ) fixup (selectedCommits  []* models.Commit , startIdx  int , endIdx  int ) error  {
343- 	if  self .isRebasing () {
344- 		return  self .updateTodos (todo .Fixup , "" , selectedCommits )
343+ 	f  :=  func (flag  string ) error  {
344+ 		if  self .isRebasing () {
345+ 			return  self .updateTodos (todo .Fixup , flag , selectedCommits )
346+ 		}
347+ 
348+ 		return  self .c .WithWaitingStatus (self .c .Tr .FixingStatus , func (gocui.Task ) error  {
349+ 			self .c .LogAction (self .c .Tr .Actions .FixupCommit )
350+ 			return  self .interactiveRebase (todo .Fixup , flag , startIdx , endIdx )
351+ 		})
345352	}
346353
347- 	self .c .Confirm (types.ConfirmOpts {
354+ 	return   self .c .Menu (types.CreateMenuOptions {
348355		Title :  self .c .Tr .Fixup ,
349- 		Prompt : self .c .Tr .SureFixupThisCommit ,
350- 		HandleConfirm : func () error  {
351- 			return  self .c .WithWaitingStatus (self .c .Tr .FixingStatus , func (gocui.Task ) error  {
352- 				self .c .LogAction (self .c .Tr .Actions .FixupCommit )
353- 				return  self .interactiveRebase (todo .Fixup , "" , startIdx , endIdx )
354- 			})
356+ 		Prompt : "This squashes the selected commit(s) into the commit below it. You can decide which commit message to keep:" ,
357+ 		Items : []* types.MenuItem {
358+ 			{
359+ 				Label : "Keep the message of the commit below" ,
360+ 				OnPress : func () error  {
361+ 					return  f ("" )
362+ 				},
363+ 			},
364+ 			{
365+ 				Label : "Keep the message of the first selected commit" ,
366+ 				OnPress : func () error  {
367+ 					return  f ("-C" )
368+ 				},
369+ 			},
355370		},
356371	})
357- 
358- 	return  nil 
359372}
360373
361374func  (self  * LocalCommitsController ) reword (commit  * models.Commit ) error  {
0 commit comments