pmacs3/method/hg.py

22 lines
772 B
Python

from method import Method, Argument
class HgDiff(Method):
"""Diff the current file with the version in Mercurial"""
def _execute(self, w, **vargs):
try:
from mercurial import hg, ui
from mercurial import commands as hgc
except ImportError:
w.set_error("Mecurial is not installed")
return
if not hasattr(w.buffer, 'path'):
w.set_error("Buffer has no corresponding file")
return
ui_imp = ui.ui(verbose=True)
ui_imp.pushbuffer()
repo = hg.repository(ui=ui_imp, path='.')
hgc.diff(ui_imp, repo, w.buffer.path)
s = ''.join(ui_imp.popbuffer())
w.application.data_buffer("*Diff*", s, switch_to=True, modename='diff')