tests/test-hgignore.t
changeset 12312 83a310f2f14a
parent 6479 31abcae33b4f
child 12366 c01dc9087d9a
--- /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
+