pmacs3/method/hg.py

34 lines
1.0 KiB
Python
Raw Normal View History

from method import Method, Argument
class HgCommit(Method):
"""Commit the current file """
w.set_error("unimplemented")
class HgBlame(Method):
"""Show buffer annotated with hg metadata"""
w.set_error("unimplemented")
class HgLog(Method):
"""Show hg log for this buffer"""
w.set_error("unimplemented")
class HgDiff(Method):
2009-04-17 22:09:31 -04:00
"""Diff the current file with the version in Mercurial"""
def _execute(self, w, **vargs):
2009-04-17 22:09:31 -04:00
try:
from mercurial import hg, ui
from mercurial import commands as hgc
except ImportError:
w.set_error("Mecurial is not installed")
return
2009-04-17 22:09:31 -04:00
if not hasattr(w.buffer, 'path'):
w.set_error("Buffer has no corresponding file")
return
ui_imp = ui.ui(verbose=True)
ui_imp.pushbuffer()
2009-04-17 22:09:31 -04:00
repo = hg.repository(ui=ui_imp, path='.')
hgc.diff(ui_imp, repo, w.buffer.path)
2009-04-17 22:09:31 -04:00
s = ''.join(ui_imp.popbuffer())
w.application.data_buffer("*Diff*", s, switch_to=True, modename='diff')