amend: stop committing unrequested file reverts (issue6157) stable
authorValentin Gatien-Baron <valentin.gatienbaron@gmail.com>
Mon, 22 Jul 2019 06:33:11 -0400
branchstable
changeset 42643 ce52377102db
parent 42642 464aa857c717
child 42644 0795bbe8ed19
amend: stop committing unrequested file reverts (issue6157) Differential Revision: https://phab.mercurial-scm.org/D6667
mercurial/cmdutil.py
tests/test-amend.t
--- a/mercurial/cmdutil.py	Mon Jul 22 06:33:00 2019 -0400
+++ b/mercurial/cmdutil.py	Mon Jul 22 06:33:11 2019 -0400
@@ -2505,8 +2505,8 @@
             # was removed, it's no longer relevant. If X is missing (aka
             # deleted), old X must be preserved.
             files.update(filestoamend)
-            files = [f for f in files if (not samefile(f, wctx, base)
-                                          or f in wctx.deleted())]
+            files = [f for f in files if (f not in filestoamend
+                                          or not samefile(f, wctx, base))]
 
             def filectxfn(repo, ctx_, path):
                 try:
--- a/tests/test-amend.t	Mon Jul 22 06:33:00 2019 -0400
+++ b/tests/test-amend.t	Mon Jul 22 06:33:11 2019 -0400
@@ -456,7 +456,7 @@
 - working copy parent has a change to file `a`
 - working copy has the inverse change
 - we amend the working copy parent for files other than `a`
-hg includes the changes to `a` anyway.
+hg used to include the changes to `a` anyway.
 
   $ hg init 6157; cd 6157
   $ echo a > a; echo b > b; hg commit -qAm_
@@ -466,5 +466,6 @@
    1 files changed, 1 insertions(+), 1 deletions(-)
   $ echo a > a; echo b2 > b; hg amend -q b
   $ hg diff --stat -c .
+   a |  2 +-
    b |  2 +-
-   1 files changed, 1 insertions(+), 1 deletions(-)
+   2 files changed, 2 insertions(+), 2 deletions(-)