hgext/histedit.py
changeset 48206 c7690fabce5f
parent 48205 3fdeb657602f
child 48207 fb30ad66a572
equal deleted inserted replaced
48205:3fdeb657602f 48206:c7690fabce5f
  1216 
  1216 
  1217 def changemode(state, mode):
  1217 def changemode(state, mode):
  1218     curmode, _ = state.mode
  1218     curmode, _ = state.mode
  1219     state.mode = (mode, curmode)
  1219     state.mode = (mode, curmode)
  1220     if mode == MODE_PATCH:
  1220     if mode == MODE_PATCH:
  1221         state.modes[MODE_PATCH][b'patchcontents'] = patchcontents(state)
  1221         state.modes[MODE_PATCH][b'patchcontents'] = state.patch_contents()
  1222 
  1222 
  1223 
  1223 
  1224 def makeselection(state, pos):
  1224 def makeselection(state, pos):
  1225     state.selected = pos
  1225     state.selected = pos
  1226 
  1226 
  1321 
  1321 
  1322 def _trunc_tail(line, n):
  1322 def _trunc_tail(line, n):
  1323     if len(line) <= n:
  1323     if len(line) <= n:
  1324         return line
  1324         return line
  1325     return line[: n - 2] + b' >'
  1325     return line[: n - 2] + b' >'
  1326 
       
  1327 
       
  1328 def patchcontents(state):
       
  1329     repo = state.repo
       
  1330     rule = state.rules[state.pos]
       
  1331     displayer = logcmdutil.changesetdisplayer(
       
  1332         repo.ui, repo, {b"patch": True, b"template": b"status"}, buffered=True
       
  1333     )
       
  1334     overrides = {(b'ui', b'verbose'): True}
       
  1335     with repo.ui.configoverride(overrides, source=b'histedit'):
       
  1336         displayer.show(rule.ctx)
       
  1337         displayer.close()
       
  1338     return displayer.hunk[rule.ctx.rev()].splitlines()
       
  1339 
  1326 
  1340 
  1327 
  1341 class _chistedit_state(object):
  1328 class _chistedit_state(object):
  1342     def __init__(
  1329     def __init__(
  1343         self,
  1330         self,
  1588         elif action == b'line-down':
  1575         elif action == b'line-down':
  1589             return E_LINEDOWN
  1576             return E_LINEDOWN
  1590         elif action == b'line-up':
  1577         elif action == b'line-up':
  1591             return E_LINEUP
  1578             return E_LINEUP
  1592 
  1579 
       
  1580     def patch_contents(self):
       
  1581         repo = self.repo
       
  1582         rule = self.rules[self.pos]
       
  1583         displayer = logcmdutil.changesetdisplayer(
       
  1584             repo.ui,
       
  1585             repo,
       
  1586             {b"patch": True, b"template": b"status"},
       
  1587             buffered=True,
       
  1588         )
       
  1589         overrides = {(b'ui', b'verbose'): True}
       
  1590         with repo.ui.configoverride(overrides, source=b'histedit'):
       
  1591             displayer.show(rule.ctx)
       
  1592             displayer.close()
       
  1593         return displayer.hunk[rule.ctx.rev()].splitlines()
       
  1594 
  1593 
  1595 
  1594 def _chisteditmain(repo, rules, stdscr):
  1596 def _chisteditmain(repo, rules, stdscr):
  1595     try:
  1597     try:
  1596         curses.use_default_colors()
  1598         curses.use_default_colors()
  1597     except curses.error:
  1599     except curses.error: