diff --git a/hgext/histedit.py b/hgext/histedit.py --- a/hgext/histedit.py +++ b/hgext/histedit.py @@ -1218,7 +1218,7 @@ curmode, _ = state.mode state.mode = (mode, curmode) if mode == MODE_PATCH: - state.modes[MODE_PATCH][b'patchcontents'] = patchcontents(state) + state.modes[MODE_PATCH][b'patchcontents'] = state.patch_contents() def makeselection(state, pos): @@ -1325,19 +1325,6 @@ return line[: n - 2] + b' >' -def patchcontents(state): - repo = state.repo - rule = state.rules[state.pos] - displayer = logcmdutil.changesetdisplayer( - repo.ui, repo, {b"patch": True, b"template": b"status"}, buffered=True - ) - overrides = {(b'ui', b'verbose'): True} - with repo.ui.configoverride(overrides, source=b'histedit'): - displayer.show(rule.ctx) - displayer.close() - return displayer.hunk[rule.ctx.rev()].splitlines() - - class _chistedit_state(object): def __init__( self, @@ -1590,6 +1577,21 @@ elif action == b'line-up': return E_LINEUP + def patch_contents(self): + repo = self.repo + rule = self.rules[self.pos] + displayer = logcmdutil.changesetdisplayer( + repo.ui, + repo, + {b"patch": True, b"template": b"status"}, + buffered=True, + ) + overrides = {(b'ui', b'verbose'): True} + with repo.ui.configoverride(overrides, source=b'histedit'): + displayer.show(rule.ctx) + displayer.close() + return displayer.hunk[rule.ctx.rev()].splitlines() + def _chisteditmain(repo, rules, stdscr): try: