mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 16:31:02 +03:00
78f0c73d4b
Summary: the nuclide team would like to be able to get the commit template message without actually invoking a commit. This small extensions allows them to do this. Caveats: ignores subrepositories. Test Plan: new test Reviewers: #mercurial, most Subscribers: mjpieters Differential Revision: https://phabricator.intern.facebook.com/D3960557 Tasks: 12771006
44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
from mercurial import (
|
|
cmdutil,
|
|
context,
|
|
error,
|
|
)
|
|
from mercurial.i18n import _
|
|
|
|
cmdtable = {}
|
|
command = cmdutil.command(cmdtable)
|
|
|
|
@command('debugcommitmessage', [], _('FORM'))
|
|
def debugcommitmessage(ui, repo, *args):
|
|
form = None
|
|
if len(args) > 1:
|
|
raise error.Abort(_('provide at most one form'))
|
|
elif len(args) > 0:
|
|
form = args[0]
|
|
|
|
status = repo.status()
|
|
text = ''
|
|
user = None
|
|
date = None
|
|
extra = None
|
|
|
|
ctx = context.workingcommitctx(repo, status, text, user, date, extra)
|
|
|
|
subs = []
|
|
editform = form or 'commit.normal.normal'
|
|
extramsg = _('Leave message empty to abort commit.')
|
|
|
|
forms = [e for e in editform.split('.') if e]
|
|
forms.insert(0, 'changeset')
|
|
while forms:
|
|
tmpl = repo.ui.config('committemplate', '.'.join(forms))
|
|
if tmpl:
|
|
committext = cmdutil.buildcommittemplate(
|
|
repo, ctx, subs, extramsg, tmpl)
|
|
break
|
|
forms.pop()
|
|
else:
|
|
committext = cmdutil.buildcommittext(repo, ctx, subs, extramsg)
|
|
|
|
ui.status(committext)
|