mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
76026ecba1
For GUI clients its sometimes important to know which files will be ignored and which files will be important. This allows the GUI client to skipping redoing a 'hg status' when the files are ignored but have changed. (For instance, a typical case is that the "build" directory inside some project is ignored but files in it frequently change.)
125 lines
1.8 KiB
Perl
125 lines
1.8 KiB
Perl
$ hg init
|
|
|
|
Issue562: .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
|
|
abort: $TESTTMP/.hgignore: invalid pattern (relre): *.o
|
|
[255]
|
|
|
|
$ 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
|
|
$TESTTMP/.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
|
|
|
|
$ hg debugignore
|
|
(?:(?:|.*/)[^/]*(?:/|$))
|