Skip to content

test: validate imported merge conflicts against kit #77 - #125

Merged
wesm merged 10 commits into
mainfrom
kenn-forge/issue-112-merge-driver-override-reports-conflicts-without-conflict-markers
Sep 1, 2026
Merged

test: validate imported merge conflicts against kit #77#125
wesm merged 10 commits into
mainfrom
kenn-forge/issue-112-merge-driver-override-reports-conflicts-without-conflict-markers

Conversation

@wesm

@wesm wesm commented Sep 1, 2026

Copy link
Copy Markdown
Member

This PR proves that kwt preserves both sides of a merge conflict in an imported pull-request worktree. Before the kit repair, a custom merge driver could report a conflict while leaving only the current side in the file; staging that file could lose the incoming change.

What this changes

  • Adds a regression test through GitBackend.ImportPullRequest that performs a real conflicting merge and checks UU status, diff3 markers, and both sides' content.
  • Uses released go.kenn.io/kit v0.23.0, which contains kit PR Keep daemon identity stable across WSL clock changes #77's safe merge-driver repair.
  • Documents the higher Git floor for pull-request import in the installation guides, CLI reference, pull-request contract, command help, and changelog.

Landing order

  1. Run the focused and full checks with go.kenn.io/kit v0.23.0.
  2. Merge this kwt PR.
  3. Release kwt from the merged, tagged dependency.

Related: #112
Related kit change: kenn-io/kit#77

Verification note

The focused pull-request suite and full make test pass against released kit v0.23.0. make build, make vet, make lint, and make docs-check also pass. The full suite previously hit an unrelated 2-second SSH resolver timing bound once; the rerun completed successfully.

wesm and others added 7 commits August 31, 2026 16:53
kwt must prove that imported worktrees preserve both sides of a merge conflict
before kit's merge-driver repair is released. The design keeps the behavior in
kit, tests it through kwt's real import path, and records the required Git
version documentation update.

Generated with Codex
Co-authored-by: Codex <codex@openai.com>
The pre-release kwt validation must not leave a dependency on a commit that a
squash merge removes from kit's main history. Record the v0.23.0 handoff and
the exact fixture, documentation, help-text, and verification requirements so
the release transition does not lose coverage.

Generated with Codex
Co-authored-by: Codex <codex@openai.com>
Record the test-first fixture, kit PR validation dependency, user-facing Git
version requirements, and the required switch to kit v0.23.0 before the kwt PR
merges.

Generated with Codex
Co-authored-by: Codex <codex@openai.com>
Imported pull-request worktrees must keep both sides of a later merge conflict
so users can resolve it. The old kit merge-driver override reports the conflict
but leaves only the current side in the file, which can discard the incoming
change when staged.

Generated with Codex
Co-authored-by: Codex <codex@openai.com>
The kwt pull-request path relies on kit to isolate custom merge drivers. Test
the path against kit PR #77 before kit is released so a release tag cannot
create another version of the same user-facing bug.

Generated with Codex
Co-authored-by: Codex <codex@openai.com>
The real backend keeps Git configuration bindings isolated, so a global URL
rewrite cannot both fetch locally and pass push-destination validation. Record
the local fetch origin and canonical push URL that the regression fixture uses.

Generated with Codex
Co-authored-by: Codex <codex@openai.com>
Pull-request imports now depend on kit's safe merge-driver behavior, which
requires a newer Git than ordinary kwt worktree commands. State the exception
where users install and use kwt, and expose it in import help and the changelog.

Generated with Codex
Co-authored-by: Codex <codex@openai.com>
@roborev-ci

roborev-ci Bot commented Sep 1, 2026

Copy link
Copy Markdown

roborev: Combined Review (e4a7ae1)

Verdict: No Medium, High, or Critical issues found.

Reviewers found no actionable findings at or above Medium severity.


Reviewers: 2 done | Synthesis: codex, 4s | Total: 5m22s

The Ubuntu CI runner returned from the merge command without entering a merge
state when the test named the target branch directly. Merge the captured target
commit instead and include Git's output in the assertion so a future runner
difference is diagnosable.

Generated with Codex
Co-authored-by: Codex <codex@openai.com>
@roborev-ci

roborev-ci Bot commented Sep 1, 2026

Copy link
Copy Markdown

roborev: Combined Review (53f0256)

Verdict: No Medium, High, or Critical findings were reported; only Low-severity issues were identified.

No findings meet the requested severity threshold for inclusion.


Reviewers: 2 done | Synthesis: codex, 6s | Total: 6m20s

Git 2.54 on the Linux CI runner aborted the conflict merge before recording
the unmerged path because the test subprocess had no committer identity.
Set the test identity explicitly so the regression exercises kit's merge
driver instead of ambient Git configuration.

Generated with Codex
Co-authored-by: Codex <codex@openai.com>
@roborev-ci

roborev-ci Bot commented Sep 1, 2026

Copy link
Copy Markdown

roborev: Combined Review (e34705d)

No issues found.


Reviewers: 2 done | Synthesis: codex | Total: 3m10s

Keep kwt on the permanent kit release after validating the merge-driver repair
through the pull-request import path. This removes the dependency on the
squash-merged PR commit before the kwt release.

Generated with Codex
Co-authored-by: Codex <codex@openai.com>
@roborev-ci

roborev-ci Bot commented Sep 1, 2026

Copy link
Copy Markdown

roborev: Combined Review (f780009)

Verdict: No Medium, High, or Critical issues found.

The only reported issue was Low severity and has been omitted per the requested threshold.


Reviewers: 2 done | Synthesis: codex, 4s | Total: 8m7s

@wesm
wesm merged commit cdca6cf into main Sep 1, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant