Skip to content

Attribute forward-merge conflicts per file on the first-parent line - #4

Merged
RazvanLiviuVarzaru merged 1 commit into
MariaDB:mainfrom
RazvanLiviuVarzaru:fix/conflict-attribution
Oct 15, 2026
Merged

RazvanLiviuVarzaru merged 1 commit into
MariaDB:mainfrom
RazvanLiviuVarzaru:fix/conflict-attribution

Conversation

@RazvanLiviuVarzaru

Copy link
Copy Markdown
Collaborator

Old behaviour: walked rev-list --no-merges target..source, so it also test-merged commits that only arrived through merges (e.g. 10.11 commits in 11.4) straight into the target, against the wrong merge base. The first failure, even one touching none of the conflicted files, was shown as the "first likely source-side commit" for all of them. That is how 23367c88 was blamed for the 11.4 -> 11.8 conflicts.

New behaviour: walks only the source's first-parent line, with merges as single steps, using in-memory git merge-tree instead of a worktree per commit. Each conflicted file is attributed to the commit where it starts to conflict, and the report groups files by that commit. For a merge it names the merger and lists the merged-in commits that touch the files.

The health fingerprint changes shape, so a blocked chain sends one "blocked result changed" notification after deploy.

Old behaviour: walked `rev-list --no-merges target..source`, so it also
test-merged commits that only arrived through merges (e.g. 10.11 commits
in 11.4) straight into the target, against the wrong merge base. The
first failure, even one touching none of the conflicted files, was shown
as the "first likely source-side commit" for all of them. That is how
23367c88 was blamed for the 11.4 -> 11.8 conflicts.

New behaviour: walks only the source's first-parent line, with merges as
single steps, using in-memory `git merge-tree` instead of a worktree per
commit. Each conflicted file is attributed to the commit where it starts
to conflict, and the report groups files by that commit. For a merge it
names the merger and lists the merged-in commits that touch the files.

The health fingerprint changes shape, so a blocked chain sends one
"blocked result changed" notification after deploy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@RazvanLiviuVarzaru
RazvanLiviuVarzaru merged commit 28c6c7a into MariaDB:main Oct 15, 2026
1 check 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