Repository navigation
Conversation
This was referenced Oct 27, 2026
seedds
added a commit
that referenced
this pull request
Oct 27, 2026
Keep one gallery row per game in docs/images/gallery.tsv and generate the existing three-column README table. Scope union merging to that TSV and reject duplicate game identities after conflicting edits. Keep handwritten reference docs on normal merging; this lands independently of #400. Preserve every current gallery entry, allow unknown IPA sizes without an empty subcaption, and escape captions and notes at the HTML boundary. Document regeneration and conflict recovery and test concurrent additions with a real Git merge. All five PR checks pass. The review's Python tool suite passed 384 tests with 16 skipped; the 10 documentation tests and both generated-document checks pass again on current main. README is byte-identical apart from its two generator markers. No runtime paths or game profiles change. Co-authored-by: v0lumehi <aljic.zijad@gmail.com>
v0lumehi
force-pushed
the
docs-union
branch
2 times, most recently
from
October 27, 2026 18:07
9f56af6 to
df2db13
Compare
v0lumehi
force-pushed
the
docs-union
branch
2 times, most recently
from
October 27, 2026 20:43
aa0a594 to
5361d04
Compare
3 tasks done
v0lumehi
force-pushed
the
docs-union
branch
4 times, most recently
from
October 29, 2026 16:07
6d9dd7e to
c3e2f17
Compare
About four in five new reference entries go at the end of their file (437 of 551 new ### entries in the last 400 commits to docs/reference), and docs/agents/symptoms.md is generated from them line for line. So two pull requests that each add an entry to the same file, rendering.md or shaders.md most often, conflict twice: in the reference file and in the index, both at the end of the same group. .gitattributes sets merge=union for docs/reference/*.md and docs/agents/symptoms.md. Git's built-in union driver keeps both sides' new lines; it needs no setup and applies to merges, rebases and cherry-picks. Checked in a clone: two branches that each append an entry to rendering.md and regenerate the index rebase onto each other without a conflict, the index is current afterwards (docs_symptoms.py --check), and without the attribute the same rebase conflicts in both files. Where both sides change the same line, the union driver keeps both versions without a conflict. test_docs now fails on an entry with a Symptom, Cause, Fix or Found on bullet more than once, or a heading twice in one file: checked with two branches that each add a game to the same Found on line, which merge into two Found on lines that the test reports. The seven entries that already have a bullet twice are listed as the baseline, and a count there may only go down.
Owner
|
Thanks for this. The implementation does what it says, but I'm closing it: measured against the open PRs, the benefit is small, and it trades a visible conflict for a silent one. I merged all 132 open PRs that touch
The problems I found:
These counts are one snapshot, and I have no timing for how long hand resolution takes. For comparison, a conflict on two new entries is one hunk to resolve by keeping both, and rerunning #472 is stacked on this PR, so it would need rebasing onto |
Know-It-All-Brother
pushed a commit
to Know-It-All-Brother/nxnative
that referenced
this pull request
Nov 9, 2026
Keep one gallery row per game in docs/images/gallery.tsv and generate the existing three-column README table. Scope union merging to that TSV and reject duplicate game identities after conflicting edits. Keep handwritten reference docs on normal merging; this lands independently of seedds#400. Preserve every current gallery entry, allow unknown IPA sizes without an empty subcaption, and escape captions and notes at the HTML boundary. Document regeneration and conflict recovery and test concurrent additions with a real Git merge. All five PR checks pass. The review's Python tool suite passed 384 tests with 16 skipped; the 10 documentation tests and both generated-document checks pass again on current main. README is byte-identical apart from its two generator markers. No runtime paths or game profiles change. Co-authored-by: v0lumehi <aljic.zijad@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Update: rebased on
mainc9d555a, after #401 landed with the union rule forgallery.tsvonly..gitattributesnow has #401's line plus this PR's two lines fordocs/reference/*.mdanddocs/agents/symptoms.md.test_docs.pykeeps #401'sGallerytests and adds this PR'sUnionMergeguard;test_docspasses.Part of #313 ("Conflicts out of the way"). Separate from #398 (the game count in
AGENTS.md); the two don't depend on each other.Problem
About four in five new reference entries go at the end of their file: 437 of 551 new
###entries in the last 400 commits todocs/reference(a rough count over the diff hunks).docs/agents/symptoms.mdis generated from those entries line for line, in the same order. So two PRs that each add an entry to the same file (rendering.mdwith 117 new entries andshaders.mdwith 109 lead) conflict twice: in the reference file, and in the index at the end of the same group.symptoms.mdwas touched by 82 commits.Change
.gitattributes:merge=unionfordocs/reference/*.mdanddocs/agents/symptoms.md. Git's built-in union driver keeps both sides' new lines. It needs no setup and applies to merges, rebases and cherry-picks, so also when you take a PR in by rebasing or squashing it locally.test_docs.py, the guard. When both sides change the same line, union keeps both versions without a conflict marker. The likely case is two PRs that each add a game to the same "Found on" line. The test fails on an entry with aSymptom,Cause,FixorFound onbullet more than once, or a###heading twice in one file. Seven entries already have a bullet twice today. They are listed as the baseline, and a count there may only go down; you may want to merge those by hand at some point.Risk
Prose outside the four bullets (a paragraph two sides reword at the same time) isn't guarded: union would keep both wordings. Entries are mostly bullets, and
docs_symptoms.py --checkstill catches an index that comes out of order. If you'd rather not have union on the reference files, the attribute forsymptoms.mdalone is safe (it's generated and fully checked), but then the reference files keep conflicting.Checked
In a throwaway clone:
rendering.mdand regenerate the index. With the attribute, rebasing one onto the other gives no conflict, both entries are there, anddocs_symptoms.py --checksays the index is current. Without the attribute, the same rebase conflicts in bothrendering.mdandsymptoms.md.audio.md. The union rebase keeps two "Found on" lines without a conflict, and the new test reportsaudio.md: "SDK 8's longer AudioRendererParameter": Found on 2 times.python3 -m unittest dm/tools/tests/test_docs.py: OK. Lint ratchet: 0 new.