Mercurial > hg
annotate hgext/amend.py @ 52182:bd8081e9fd62
rust: don't star export from the `revlog` module
This made a lot of the imports confusing because they didn't make sense
at the top level (so, outside of `revlog`), and they hide the more common
types when autocompleting.
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Thu, 26 Sep 2024 14:26:24 +0200 |
parents | f4733654f144 |
children |
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 |
51863
f4733654f144
typing: add `from __future__ import annotations` to most files
Matt Harbison <matt_harbison@yahoo.com>
parents:
49772
diff
changeset
|
13 from __future__ import annotations |
33404
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
14 |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
15 from mercurial.i18n import _ |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
16 from mercurial import ( |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
17 cmdutil, |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
18 commands, |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
19 registrar, |
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 |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
22 # 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
|
23 # 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
|
24 # 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
|
25 # leave the attribute unspecified. |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
26 testedwith = b'ships-with-hg-core' |
33404
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
27 |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
28 cmdtable = {} |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
29 command = registrar.command(cmdtable) |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
30 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
31 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
32 @command( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
33 b'amend', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
34 [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
35 ( |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
36 b'A', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
37 b'addremove', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
38 None, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
39 _(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
|
40 ), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
41 (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
|
42 (b'i', b'interactive', None, _(b'use interactive mode')), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
43 ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
44 b'', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
45 b'close-branch', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
46 None, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
47 _(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
|
48 ), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
49 (b's', b'secret', None, _(b'use the secret phase for committing')), |
49772
e78a41686464
amend: add a --draft option to set phase to draft
Martin von Zweigbergk <martinvonz@google.com>
parents:
48875
diff
changeset
|
50 (b'', b'draft', None, _(b'use the draft phase for committing')), |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
51 (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
|
52 ] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
53 + cmdutil.walkopts |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
54 + cmdutil.commitopts |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
55 + cmdutil.commitopts2 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
56 + cmdutil.commitopts3, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
57 _(b'[OPTION]... [FILE]...'), |
40293
c303d65d2e34
help: assigning categories to existing commands
rdamazio@google.com
parents:
34970
diff
changeset
|
58 helpcategory=command.CATEGORY_COMMITTING, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
59 inferrepo=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42935
diff
changeset
|
60 ) |
33404
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
61 def amend(ui, repo, *pats, **opts): |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
62 """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
|
63 |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
64 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
|
65 invoking editor, unless ``--edit`` was set. |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
66 |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
67 See :hg:`help commit` for more details. |
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
68 """ |
49772
e78a41686464
amend: add a --draft option to set phase to draft
Martin von Zweigbergk <martinvonz@google.com>
parents:
48875
diff
changeset
|
69 cmdutil.check_at_most_one_arg(opts, 'draft', 'secret') |
47428
54849b65dc5f
cmdutil: make checknotesize() work on str-keyed opts
Martin von Zweigbergk <martinvonz@google.com>
parents:
47427
diff
changeset
|
70 cmdutil.check_note_size(opts) |
42933
7e9997041781
amend: prevent '\n' in the note string
Matt Harbison <matt_harbison@yahoo.com>
parents:
42932
diff
changeset
|
71 |
33404
0d5afd360e9e
amend: new extension providing the amend command
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
72 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
|
73 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
|
74 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
|
75 opts['amend'] = True |
6ce89165eaa0
amend: work mostly with str-type **opts for simplicity
Martin von Zweigbergk <martinvonz@google.com>
parents:
43077
diff
changeset
|
76 return commands._docommit(ui, repo, *pats, **opts) |