diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..0e4c6f8 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +# Every PR adds an entry at the top of TODO.md's Completed Steps; union keeps +# both sides instead of conflicting. Git never reports a conflict here: read +# the merged entries after every merge or rebase. +TODO.md merge=union diff --git a/TODO.md b/TODO.md index 65e7c6c..673f109 100644 --- a/TODO.md +++ b/TODO.md @@ -21,6 +21,14 @@ fmt-check, and commit. # Completed Steps +- 2026-10-04: Added a root `.gitattributes` that merges `TODO.md` with git's + union merge (issue 98), so two branches that each add an entry at the top of + Completed Steps merge without a conflict. Git now never reports a conflict in + `TODO.md`: a real conflict elsewhere keeps both versions of the line, and when + two new entries share an identical line, one is inserted into the middle of + the other, which a rebase can do to an entry already on `next`. Read the + merged entries after every merge or rebase. This applies to this repository + only; no canonical file changed. - 2026-10-04: The canonical `.dockerignore` now also keeps out the git `config` of a submodule that keeps its own `.git` directory, which still reached the image (issue 88): both git patterns now carry the `**/` prefix. A submodule