Mercurial > public > mercurial-scm > hg
diff hgext/uncommit.py @ 41859:bf22e370ae9a
uncommit: don't allow dirty working copy with PATH (issue5977)
On a dirty PATH, uncommit was working without even setting the config
`experimental.uncommitondirtydir` to `True`. Ideally, it should abort
as it does for a dirty dir. This patch makes uncommit to require the
config option `experimental.uncommitondirtydir` on a dirty PATH.
Original patch to evolve extension authored by Dan Villiom Podlaski Christiansen:
https://bitbucket.org/octobus/evolve-devel/pull-requests/8/bug-5977-uncommit-dirtiness/diff
Differential Revision: https://phab.mercurial-scm.org/D5940
author | Navaneeth Suresh <navaneeths1998@gmail.com> |
---|---|
date | Tue, 12 Feb 2019 00:17:42 +0530 |
parents | 1040d54eb7eb |
children | aa284d9a33ca |
line wrap: on
line diff
--- a/hgext/uncommit.py Tue Mar 05 09:51:57 2019 -0500 +++ b/hgext/uncommit.py Tue Feb 12 00:17:42 2019 +0530 @@ -158,9 +158,12 @@ with repo.wlock(), repo.lock(): - if not pats and not repo.ui.configbool('experimental', - 'uncommitondirtywdir'): - cmdutil.bailifchanged(repo) + 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)): + cmdutil.bailifchanged(repo, hint=_('requires ' + 'experimental.uncommitondirtywdir to uncommit')) old = repo['.'] rewriteutil.precheck(repo, [old.rev()], 'uncommit') if len(old.parents()) > 1: