From 13125ac6f57027315bc97f153a48c198c93ec770 Mon Sep 17 00:00:00 2001 From: clawbot <35+clawbot@noreply.example.org> Date: Sun, 4 Oct 2026 14:14:51 +0200 Subject: [PATCH] Merge TODO.md with git's union merge (closes #98) Every PR here adds an entry at the top of Completed Steps in `TODO.md`, so each merge to `next` left the other open PRs conflicting there. A root `.gitattributes` now marks `TODO.md` with `merge=union`: when two branches insert at the same place, git keeps both sides. It applies to this repository only; nothing canonical changes. Union never reports a conflict in `TODO.md`. When two new entries share an identical line, one can land inside the other, and a rebased entry sits below every entry that reached `next` after the branch was cut, so the merged entries are read after every merge or rebase. Whether Gitea's own conflict check applies the attribute is not known. 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