##// END OF EJS Templates
py3: use b'%d' to convert int to bytes instead of str()...
py3: use b'%d' to convert int to bytes instead of str() Differential Revision: https://phab.mercurial-scm.org/D3280

File last commit:

r35230:feecfefe default
r37599:5b836a4c default
Show More
test-hgignore.t
339 lines | 6.8 KiB | text/troff | Tads3Lexer
Durham Goode
test: move ignore test run into a subdirectory...
r25869 $ hg init ignorerepo
$ cd ignorerepo
Adrian Buehlmann
tests: unify test-hgignore
r12312
Siddharth Agarwal
match: introduce nevermatcher for when no ignore files are present...
r32600 debugignore with no hgignore should be deterministic:
$ hg debugignore
<nevermatcher>
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue562: .hgignore requires newline at end:
Adrian Buehlmann
tests: unify test-hgignore
r12312
$ 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
Augie Fackler
cleanup: use $PYTHON to run python in many more tests...
r32940 $ $PYTHON makeignore.py
Adrian Buehlmann
tests: unify test-hgignore
r12312
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
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ hg status
Durham Goode
test: move ignore test run into a subdirectory...
r25869 abort: $TESTTMP/ignorerepo/.hgignore: invalid pattern (relre): *.o (glob)
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 [255]
Adrian Buehlmann
tests: unify test-hgignore
r12312
Matt Harbison
debugignore: eliminate inconsistencies with `hg status` (issue5222)...
r33507 Ensure given files are relative to cwd
$ echo "dir/.*\.o" > .hgignore
$ hg status -i
I dir/c.o
$ hg debugignore dir/c.o dir/missing.o
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 dir/c.o is ignored
Matt Harbison
debugignore: eliminate inconsistencies with `hg status` (issue5222)...
r33507 (ignore rule in $TESTTMP/ignorerepo/.hgignore, line 1: 'dir/.*\.o') (glob)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 dir/missing.o is ignored
Matt Harbison
debugignore: eliminate inconsistencies with `hg status` (issue5222)...
r33507 (ignore rule in $TESTTMP/ignorerepo/.hgignore, line 1: 'dir/.*\.o') (glob)
$ cd dir
$ hg debugignore c.o missing.o
c.o is ignored
(ignore rule in $TESTTMP/ignorerepo/.hgignore, line 1: 'dir/.*\.o') (glob)
missing.o is ignored
(ignore rule in $TESTTMP/ignorerepo/.hgignore, line 1: 'dir/.*\.o') (glob)
For icasefs, inexact matches also work, except for missing files
#if icasefs
$ hg debugignore c.O missing.O
c.o is ignored
(ignore rule in $TESTTMP/ignorerepo/.hgignore, line 1: 'dir/.*\.o') (glob)
missing.O is not ignored
#endif
$ cd ..
Adrian Buehlmann
tests: unify test-hgignore
r12312 $ echo ".*\.o" > .hgignore
Mads Kiilerich
tests: fix incorrect markup of continued lines of sh commands
r16487 $ hg status
Adrian Buehlmann
tests: unify test-hgignore
r12312 A dir/b.o
? .hgignore
? a.c
? syntax
Bryan O'Sullivan
test-hgignore.t: add tests for comments...
r27326 Ensure that comments work:
Matt Harbison
test-hgignore: conditionalize an illegal Windows filename
r27381 $ touch 'foo#bar' 'quux#'
#if no-windows
$ touch 'baz\#wat'
#endif
Bryan O'Sullivan
test-hgignore.t: add tests for comments...
r27326 $ cat <<'EOF' >> .hgignore
> # full-line comment
> # whitespace-only comment line
> syntax# pattern, no whitespace, then comment
> a.c # pattern, then whitespace, then comment
> baz\\# # escaped comment character
> foo\#b # escaped comment character
> quux\## escaped comment character at end of name
> EOF
$ hg status
A dir/b.o
? .hgignore
Matt Harbison
test-hgignore: conditionalize an illegal Windows filename
r27381 $ rm 'foo#bar' 'quux#'
#if no-windows
$ rm 'baz\#wat'
#endif
Bryan O'Sullivan
test-hgignore.t: add tests for comments...
r27326
Martin von Zweigbergk
tests: fix an incorrect description in test-ignore.t...
r33477 Check that '^\.' does not ignore the root directory:
Adrian Buehlmann
tests: unify test-hgignore
r12312
$ echo "^\." > .hgignore
$ hg status
A dir/b.o
? a.c
? a.o
? dir/c.o
? syntax
Siddharth Agarwal
test-hgignore: add testing for ui.ignore...
r23628 Test that patterns from ui.ignore options are read:
$ echo > .hgignore
$ cat >> $HGRCPATH << EOF
> [ui]
Durham Goode
test: move ignore test run into a subdirectory...
r25869 > ignore.other = $TESTTMP/ignorerepo/.hg/testhgignore
Siddharth Agarwal
test-hgignore: add testing for ui.ignore...
r23628 > EOF
$ echo "glob:**.o" > .hg/testhgignore
Adrian Buehlmann
tests: unify test-hgignore
r12312 $ hg status
A dir/b.o
? .hgignore
? a.c
? syntax
Siddharth Agarwal
test-hgignore: add testing for ui.ignore...
r23628 empty out testhgignore
$ echo > .hg/testhgignore
Siddharth Agarwal
ignore: resolve ignore files relative to repo root (issue4473) (BC)...
r23629
Test relative ignore path (issue4473):
$ cat >> $HGRCPATH << EOF
> [ui]
> ignore.relative = .hg/testhgignorerel
> EOF
$ echo "glob:*.o" > .hg/testhgignorerel
$ cd dir
Adrian Buehlmann
tests: unify test-hgignore
r12312 $ hg status
A dir/b.o
? .hgignore
? a.c
? syntax
Siddharth Agarwal
ignore: resolve ignore files relative to repo root (issue4473) (BC)...
r23629 $ cd ..
$ echo > .hg/testhgignorerel
Adrian Buehlmann
tests: unify test-hgignore
r12312 $ echo "syntax: glob" > .hgignore
$ echo "re:.*\.o" >> .hgignore
$ hg status
A dir/b.o
? .hgignore
? a.c
? syntax
$ echo "syntax: invalid" > .hgignore
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ hg status
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 $TESTTMP/ignorerepo/.hgignore: ignoring invalid syntax 'invalid'
Adrian Buehlmann
tests: unify test-hgignore
r12312 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
jfh
add debugignore which yields the combined ignore patten of the .hgignore files...
r13396 $ hg debugignore
Martin von Zweigbergk
match: remove support for non-include patterns from includematcher...
r32502 <includematcher includes='(?:(?:|.*/)[^/]*(?:/|$))'>
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
Laurent Charignon
debugignore: find out if a file is being ignored...
r27671 $ hg debugignore b.o
b.o is ignored
Matt Harbison
test-hgignore: add globs for Windows
r27757 (ignore rule in $TESTTMP/ignorerepo/.hgignore, line 1: '*') (glob)
Laurent Charignon
debugignore: find out if a file is being ignored...
r27671
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..
Durham Goode
hgignore: fix regression with hgignore directory matches (issue3921)...
r19128
Check patterns that match only the directory
FUJIWARA Katsunori
tests: add line specific for testing with fsmonitor
r33211 "(fsmonitor !)" below assumes that fsmonitor is enabled with
"walk_on_invalidate = false" (default), which doesn't involve
re-walking whole repository at detection of .hgignore change.
Durham Goode
hgignore: fix regression with hgignore directory matches (issue3921)...
r19128 $ echo "^dir\$" > .hgignore
$ hg status
A dir/b.o
? .hgignore
? a.c
? a.o
FUJIWARA Katsunori
tests: add line specific for testing with fsmonitor
r33211 ? dir/c.o (fsmonitor !)
Durham Goode
hgignore: fix regression with hgignore directory matches (issue3921)...
r19128 ? syntax
Siddharth Agarwal
match: make glob '**/' match the empty string...
r21815
Check recursive glob pattern matches no directories (dir/**/c.o matches dir/c.o)
$ echo "syntax: glob" > .hgignore
$ echo "dir/**/c.o" >> .hgignore
$ touch dir/c.o
$ mkdir dir/subdir
$ touch dir/subdir/c.o
$ hg status
A dir/b.o
? .hgignore
? a.c
? a.o
? syntax
Laurent Charignon
debugignore: find out if a file is being ignored...
r27671 $ hg debugignore a.c
a.c is not ignored
$ hg debugignore dir/c.o
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 dir/c.o is ignored
Matt Harbison
test-hgignore: add globs for Windows
r27757 (ignore rule in $TESTTMP/ignorerepo/.hgignore, line 2: 'dir/**/c.o') (glob)
Durham Goode
match: add 'include:' syntax...
r25215
Check using 'include:' in ignore file
$ hg purge --all --config extensions.purge=
$ touch foo.included
$ echo ".*.included" > otherignore
$ hg status -I "include:otherignore"
? foo.included
$ echo "include:otherignore" >> .hgignore
$ hg status
A dir/b.o
? .hgignore
? otherignore
Check recursive uses of 'include:'
Durham Goode
ignore: fix include: rules depending on current directory (issue4759)...
r25870 $ echo "include:nested/ignore" >> otherignore
$ mkdir nested
$ echo "glob:*ignore" > nested/ignore
Durham Goode
match: add 'include:' syntax...
r25215 $ hg status
A dir/b.o
Durham Goode
ignore: use 'include:' rules instead of custom syntax...
r25216
Durham Goode
match: enable 'subinclude:' syntax...
r25283 $ cp otherignore goodignore
Durham Goode
ignore: use 'include:' rules instead of custom syntax...
r25216 $ echo "include:badignore" >> otherignore
$ hg status
Matt Harbison
tests: add a substitution for ENOENT/ERROR_FILE_NOT_FOUND messages...
r35230 skipping unreadable pattern file 'badignore': $ENOENT$
Durham Goode
ignore: use 'include:' rules instead of custom syntax...
r25216 A dir/b.o
Durham Goode
match: enable 'subinclude:' syntax...
r25283
$ mv goodignore otherignore
Durham Goode
ignore: fix include: rules depending on current directory (issue4759)...
r25870 Check using 'include:' while in a non-root directory
$ cd ..
$ hg -R ignorerepo status
A dir/b.o
$ cd ignorerepo
Durham Goode
match: enable 'subinclude:' syntax...
r25283 Check including subincludes
$ hg revert -q --all
$ hg purge --all --config extensions.purge=
$ echo ".hgignore" > .hgignore
$ mkdir dir1 dir2
$ touch dir1/file1 dir1/file2 dir2/file1 dir2/file2
$ echo "subinclude:dir2/.hgignore" >> .hgignore
$ echo "glob:file*2" > dir2/.hgignore
$ hg status
? dir1/file1
? dir1/file2
? dir2/file1
Check including subincludes with regexs
$ echo "subinclude:dir1/.hgignore" >> .hgignore
$ echo "regexp:f.le1" > dir1/.hgignore
$ hg status
? dir1/file2
? dir2/file1
Check multiple levels of sub-ignores
$ mkdir dir1/subdir
$ touch dir1/subdir/subfile1 dir1/subdir/subfile3 dir1/subdir/subfile4
$ echo "subinclude:subdir/.hgignore" >> dir1/.hgignore
$ echo "glob:subfil*3" >> dir1/subdir/.hgignore
$ hg status
? dir1/file2
? dir1/subdir/subfile4
? dir2/file1
Check include subignore at the same level
$ mv dir1/subdir/.hgignore dir1/.hgignoretwo
$ echo "regexp:f.le1" > dir1/.hgignore
$ echo "subinclude:.hgignoretwo" >> dir1/.hgignore
$ echo "glob:file*2" > dir1/.hgignoretwo
$ hg status | grep file2
[1]
Laurent Charignon
debugignore: find out if a file is being ignored...
r27671 $ hg debugignore dir1/file2
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 dir1/file2 is ignored
Laurent Charignon
debugignore: find out why a file is being ignored (issue4856)...
r27672 (ignore rule in dir2/.hgignore, line 1: 'file*2')
Matt Harbison
debugignore: normalize the file before testing dirstate._ignore()...
r28054
#if windows
Windows paths are accepted on input
$ rm dir1/.hgignore
$ echo "dir1/file*" >> .hgignore
$ hg debugignore "dir1\file2"
dir1\file2 is ignored
(ignore rule in $TESTTMP\ignorerepo\.hgignore, line 4: 'dir1/file*')
$ hg up -qC .
#endif