Mercurial > hg
annotate hgext/amend.py @ 48897:10839394f39b
util: remove superfluous ispy3 test
Differential Revision: https://phab.mercurial-scm.org/D12300
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 21 Feb 2022 10:35:42 -0700 |
parents | 6000f5b25c9b |
children | e78a41686464 |
rev | line source |
---|---|
33404
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
1 # amend.py - provide the amend command |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
2 # |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
3 # Copyright 2017 Facebook, Inc. |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
4 # |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
5 # This software may be used and distributed according to the terms of the |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
6 # GNU General Public License version 2 or any later version. |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
7 """provide the amend command (EXPERIMENTAL) |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
8 |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
9 This extension provides an ``amend`` command that is similar to |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
10 ``commit --amend`` but does not prompt an editor. |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
11 """ |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
12 |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
13 |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
14 from mercurial.i18n import _ |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
15 from mercurial import ( |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
16 cmdutil, |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
17 commands, |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
18 registrar, |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
19 ) |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
20 |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
21 # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
22 # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
23 # be specifying the version(s) of Mercurial they are tested with, or |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
24 # leave the attribute unspecified. |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
25 testedwith = b'ships-with-hg-core' |
33404
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
26 |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
27 cmdtable = {} |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
28 command = registrar.command(cmdtable) |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
29 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
30 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
31 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
32 b'amend', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
33 [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
34 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
35 b'A', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
36 b'addremove', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
37 None, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
38 _(b'mark new/missing files as added/removed before committing'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
39 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
40 (b'e', b'edit', None, _(b'invoke editor on commit messages')), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
41 (b'i', b'interactive', None, _(b'use interactive mode')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
42 ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
43 b'', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
44 b'close-branch', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
45 None, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
46 _(b'mark a branch as closed, hiding it from the branch list'), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
47 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
48 (b's', b'secret', None, _(b'use the secret phase for committing')), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
49 (b'n', b'note', b'', _(b'store a note on the amend')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
50 ] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
51 + cmdutil.walkopts |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
52 + cmdutil.commitopts |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
53 + cmdutil.commitopts2 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
54 + cmdutil.commitopts3, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
55 _(b'[OPTION]... [FILE]...'), |
40293
c303d65d2e34
help: assigning categories to existing commands
rdamazio@google.com
parents:
34970
diff
changeset
|
56 helpcategory=command.CATEGORY_COMMITTING, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
57 inferrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
58 ) |
33404
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
59 def amend(ui, repo, *pats, **opts): |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
60 """amend the working copy parent with all or specified outstanding changes |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
61 |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
62 Similar to :hg:`commit --amend`, but reuse the commit message without |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
63 invoking editor, unless ``--edit`` was set. |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
64 |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
65 See :hg:`help commit` for more details. |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
66 """ |
47428
54849b65dc5f
cmdutil: make checknotesize() work on str-keyed opts
Martin von Zweigbergk <martinvonz@google.com>
parents:
47427
diff
changeset
|
67 cmdutil.check_note_size(opts) |
42933
7e9997041781
amend: prevent '\n' in the note string
Matt Harbison <matt_harbison@yahoo.com>
parents:
42932
diff
changeset
|
68 |
33404
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
69 with repo.wlock(), repo.lock(): |
47427
6ce89165eaa0
amend: work mostly with str-type **opts for simplicity
Martin von Zweigbergk <martinvonz@google.com>
parents:
43077
diff
changeset
|
70 if not opts.get('logfile'): |
6ce89165eaa0
amend: work mostly with str-type **opts for simplicity
Martin von Zweigbergk <martinvonz@google.com>
parents:
43077
diff
changeset
|
71 opts['message'] = opts.get('message') or repo[b'.'].description() |
6ce89165eaa0
amend: work mostly with str-type **opts for simplicity
Martin von Zweigbergk <martinvonz@google.com>
parents:
43077
diff
changeset
|
72 opts['amend'] = True |
6ce89165eaa0
amend: work mostly with str-type **opts for simplicity
Martin von Zweigbergk <martinvonz@google.com>
parents:
43077
diff
changeset
|
73 return commands._docommit(ui, repo, *pats, **opts) |