hg-info started, but not perfect yet

--HG--
branch : pmacs2
This commit is contained in:
Erik Osheim 2009-05-18 01:44:54 -04:00
parent bf8beb2c12
commit 8be0f59be1
1 changed files with 18 additions and 1 deletions

View File

@ -6,7 +6,7 @@ from method import Method, Argument
from method.vc import VcBlame from method.vc import VcBlame
try: try:
from mercurial import hg, ui from mercurial import hg, ui, node
from mercurial import commands as hgc from mercurial import commands as hgc
has_hg = True has_hg = True
except ImportError: except ImportError:
@ -49,6 +49,23 @@ class HgLog(Method, HgBase):
s = ''.join(ui_imp.popbuffer()) s = ''.join(ui_imp.popbuffer())
w.application.data_buffer('*Log*', s, switch_to=True) w.application.data_buffer('*Log*', s, switch_to=True)
class HgInfo(Method, HgBase):
"""Get some basic info from Mercurial about the current buffer"""
def _execute(self, w, **vargs):
if not self._hg_check(w):
return
base = os.path.basename(w.buffer.path)
ui_imp, repo = self._hg_init()
path = w.buffer.path.replace(os.getcwd() + '/', '')
l = repo.file(path)
status = 'Unknown'
rev = l.linkrev(l.rev(l.tip()))
ctx = repo[rev]
changeid = node.hex(ctx.node()[:6])
user = ui_imp.shortuser(ctx.user())
msg = '%s %s %s:%s [%s]' % (base, status, rev, changeid, user)
w.set_error(msg)
class HgDiff(Method, HgBase): class HgDiff(Method, HgBase):
"""Diff the current file with the version in Mercurial""" """Diff the current file with the version in Mercurial"""
def _get_revs(self, w, **vargs): def _get_revs(self, w, **vargs):