D6667: amend: stop committing unrequested file reverts (issue6157)

valentin.gatienbaron (Valentin Gatien-Baron) phabricator at mercurial-scm.org
Mon Jul 22 06:36:36 EDT 2019


valentin.gatienbaron created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REPOSITORY
  rHG Mercurial

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

AFFECTED FILES
  mercurial/cmdutil.py
  tests/test-amend.t

CHANGE DETAILS

diff --git a/tests/test-amend.t b/tests/test-amend.t
--- a/tests/test-amend.t
+++ b/tests/test-amend.t
@@ -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(-)
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -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:



To: valentin.gatienbaron, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list