amend.py
74 lines
| 2.2 KiB
| text/x-python
|
PythonLexer
/ hgext / amend.py
Jun Wu
|
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, | ||||
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
|
r43347 | testedwith = b'ships-with-hg-core' | ||
Jun Wu
|
r33404 | |||
cmdtable = {} | ||||
command = registrar.command(cmdtable) | ||||
Augie Fackler
|
r43346 | |||
@command( | ||||
Augie Fackler
|
r43347 | b'amend', | ||
Augie Fackler
|
r43346 | [ | ||
( | ||||
Augie Fackler
|
r43347 | b'A', | ||
b'addremove', | ||||
Augie Fackler
|
r43346 | None, | ||
Augie Fackler
|
r43347 | _(b'mark new/missing files as added/removed before committing'), | ||
Augie Fackler
|
r43346 | ), | ||
Augie Fackler
|
r43347 | (b'e', b'edit', None, _(b'invoke editor on commit messages')), | ||
(b'i', b'interactive', None, _(b'use interactive mode')), | ||||
Augie Fackler
|
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
|
r43347 | (b'n', b'note', b'', _(b'store a note on the amend')), | ||
Augie Fackler
|
r43346 | ] | ||
+ cmdutil.walkopts | ||||
+ cmdutil.commitopts | ||||
+ cmdutil.commitopts2 | ||||
+ cmdutil.commitopts3, | ||||
Augie Fackler
|
r43347 | _(b'[OPTION]... [FILE]...'), | ||
rdamazio@google.com
|
r40329 | helpcategory=command.CATEGORY_COMMITTING, | ||
Augie Fackler
|
r43346 | inferrepo=True, | ||
) | ||||
Jun Wu
|
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. | ||||
""" | ||||
Martin von Zweigbergk
|
r48221 | cmdutil.check_note_size(opts) | ||
Matt Harbison
|
r43203 | |||
Jun Wu
|
r33404 | with repo.wlock(), repo.lock(): | ||
Martin von Zweigbergk
|
r48220 | if not opts.get('logfile'): | ||
opts['message'] = opts.get('message') or repo[b'.'].description() | ||||
opts['amend'] = True | ||||
return commands._docommit(ui, repo, *pats, **opts) | ||||