# HG changeset patch
# User Pierre-Yves David <pierre-yves.david@fb.com>
# Date 1406922540 25200
#      Fri Aug 01 12:49:00 2014 -0700
# Branch stable
# Node ID 8864528874f77272742551223b8265ff4d125534
# Parent  412ac613fd89cbd82fd56f6f08308e5cd95f58d8
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.

diff --git a/mercurial/context.py b/mercurial/context.py
--- a/mercurial/context.py
+++ b/mercurial/context.py
@@ -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:
diff --git a/tests/test-status.t b/tests/test-status.t
--- a/tests/test-status.t
+++ b/tests/test-status.t
@@ -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: