# HG changeset patch # User Taapas Agrawal # Date 2019-02-02 19:32:24 # Node ID d783c937aa53e193d1c5263a3db7084503640087 # Parent bad59bbd9bec79eb605521dc2c5cb552245938f0 revert: add prompt before undeleting a file in -i (issue6008) This adds a prompt that asks whether or not a removed file is to be undeleted in `hg revert -i`. Differential Revision: https://phab.mercurial-scm.org/D5803 diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -3194,9 +3194,19 @@ def _performrevert(repo, parents, ctx, n if node == parent and p2 == nullid: normal = repo.dirstate.normal for f in actions['undelete'][0]: - prntstatusmsg('undelete', f) - checkout(f) - normal(f) + if interactive: + choice = repo.ui.promptchoice( + _("add back removed file %s (Yn)?$$ &Yes $$ &No") % f) + if choice == 0: + prntstatusmsg('undelete', f) + checkout(f) + normal(f) + else: + excluded_files.append(f) + else: + prntstatusmsg('undelete', f) + checkout(f) + normal(f) copied = copies.pathcopies(repo[parent], ctx) diff --git a/tests/test-revert-interactive.t b/tests/test-revert-interactive.t --- a/tests/test-revert-interactive.t +++ b/tests/test-revert-interactive.t @@ -424,3 +424,24 @@ When specified pattern does not exist, w b: no such file in rev b40d1912accf $ cd .. + +Prompt before undeleting file(issue6008) + $ hg init repo + $ cd repo + $ echo a > a + $ hg ci -qAm a + $ hg rm a + $ hg revert -i< y + > EOF + add back removed file a (Yn)? y + undeleting a + $ ls + a + $ hg rm a + $ hg revert -i< n + > EOF + add back removed file a (Yn)? n + $ ls + $ cd ..