##// END OF EJS Templates
pager: set some environment variables if they're not set...
pager: set some environment variables if they're not set Git did this already [1] [2]. We want this behavior too [3]. This provides a better default user experience (like, supporting colors) if users have things like "PAGER=less" set, which is not uncommon. The environment variables are provided by a method so extensions can override them on demand. [1]: https://github.com/git/git/blob/6a5ff7acb5965718cc7016c0ab6c601454fd7cde/pager.c#L87 [2]: https://github.com/git/git/blob/6a5ff7acb5965718cc7016c0ab6c601454fd7cde/Makefile#L1545 [3]: https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-March/094780.html

File last commit:

r28054:8515b813 default
r31954:e518192d default
Show More
test-hgignore.t
301 lines | 5.7 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
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
$ 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
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
$ 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
Adrian Buehlmann
tests: unify test-hgignore
r12312 Check it does not ignore the current directory '.':
$ 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
Durham Goode
test: move ignore test run into a subdirectory...
r25869 $TESTTMP/ignorerepo/.hgignore: ignoring invalid syntax 'invalid' (glob)
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
(?:(?:|.*/)[^/]*(?:/|$))
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
$ echo "^dir\$" > .hgignore
$ hg status
A dir/b.o
? .hgignore
? a.c
? a.o
? 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
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
skipping unreadable pattern file 'badignore': No such file or directory
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
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