##// END OF EJS Templates
commitextras: move fb extension to core which add extras to a commit...
Pulkit Goyal -
r33546:77c0c366 default
parent child Browse files
Show More
@@ -0,0 +1,45 b''
1 # commitextras.py
2 #
3 # Copyright 2013 Facebook, Inc.
4 #
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2 or any later version.
7
8 '''adds a new flag extras to commit'''
9
10 from __future__ import absolute_import
11
12 from mercurial.i18n import _
13 from mercurial import (
14 commands,
15 extensions,
16 registrar,
17 )
18
19 cmdtable = {}
20 command = registrar.command(cmdtable)
21 testedwith = 'ships-with-hg-core'
22
23 def extsetup(ui):
24 entry = extensions.wrapcommand(commands.table, 'commit', _commit)
25 options = entry[1]
26 options.append(('', 'extra', [],
27 _('set a changeset\'s extra values'), _("KEY=VALUE")))
28
29 def _commit(orig, ui, repo, *pats, **opts):
30 origcommit = repo.commit
31 try:
32 def _wrappedcommit(*innerpats, **inneropts):
33 extras = opts.get('extra')
34 if extras:
35 for raw in extras:
36 k, v = raw.split('=', 1)
37 inneropts['extra'][k] = v
38 return origcommit(*innerpats, **inneropts)
39
40 # This __dict__ logic is needed because the normal
41 # extension.wrapfunction doesn't seem to work.
42 repo.__dict__['commit'] = _wrappedcommit
43 return orig(ui, repo, *pats, **opts)
44 finally:
45 del repo.__dict__['commit']
@@ -254,6 +254,7 b' Test extension help:'
254 254 censor erase file content at a given revision
255 255 churn command to display statistics about repository history
256 256 clonebundles advertise pre-generated bundles to seed clones
257 commitextras adds a new flag extras to commit
257 258 convert import revisions from foreign VCS repositories into
258 259 Mercurial
259 260 eol automatically manage newlines in repository files
General Comments 0
You need to be logged in to leave comments. Login now