Skip to content

Commit c272d0b

Browse files
committed
Fix lazygit getting unresponsive when pasting commits that become empty
Whenever git returns the error "The previous cherry-pick is now empty", we would previously continue the rebase; this works for rebase because it behaves the same as "git rebase --skip" in this case. That's not true for cherry-pick though; if you continue a cherry-pick where the current commit is empty, it will return the same error again, causing lazygit to be stuck in an endless loop. Fix this by skipping instead of continuing; this shouldn't make a difference for rebase, but works for cherry-pick. Theoretically we could have a similar problem for revert (if you are trying to revert a commit that has already been undone through some other means); this should then be fixed in the same way with this change. However, the change is not relevant for revert because git returns a different error in this case.
1 parent 1fd771f commit c272d0b

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

pkg/gui/controllers/helpers/merge_and_rebase_helper.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ func (self *MergeAndRebaseHelper) CheckMergeOrRebaseWithRefreshOptions(result er
157157
} else if strings.Contains(result.Error(), "No changes - did you forget to use") {
158158
return self.genericMergeCommand(REBASE_OPTION_SKIP)
159159
} else if strings.Contains(result.Error(), "The previous cherry-pick is now empty") {
160-
return self.genericMergeCommand(REBASE_OPTION_CONTINUE)
160+
return self.genericMergeCommand(REBASE_OPTION_SKIP)
161161
} else if strings.Contains(result.Error(), "No rebase in progress?") {
162162
// assume in this case that we're already done
163163
return nil

0 commit comments

Comments
 (0)