##// END OF EJS Templates
phases: fix performance regression with Python 2...
phases: fix performance regression with Python 2 Unlike Python 3, xrange doesn't support efficient "in" and uses a linear time scan instead. Expand the condition to handle it fast. Differential Revision: https://phab.mercurial-scm.org/D9072

File last commit:

r43347:687b865b default
r46127:29a259be default
Show More
amend.py
76 lines | 2.3 KiB | text/x-python | PythonLexer
Jun Wu
amend: new extension providing the amend command...
r33404 # amend.py - provide the amend command
#
# Copyright 2017 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.
"""provide the amend command (EXPERIMENTAL)
This extension provides an ``amend`` command that is similar to
``commit --amend`` but does not prompt an editor.
"""
from __future__ import absolute_import
from mercurial.i18n import _
from mercurial import (
cmdutil,
commands,
Pulkit Goyal
py3: handle keyword arguments in hgext/amend.py...
r34971 pycompat,
Jun Wu
amend: new extension providing the amend command...
r33404 registrar,
)
# Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for
# extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
# be specifying the version(s) of Mercurial they are tested with, or
# leave the attribute unspecified.
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 testedwith = b'ships-with-hg-core'
Jun Wu
amend: new extension providing the amend command...
r33404
cmdtable = {}
command = registrar.command(cmdtable)
Augie Fackler
formatting: blacken the codebase...
r43346
@command(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'amend',
Augie Fackler
formatting: blacken the codebase...
r43346 [
(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'A',
b'addremove',
Augie Fackler
formatting: blacken the codebase...
r43346 None,
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 _(b'mark new/missing files as added/removed before committing'),
Augie Fackler
formatting: blacken the codebase...
r43346 ),
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 (b'e', b'edit', None, _(b'invoke editor on commit messages')),
(b'i', b'interactive', None, _(b'use interactive mode')),
Augie Fackler
formatting: blacken the codebase...
r43346 (
b'',
b'close-branch',
None,
_(b'mark a branch as closed, hiding it from the branch list'),
),
(b's', b'secret', None, _(b'use the secret phase for committing')),
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 (b'n', b'note', b'', _(b'store a note on the amend')),
Augie Fackler
formatting: blacken the codebase...
r43346 ]
+ cmdutil.walkopts
+ cmdutil.commitopts
+ cmdutil.commitopts2
+ cmdutil.commitopts3,
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 _(b'[OPTION]... [FILE]...'),
rdamazio@google.com
help: assigning categories to existing commands...
r40329 helpcategory=command.CATEGORY_COMMITTING,
Augie Fackler
formatting: blacken the codebase...
r43346 inferrepo=True,
)
Jun Wu
amend: new extension providing the amend command...
r33404 def amend(ui, repo, *pats, **opts):
"""amend the working copy parent with all or specified outstanding changes
Similar to :hg:`commit --amend`, but reuse the commit message without
invoking editor, unless ``--edit`` was set.
See :hg:`help commit` for more details.
"""
Pulkit Goyal
py3: handle keyword arguments in hgext/amend.py...
r34971 opts = pycompat.byteskwargs(opts)
Matt Harbison
amend: prevent '\n' in the note string...
r43203 cmdutil.checknotesize(ui, opts)
Jun Wu
amend: new extension providing the amend command...
r33404 with repo.wlock(), repo.lock():
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 if not opts.get(b'logfile'):
opts[b'message'] = opts.get(b'message') or repo[b'.'].description()
opts[b'amend'] = True
Pulkit Goyal
py3: handle keyword arguments in hgext/amend.py...
r34971 return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))