Support rebase merges#60
Merged
Merged
Conversation
Re-vendors git-merge-onto 0.2.0 and passes --absorbed in the action's re-parent and in the posted resolution command, so the result descends from the merged branch's tip and the PR stays mergeable (and its resume event firing) until it is retargeted. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PHUVU3Ek3U9j3LrdjPnyAy
A rebase merge lands the branch's content as new commits without merging its history, same as a squash spread over several commits, and the single-merge re-parent only reads the landed tip's tree. So the squash path handles it as-is, and the squash-vs-rebase detection (commit-PR association polling) goes away; the only case left to detect is a merge commit, where the action has nothing to re-parent. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PHUVU3Ek3U9j3LrdjPnyAy
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.
Stacked on #59.
A rebase merge lands the branch's content as new commits without merging its history, same as a squash spread over several commits. The old refusal reasons were specific to the merge dance, which merged
SQUASH_COMMIT~and so could conflict against intermediate copies; the single-merge re-parent (#56) only reads the landed tip's tree, and with--absorbed(#59) the recorded parent is the merged branch's tip in both cases. So the squash path handles rebase merges as-is.This deletes the squash-vs-rebase detection (
is_rebase_mergeand its commit-PR association polling, the flakiest part of the action: the association is computed asynchronously and had to be waited for). The only case left to detect is a merge-commit merge, where the children already contain their parent's history and the action only retargets.tests/test_rebase_merge_skip.sh, which asserted the old refusal, becomestests/test_rebase_merge.shand asserts the update.Generated by Claude Code