--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-hgignore.t Wed Sep 15 22:18:46 2010 +0200
@@ -0,0 +1,121 @@
+ $ hg init
+
+Test issue 562: .hgignore requires newline at end:
+
+ $ touch foo
+ $ touch bar
+ $ touch baz
+ $ cat > makeignore.py <<EOF
+ > f = open(".hgignore", "w")
+ > f.write("ignore\n")
+ > f.write("foo\n")
+ > # No EOL here
+ > f.write("bar")
+ > f.close()
+ > EOF
+
+ $ python makeignore.py
+
+Should display baz only:
+
+ $ hg status
+ ? baz
+
+ $ rm foo bar baz .hgignore makeignore.py
+
+ $ touch a.o
+ $ touch a.c
+ $ touch syntax
+ $ mkdir dir
+ $ touch dir/a.o
+ $ touch dir/b.o
+ $ touch dir/c.o
+
+ $ hg add dir/a.o
+ $ hg commit -m 0
+ $ hg add dir/b.o
+
+ $ hg status
+ A dir/b.o
+ ? a.c
+ ? a.o
+ ? dir/c.o
+ ? syntax
+
+ $ echo "*.o" > .hgignore
+ $ hg status 2>&1 | sed -e 's/abort: .*\.hgignore:/abort: .hgignore:/'
+ abort: .hgignore: invalid pattern (relre): *.o
+
+ $ echo ".*\.o" > .hgignore
+ $ hg status
+ A dir/b.o
+ ? .hgignore
+ ? a.c
+ ? syntax
+
+Check it does not ignore the current directory '.':
+
+ $ echo "^\." > .hgignore
+ $ hg status
+ A dir/b.o
+ ? a.c
+ ? a.o
+ ? dir/c.o
+ ? syntax
+
+ $ echo "glob:**.o" > .hgignore
+ $ hg status
+ A dir/b.o
+ ? .hgignore
+ ? a.c
+ ? syntax
+
+ $ echo "glob:*.o" > .hgignore
+ $ hg status
+ A dir/b.o
+ ? .hgignore
+ ? a.c
+ ? syntax
+
+ $ echo "syntax: glob" > .hgignore
+ $ echo "re:.*\.o" >> .hgignore
+ $ hg status
+ A dir/b.o
+ ? .hgignore
+ ? a.c
+ ? syntax
+
+ $ echo "syntax: invalid" > .hgignore
+ $ hg status 2>&1 | sed -e 's/.*\.hgignore:/.hgignore:/'
+ .hgignore: ignoring invalid syntax 'invalid'
+ A dir/b.o
+ ? .hgignore
+ ? a.c
+ ? a.o
+ ? dir/c.o
+ ? syntax
+
+ $ echo "syntax: glob" > .hgignore
+ $ echo "*.o" >> .hgignore
+ $ hg status
+ A dir/b.o
+ ? .hgignore
+ ? a.c
+ ? syntax
+
+ $ echo "relglob:syntax*" > .hgignore
+ $ hg status
+ A dir/b.o
+ ? .hgignore
+ ? a.c
+ ? a.o
+ ? dir/c.o
+
+ $ echo "relglob:*" > .hgignore
+ $ hg status
+ A dir/b.o
+
+ $ cd dir
+ $ hg status .
+ A b.o
+