Mirko Faina's series is based on c46c1e3772 (Start Git 2.98 cycle). It starts from Elijah Newren's earlier design document, which is included unchanged as the first patch. The document proposes splitting ignored files into 'trashable', which is what all ignored files are considered today, and 'precious'. Faina says the series does not yet update the documentation, and he wants feedback before moving on to git clean.

The remaining patches move the pattern flag macros from dir.h into a pattern_flags enum in attr.h, and teach parse_path_pattern() about precious patterns. It also detects the invalid '!$' form, a negated precious pattern, and the signature change lets callers report that error. add_pattern() gets a flag to reject precious patterns where they make no sense, such as $GIT_DIR/info/sparse-checkout; it fails with a warning, as it does for other invalid patterns.

Further patches change check_ok_to_remove() in unpack-trees.c so git switch and git checkout clobber only trashable ignored files, and add --ignored=trashable and --ignored=precious variants to git ls-files. Faina notes the clobbering change is missing tests because he was unsure where to place them.

No review comments appear in the excerpts.