diff mercurial/context.py @ 23730:4b56219a5ac2

status: don't list files as both removed and deleted When calculating status involving the working copy and a revision other than the parent of the working copy, the files that are not in the working context manifest ('mf2' in the basectx._buildstatus()) will be reported as removed (note that deleted files _are_ in the working context manifest). However, if the file is reported as deleted in the dirstate, it will get that status too (as shown by failing tests). Fix by removing deleted files from the 'removed' list after the main loop in _buildstatus().
author Martin von Zweigbergk <martinvonz@google.com>
date Mon, 05 Jan 2015 16:52:12 -0800
parents bfce25d25c96
children ccbaa2ed11a4
line wrap: on
line diff
--- a/mercurial/context.py	Tue Jan 06 11:23:38 2015 -0800
+++ b/mercurial/context.py	Mon Jan 05 16:52:12 2015 -0800
@@ -156,6 +156,8 @@
             # need to filter files if they are already reported as removed
             unknown = [fn for fn in unknown if fn not in mf1]
             ignored = [fn for fn in ignored if fn not in mf1]
+            # if they're deleted, don't report them as removed
+            removed = [fn for fn in removed if fn not in deletedset]
 
         return scmutil.status(modified, added, removed, deleted, unknown,
                               ignored, clean)