import: add a --secret option
Similarly to "hg commit", we add a --secret option to "hg import" for
committing with the secret phase. The option has no short form since
there already is a "-s" for "--similarity".
.. feature::
``hg import`` has a new --secret option for committing with the
secret phase.
--- a/mercurial/cmdutil.py Fri Nov 15 15:58:56 2019 -0500
+++ b/mercurial/cmdutil.py Thu Nov 21 09:25:50 2019 +0100
@@ -1771,6 +1771,8 @@
overrides = {}
if partial:
overrides[(b'ui', b'allowemptycommit')] = True
+ if opts.get(b'secret'):
+ overrides[(b'phases', b'new-commit')] = b'secret'
with repo.ui.configoverride(overrides, b'import'):
n = repo.commit(
message, user, date, match=m, editor=editor, extra=extra
--- a/mercurial/commands.py Fri Nov 15 15:58:56 2019 -0500
+++ b/mercurial/commands.py Thu Nov 21 09:25:50 2019 +0100
@@ -4033,6 +4033,7 @@
_(b'NUM'),
),
(b'b', b'base', b'', _(b'base path (DEPRECATED)'), _(b'PATH')),
+ (b'', b'secret', None, _(b'use the secret phase for committing')),
(b'e', b'edit', False, _(b'invoke editor on commit messages')),
(
b'f',
@@ -4181,6 +4182,8 @@
update = not opts.get(b'bypass')
if not update and opts.get(b'no_commit'):
raise error.Abort(_(b'cannot use --no-commit with --bypass'))
+ if opts.get(b'secret') and opts.get(b'no_commit'):
+ raise error.Abort(_(b'cannot use --no-commit with --secret'))
try:
sim = float(opts.get(b'similarity') or 0)
except ValueError:
--- a/tests/test-completion.t Fri Nov 15 15:58:56 2019 -0500
+++ b/tests/test-completion.t Thu Nov 21 09:25:50 2019 +0100
@@ -328,7 +328,7 @@
heads: rev, topo, active, closed, style, template
help: extension, command, keyword, system
identify: rev, num, id, branch, tags, bookmarks, ssh, remotecmd, insecure, template
- import: strip, base, edit, force, no-commit, bypass, partial, exact, prefix, import-branch, message, logfile, date, user, similarity
+ import: strip, base, secret, edit, force, no-commit, bypass, partial, exact, prefix, import-branch, message, logfile, date, user, similarity
incoming: force, newest-first, bundle, rev, bookmarks, branch, patch, git, limit, no-merges, stat, graph, style, template, ssh, remotecmd, insecure, subrepos
init: ssh, remotecmd, insecure
locate: rev, print0, fullpath, include, exclude
--- a/tests/test-import.t Fri Nov 15 15:58:56 2019 -0500
+++ b/tests/test-import.t Thu Nov 21 09:25:50 2019 +0100
@@ -435,6 +435,49 @@
date: Thu Jan 01 00:00:00 1970 +0000
summary: second change
+ $ hg --cwd b phase tip
+ 1: draft
+ $ rm -r b
+
+
+hg import --secret
+
+ $ hg clone -r0 a b -q
+ $ hg --cwd b import --no-commit --secret ../exported-tip.patch
+ abort: cannot use --no-commit with --secret
+ [255]
+ $ hg --cwd b import --secret ../exported-tip.patch
+ applying ../exported-tip.patch
+ $ hg --cwd b diff -c . --nodates
+ diff -r 80971e65b431 -r 1d4bd90af0e4 a
+ --- a/a
+ +++ b/a
+ @@ -1,1 +1,2 @@
+ line 1
+ +line 2
+ $ hg --cwd b phase
+ 1: secret
+ $ hg --cwd b --config extensions.strip= strip 1 --no-backup --quiet
+ $ HGEDITOR=cat hg --cwd b import --secret --edit ../exported-tip.patch
+ applying ../exported-tip.patch
+ second change
+
+
+ HG: Enter commit message. Lines beginning with 'HG:' are removed.
+ HG: Leave message empty to abort commit.
+ HG: --
+ HG: user: someone
+ HG: branch 'default'
+ HG: changed a
+ $ hg --cwd b diff -c . --nodates
+ diff -r 80971e65b431 -r 1d4bd90af0e4 a
+ --- a/a
+ +++ b/a
+ @@ -1,1 +1,2 @@
+ line 1
+ +line 2
+ $ hg --cwd b phase
+ 1: secret
$ rm -r b