test: validate imported merge conflicts against kit #77 - #125
Merged
wesm merged 10 commits intoSep 1, 2026
Merged
Conversation
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: Combined Review (
|
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: Combined Review (
|
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: Combined Review (
|
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: Combined Review (
|
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.
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
GitBackend.ImportPullRequestthat performs a real conflicting merge and checksUUstatus, diff3 markers, and both sides' content.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.Landing order
go.kenn.io/kit v0.23.0.Related: #112
Related kit change: kenn-io/kit#77
Verification note
The focused pull-request suite and full
make testpass against released kit v0.23.0.make build,make vet,make lint, andmake docs-checkalso pass. The full suite previously hit an unrelated 2-second SSH resolver timing bound once; the rerun completed successfully.