This PR changes Lake's materialization process to run remove untracked files in tracked directories (via `git clean -xf`) when updating dependency repositories. This ensures stale leftovers in the source tree are removed. In particular, if a `.hash` ends up in the source tree and the package is updated, that `.hash` file will be stale but nonetheless trusted by a Lake build. This will cause incorrect trace computation and break builds. This happened with ProofWidgets in Mathlib (see [this Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/ProofWidgets.20not.20up-to-date)). This PR serves as alternative to #13130 (by @kim-em) and instead provides a more generic solution to the problem. Nonetheless, thank them for diagnosing this issue in the first place! |
||
|---|---|---|
| .. | ||
| examples | ||
| tests | ||
| .gitattributes | ||
| .gitignore | ||
| build.sh | ||
| clean-build.sh | ||
| lakefile.toml | ||
| Makefile | ||
| time-build.sh | ||