Skip to content

fix(update): handle inverted merge parent ordering in weave topology#127

Merged
narnaud merged 1 commit intomainfrom
fix-update3
Mar 24, 2026
Merged

fix(update): handle inverted merge parent ordering in weave topology#127
narnaud merged 1 commit intomainfrom
fix-update3

Conversation

@narnaud
Copy link
Owner

@narnaud narnaud commented Mar 24, 2026

Merge commits with inverted parent ordering (feature as 1st parent,
main as 2nd) caused walk_first_parent_line to follow the feature branch
back to root instead of staying on the integration line. This produced a
rebase todo replaying the entire repo history, leading to conflicts.

Fix walk_first_parent_line to detect which parent leads to the merge
base (via graph_descendant_of) and swap if needed. Fix walk_branch_commits
to use merge_base(tip, stop) as the actual stop point for branches forked
before the merge base. Together, these changes correctly identify the
feature branch commits as already upstream, drop them, and produce clean
linear history.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

Merge commits with inverted parent ordering (feature as 1st parent,
main as 2nd) caused walk_first_parent_line to follow the feature branch
back to root instead of staying on the integration line. This produced a
rebase todo replaying the entire repo history, leading to conflicts.

Fix walk_first_parent_line to detect which parent leads to the merge
base (via graph_descendant_of) and swap if needed. Fix walk_branch_commits
to use merge_base(tip, stop) as the actual stop point for branches forked
before the merge base. Together, these changes correctly identify the
feature branch commits as already upstream, drop them, and produce clean
linear history.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@narnaud narnaud merged commit 9013a09 into main Mar 24, 2026
4 checks passed
@narnaud narnaud deleted the fix-update3 branch March 24, 2026 14:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant