OXYGENHUB

A per-path union merge: changelog-style files keep both sides of an adjacent insertion issue #145 closed: completed andymccall opened this · 2 comments

andymccall

Part C of issue #121 (Andy, 2026-10-26: 'B now, then C'). An opt-in rule in .oxyattributes (gitattributes syntax, spec §19), CHANGELOG.md merge=union, makes an adjacent insertion in a matching file no conflict at all: the state orders its sides earliest change first, as oxy resolve --both would, so two proposals each adding an Unreleased line no longer conflict on landing. The rule is read from the state's own .oxyattributes, so every peer and the hub agree. Edit/edit conflicts in such files still conflict. Nothing changes for files without the rule.

andymccall set labels feature ·

andymccall

Decided (Andy, 2026-10-26): auto-resolution, not a state-level rule. merge=union in .oxyattributes leaves 'conflicted' meaning what it does; tools settle a union file's adjacent insertions themselves: a checkout or pull writes both sides with no markers (the next commit records the resolution), and OxygenHub, landing a proposal whose only conflicts are adjacent insertions in union files, adds the keep-both resolution as part of the land. Every resolution stays a visible, signed change.

referenced by 2 changes on 26 Oct 2026

4afe288b7946 ac4ec124b9f2

andymccall

Done: oxy 85b2a985 (checkout settles union files) and 0e0d814c (Repo::union_resolution); hub fa1f2f2d (a proposal whose only conflicts are union adjacent insertions lands with their resolution). Oxygen's own CHANGELOG.md is marked union. Not deployed or released yet.

andymccall closed ·