chore: merge CHANGELOG.md with the union driver #144
No reviewers
Labels
No labels
breaking-change
bug
documentation
duplicate
enhancement
good first issue
help wanted
performance
question
wontfix
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Grandiras/ATProto.NET!144
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore-changelog-union-merge"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of the v0.7.0 cycle (#141). This one-line repo-process change adds
CHANGELOG.md merge=unionto.gitattributes.Why: every PR adds bullets at the top of
## [Unreleased], so any two PRs open at the same time conflict there. Resolving that conflict changes the PR head, and the approval is only valid for the reviewed head, so each conflict also costs a fresh review. With about 30 PRs in this cycle, that adds up to a lot of repeated rebases and re-reviews.Effect: git's built-in
uniondriver keeps both sides' lines, so the file merges cleanly. I checked this withgit merge-tree --write-treeon two branches that each add subsections to[Unreleased]: no conflict, and both sides' bullets are kept. The cost is cosmetic: subsection headers can repeat (two### Changedblocks). The release commit (#140) already condenses[Unreleased]and will tidy them.No CHANGELOG entry: this is repository tooling, not runtime, API or build behaviour.
After merging, I'll check whether Forgejo's mergeability check respects it. #143 conflicts only in
CHANGELOG.md, so it should turn mergeable.🤖 Generated with Claude Code
@claude /review
🤖 Reviewing this PR — follow along in the action run; the reply will link the full session transcript.
📜 Live transcript — updating every ~5 minutes while the task runs.
✅ Verdict: approve — no blocking issues found.
Sound, minimal repo-process change.
merge=unionis a built-in Git low-level merge driver (seegitattributes(5)) — nomerge.union.driverconfig needed, so it works for any contributor with stock Git the moment they pull this file. No existing.gitattributesto conflict with. The tradeoff called out in the description (duplicate section headers, cleaned up at release time) is the expected behavior of a line-based union merge and is reasonable given the stated goal of avoiding repeated CHANGELOG-only conflicts across ~30 parallel PRs.One open question the author already flagged rather than glossed over: whether Forgejo's own mergeability/API-driven merge path (as opposed to a local
git merge) actually honors.gitattributesmerge drivers — some forges perform merges via an embedded git library that may not implement custom/built-in merge drivers the same way thegitCLI does. That's a real risk to the stated goal (auto-resolving PR conflicts in the UI) but not a defect in this diff, and the author says they'll verify it post-merge, so it doesn't block this PR.No CHANGELOG entry is correctly omitted per the repo's own rule (repository tooling, not runtime/API/build behavior).
⏱ 0m 27s · 4 turns · tokens: 12.5k in / 2.1k out (+128.4k cache-read)
📜 Full session transcript