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.
--- 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: