From cfef3633f9529495bf15e23d10e7667c47ce871f Mon Sep 17 00:00:00 2001 From: sneak Date: Sun, 4 Oct 2026 09:33:13 +0000 Subject: [PATCH] Merge TODO.md with git's union merge (closes #98) Every PR adds an entry at the top of Completed Steps in TODO.md, so each merge to next left every other open PR conflicting there. A root .gitattributes now marks TODO.md merge=union, so two branches inserting at the same place merge without a conflict. Git now never reports a conflict in TODO.md: a real conflict elsewhere keeps both versions of the line, and two new entries that share an identical line end up one inside the other. The .gitattributes comment and the TODO.md entry say to read the merged entries after every merge or rebase. This applies to this repository only; nothing canonical changes. Model: opus-5-5 --- .gitattributes | 4 ++++ TODO.md | 8 ++++++++ 2 files changed, 12 insertions(+) create mode 100644 .gitattributes 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 -- 2.54.0