Mercurial > hg-stable
changeset 41865:aa284d9a33ca
uncommit: add flag --allow-dirty-working-copy
This adds a flag `--allow-dirty-working-copy` as an alias for
the experimental config option `experimental.uncommitondirtydir`.
Differential Revision: https://phab.mercurial-scm.org/D6069
author | Navaneeth Suresh <navaneeths1998@gmail.com> |
---|---|
date | Mon, 04 Mar 2019 20:18:13 +0530 |
parents | bf22e370ae9a |
children | a58748300e61 |
files | hgext/uncommit.py tests/test-uncommit.t |
diffstat | 2 files changed, 16 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/uncommit.py Tue Feb 12 00:17:42 2019 +0530 +++ b/hgext/uncommit.py Mon Mar 04 20:18:13 2019 +0530 @@ -140,6 +140,8 @@ @command('uncommit', [('', 'keep', None, _('allow an empty commit after uncommiting')), + ('', 'allow-dirty-working-copy', False, + _('allow uncommit with outstanding changes')) ] + commands.walkopts, _('[OPTION]... [FILE]...'), helpcategory=command.CATEGORY_CHANGE_MANAGEMENT) @@ -160,10 +162,11 @@ m, a, r, d = repo.status()[:4] isdirtypath = any(set(m + a + r + d) & set(pats)) - if (not repo.ui.configbool('experimental', 'uncommitondirtywdir') and - (not pats or isdirtypath)): + allowdirtywcopy = (opts['allow_dirty_working_copy'] or + repo.ui.configbool('experimental', 'uncommitondirtywdir')) + if not allowdirtywcopy and (not pats or isdirtypath): cmdutil.bailifchanged(repo, hint=_('requires ' - 'experimental.uncommitondirtywdir to uncommit')) + '--allow-dirty-working-copy to uncommit')) old = repo['.'] rewriteutil.precheck(repo, [old.rev()], 'uncommit') if len(old.parents()) > 1:
--- a/tests/test-uncommit.t Tue Feb 12 00:17:42 2019 +0530 +++ b/tests/test-uncommit.t Mon Mar 04 20:18:13 2019 +0530 @@ -34,9 +34,10 @@ options ([+] can be repeated): - --keep allow an empty commit after uncommiting - -I --include PATTERN [+] include names matching the given patterns - -X --exclude PATTERN [+] exclude names matching the given patterns + --keep allow an empty commit after uncommiting + --allow-dirty-working-copy allow uncommit with outstanding changes + -I --include PATTERN [+] include names matching the given patterns + -X --exclude PATTERN [+] exclude names matching the given patterns (some details hidden, use --verbose to show complete help) @@ -156,11 +157,11 @@ M files $ hg uncommit abort: uncommitted changes - (requires experimental.uncommitondirtywdir to uncommit) + (requires --allow-dirty-working-copy to uncommit) [255] $ hg uncommit files abort: uncommitted changes - (requires experimental.uncommitondirtywdir to uncommit) + (requires --allow-dirty-working-copy to uncommit) [255] $ cat files abcde @@ -172,7 +173,7 @@ $ echo "bar" >> files $ hg uncommit abort: uncommitted changes - (requires experimental.uncommitondirtywdir to uncommit) + (requires --allow-dirty-working-copy to uncommit) [255] $ hg uncommit --config experimental.uncommitondirtywdir=True $ hg commit -m "files abcde + foo" @@ -395,7 +396,7 @@ $ hg uncommit abort: outstanding uncommitted merge - (requires experimental.uncommitondirtywdir to uncommit) + (requires --allow-dirty-working-copy to uncommit) [255] $ hg uncommit --config experimental.uncommitondirtywdir=True @@ -483,7 +484,7 @@ note: keeping empty commit $ hg unc b abort: uncommitted changes - (requires experimental.uncommitondirtywdir to uncommit) + (requires --allow-dirty-working-copy to uncommit) [255] $ cat a super critical info! @@ -497,7 +498,7 @@ $ hg ci -Am 'add b' $ echo 'foo bar' > b - $ hg unc --config experimental.uncommitondirtywdir=True b + $ hg unc --allow-dirty-working-copy b $ hg log changeset: 3:30fa958635b2 tag: tip