status: don't drop unknown and ignored information (issue4321) stable
authorPierre-Yves David <pierre-yves.david@fb.com>
Fri, 01 Aug 2014 12:49:00 -0700
branchstable
changeset 21972 8864528874f7
parent 21971 412ac613fd89
child 21973 3178e4989202
status: don't drop unknown and ignored information (issue4321) By the magic of code movement, we ended up dropping unknown and ignored information when comparing the working directory with a non-parent revision. Let's stop doing it and add a test.
mercurial/context.py
tests/test-status.t
--- a/mercurial/context.py	Fri Aug 01 13:13:24 2014 -0700
+++ b/mercurial/context.py	Fri Aug 01 12:49:00 2014 -0700
@@ -120,7 +120,7 @@
         mf2 = self._manifestmatches(match, s)
 
         modified, added, clean = [], [], []
-        deleted, unknown, ignored = s[3], [], []
+        deleted, unknown, ignored = s[3], s[4], s[5]
         withflags = mf1.withflags() | mf2.withflags()
         for fn, mf2node in mf2.iteritems():
             if fn in mf1:
--- a/tests/test-status.t	Fri Aug 01 13:13:24 2014 -0700
+++ b/tests/test-status.t	Fri Aug 01 12:49:00 2014 -0700
@@ -280,6 +280,12 @@
   R removed
   C deleted
 
+status against non-parent with unknown file (issue4321)
+
+  $ touch unknown
+  $ hg status --rev 0 unknown
+  ? unknown
+
 status of removed but existing in working directory.  "? removed" should
 not be included: