mirror of
https://github.com/facebook/sapling.git
synced 2024-10-12 01:39:21 +03:00
45c4a072f9
Summary: Port of D6798134 to fbsource. It eliminates module-import failures as well as errors like this: ``` mercurial.error.ForeignImportError: hgext.extlib.treedirstate: /home/phillco/.local/lib/python2.7/site-packages/hgext/extlib/treedirstate.so lives outside /..../hg ``` ....that block other tests, like test-help.t (Note: this ignores all push blocking failures!) Reviewed By: quark-zju Differential Revision: D6799259 fbshipit-source-id: b77d1b565dbf52165e0847002be498648658e064
39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
# phabdiff.py
|
|
#
|
|
# Copyright 2013 Facebook, Inc.
|
|
#
|
|
# This software may be used and distributed according to the terms of the
|
|
# GNU General Public License version 2 or any later version.
|
|
|
|
from mercurial import registrar, templatekw
|
|
from mercurial.node import hex
|
|
from .extlib.phabricator import diffprops
|
|
import re
|
|
|
|
templatekeyword = registrar.templatekeyword()
|
|
|
|
@templatekeyword('phabdiff')
|
|
def showphabdiff(repo, ctx, templ, **args):
|
|
"""String. Return the phabricator diff id for a given hg rev."""
|
|
descr = ctx.description()
|
|
revision = diffprops.parserevfromcommitmsg(descr)
|
|
return 'D' + revision if revision else ''
|
|
|
|
@templatekeyword('tasks')
|
|
def showtasks(**args):
|
|
"""String. Return the tasks associated with given hg rev."""
|
|
tasks = []
|
|
descr = args['ctx'].description()
|
|
match = re.search('(Tasks?|Task ID):(.*)', descr)
|
|
if match:
|
|
tasks = re.findall('\d+', match.group(0))
|
|
return templatekw.showlist('task', tasks, args)
|
|
|
|
@templatekeyword('singlepublicbase')
|
|
def singlepublicbase(repo, ctx, templ, **args):
|
|
"""String. Return the public base commit hash."""
|
|
base = repo.revs('last(::%d - not public())', ctx.rev())
|
|
if len(base):
|
|
return hex(repo[base.first()].node())
|
|
return ""
|