Switch to new syntax for .hgignore files.
Here is the new syntax, in summary.
Trailing white space is dropped.
The escape character is "\".
Comments start with #.
Empty lines are skipped.
Lines can be of the following formats:
syntax: regexp # defaults following lines to non-rooted regexps
syntax: glob # defaults following lines to non-rooted globs
re:pattern # non-rooted regular expression
glob:pattern # non-rooted glob
pattern # pattern of the current default type
The default pattern type is regexp, which is completely backwards
compatible with the old hgignore syntax.
In the dirstate class, the ignore method has been reworked to be based
on the util.matcher function, by way of a new dirstate.hgignore
method.
#!/bin/sh
hg init
touch a
hg add a
hg commit -m "Added a" -d "0 0"
touch main
hg add main
hg commit -t "Added main" -d "0 0"
hg checkout 0
echo Main should be gone
ls
touch side1
hg add side1
hg commit -m "Added side1" -d "0 0"
touch side2
hg add side2
hg commit -m "Added side2" -d "0 0"
hg log
echo Should have two heads, side2 and main
hg heads
echo Should show "a side1 side2"
ls
hg update --debug -C 1
echo Should only show "a main"
ls