Patchwork D5803: revert: added prompt before undeleting a file in -i(issue6008)

login
register
mail settings
Submitter phabricator
Date Feb. 3, 2019, 4:17 a.m.
Message ID <db319df9e9ef6d2ad36e1ec73dfd93ce@localhost.localdomain>
Download mbox | patch
Permalink /patch/38339/
State Not Applicable
Headers show

Comments

phabricator - Feb. 3, 2019, 4:17 a.m.
taapas1128 updated this revision to Diff 13711.
taapas1128 edited the summary of this revision.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D5803?vs=13703&id=13711

REVISION DETAIL
  https://phab.mercurial-scm.org/D5803

AFFECTED FILES
  mercurial/cmdutil.py
  tests/test-revert-interactive.t

CHANGE DETAILS




To: taapas1128, #hg-reviewers
Cc: yuja, mercurial-devel

Patch

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 @@ 
   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<<EOF
+  > y
+  > EOF
+  add back removed file a (Yn)? y
+  undeleting a
+  $ ls
+  a
+  $ hg rm a
+  $ hg revert -i<<EOF
+  > n
+  > EOF
+  add back removed file a (Yn)? n
+  $ ls
+  $ cd ..
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -3200,9 +3200,19 @@ 
     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)