# HG changeset patch # User Denis Laxalde # Date 1574324750 -3600 # Node ID 71dbd6f6fcb80d6f11e8aff7955f7f449bf69774 # Parent d155bf11cf22483e4fef62ec5cc10db16b394260 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. diff -r d155bf11cf22 -r 71dbd6f6fcb8 mercurial/cmdutil.py --- 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 diff -r d155bf11cf22 -r 71dbd6f6fcb8 mercurial/commands.py --- 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: diff -r d155bf11cf22 -r 71dbd6f6fcb8 tests/test-completion.t --- 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 diff -r d155bf11cf22 -r 71dbd6f6fcb8 tests/test-import.t --- 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