Skip to content

Fix rebase conflict resolution attribution#1502

Open
svarlamov wants to merge 1 commit into
feat/attr-fuzzer-v2from
feat/rebase-conflict-resolution-attribution
Open

Fix rebase conflict resolution attribution#1502
svarlamov wants to merge 1 commit into
feat/attr-fuzzer-v2from
feat/rebase-conflict-resolution-attribution

Conversation

@svarlamov

@svarlamov svarlamov commented Jun 5, 2026

Copy link
Copy Markdown
Member

Summary

  • record explicit checkpoints for conflicted files instead of dropping them while the index is unmerged
  • merge conflict-resolution working-log attribution into the already-shifted rebased commit note before writing the note
  • recover exact kept source lines from immutable source/destination commit trees so keep-main, keep-feature, and keep-both resolutions preserve the matching original attribution
  • add TestRepo coverage for AI-resolved conflicts and all keep-side conflict resolution shapes

Root Cause

During rebase conflicts, checkpointing skipped conflicted files, and the post-rebase resolution path treated the conflict-resolution working log separately from the shifted source note. That meant resolutions either lost the new checkpoint attribution or overwrote source attribution instead of combining the immutable commit data and the persisted working log in one deterministic path.

Validation

  • task fmt
  • task lint
  • git diff --check
  • task test

Open in Devin Review

@svarlamov svarlamov marked this pull request as ready for review June 5, 2026 02:18

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@svarlamov svarlamov force-pushed the feat/rebase-conflict-resolution-attribution branch from 8ee8ac7 to fc8a1cf Compare June 5, 2026 17:10
@svarlamov svarlamov force-pushed the feat/attr-fuzzer-v2 branch from 51afa59 to 3d6ec90 Compare June 5, 2026 18:38
@svarlamov svarlamov force-pushed the feat/rebase-conflict-resolution-attribution branch 2 times, most recently from bc55e1e to 373f2bf Compare June 5, 2026 18:55
@svarlamov svarlamov force-pushed the feat/attr-fuzzer-v2 branch from db6d638 to bd6cfa1 Compare June 6, 2026 16:02
@svarlamov svarlamov force-pushed the feat/rebase-conflict-resolution-attribution branch from 373f2bf to e1edfcf Compare June 6, 2026 16:02
@svarlamov svarlamov force-pushed the feat/attr-fuzzer-v2 branch from bd6cfa1 to bd74364 Compare June 6, 2026 16:46
@svarlamov svarlamov force-pushed the feat/rebase-conflict-resolution-attribution branch from e1edfcf to 9c7b655 Compare June 6, 2026 16:46
devin-ai-integration[bot]

This comment was marked as resolved.

@svarlamov svarlamov force-pushed the feat/attr-fuzzer-v2 branch from bd74364 to b0449cb Compare June 6, 2026 17:04
@svarlamov svarlamov force-pushed the feat/rebase-conflict-resolution-attribution branch from 9c7b655 to befb384 Compare June 6, 2026 17:05
@svarlamov svarlamov force-pushed the feat/attr-fuzzer-v2 branch 2 times, most recently from 6bfafc6 to 13b5677 Compare June 6, 2026 19:37
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