--- a/tests/test-status.t Thu Feb 23 00:07:54 2012 +0900
+++ b/tests/test-status.t Thu Feb 23 00:07:54 2012 +0900
@@ -295,3 +295,39 @@
$ hg ci -q -A -m 'add another file'
$ hg status -A --rev 1:2 010a
C 010a
+
+ $ cd ..
+
+test "hg status" with "directory pattern" which matches against files
+only known on target revision.
+
+ $ hg init repo6
+ $ cd repo6
+
+ $ echo a > a.txt
+ $ hg add a.txt
+ $ hg commit -m '#0'
+ $ mkdir -p 1/2/3/4/5
+ $ echo b > 1/2/3/4/5/b.txt
+ $ hg add 1/2/3/4/5/b.txt
+ $ hg commit -m '#1'
+
+ $ hg update -C 0 > /dev/null
+ $ hg status -A
+ C a.txt
+
+the directory matching against specified pattern should be removed,
+because directory existence prevents 'dirstate.walk()' from showing
+warning message about such pattern.
+
+ $ test ! -d 1
+ $ hg status -A --rev 1 1/2/3/4/5/b.txt
+ R 1/2/3/4/5/b.txt
+ $ hg status -A --rev 1 1/2/3/4/5
+ R 1/2/3/4/5/b.txt
+ $ hg status -A --rev 1 1/2/3
+ R 1/2/3/4/5/b.txt
+ $ hg status -A --rev 1 1
+ R 1/2/3/4/5/b.txt
+
+ $ cd ..