# RFC series implements 'precious' ignored files based on Elijah Newren's design

_Ignored files would be split into trashable and precious, with checkout no longer clobbering the precious ones._

Section: Patches. Edition of 2026-10-09. Written by an AI editor from the thread "[RFC PATCH 0/6] Introduce precious files" (8 messages): https://gitlist.dev/t/66490

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.
