Skip to content

Replace patch-id rebase detection with merge-tree comparison - #246

Merged
jerry-skydio merged 1 commit into
mainfrom
jerry/revup/main/patchidtree
May 19, 2026
Merged

jerry-skydio merged 1 commit into
mainfrom
jerry/revup/main/patchidtree

Conversation

@jerry-skydio

@jerry-skydio jerry-skydio commented May 8, 2026 •

Copy link
Copy Markdown
Collaborator

Patch-id can produce false matches on large blocks of repeated text.
Instead, apply each local commit onto the remote commit's parent via
merge-tree and compare the resulting tree to the remote tree.

This also fixes a long standing corner case where a change could be
marked non-rebase even though applying that commit would result in the
same thing. This was because diffs that are already applied are accepted
as no-ops, but still affect the patch id.

Fixes: #182
Fixes: #174

@jerry-skydio

jerry-skydio commented May 8, 2026 •

Copy link
Copy Markdown
Collaborator Author

Reviews in this chain:
└#246 Replace patch-id rebase detection with merge-tree comparison

@jerry-skydio

jerry-skydio commented May 8, 2026 •

Copy link
Copy Markdown
Collaborator Author
# head base diff date summary
0 123edbe6 0ef7ecb0 diff May 7 19:17 PM 2 files changed, 53 insertions(+), 68 deletions(-)
1 0253b888 2f428c79 diff May 11 14:21 PM 4 files changed, 107 insertions(+), 58 deletions(-)
2 6dc613e5 b1104d77 rebase May 18 18:44 PM 0 files changed
3 162c8ba7 8686667c rebase May 18 18:51 PM 0 files changed
4 cfc0a80e f29bfafb diff May 18 18:53 PM 0 files changed

@jerry-skydio
jerry-skydio force-pushed the jerry/revup/main/patchidtree branch from 123edbe to 0253b88 Compare May 11, 2026 21:21
@jerry-skydio
jerry-skydio changed the base branch from main to jerry/revup/main/evenmoretests May 11, 2026 21:21
@jerry-skydio
jerry-skydio force-pushed the jerry/revup/main/evenmoretests branch from 2f428c7 to b1104d7 Compare May 19, 2026 01:44
@jerry-skydio
jerry-skydio force-pushed the jerry/revup/main/patchidtree branch from 0253b88 to 6dc613e Compare May 19, 2026 01:44
@jerry-skydio
jerry-skydio force-pushed the jerry/revup/main/evenmoretests branch from b1104d7 to 8686667 Compare May 19, 2026 01:51
@jerry-skydio
jerry-skydio force-pushed the jerry/revup/main/patchidtree branch from 6dc613e to 162c8ba Compare May 19, 2026 01:51
Base automatically changed from jerry/revup/main/evenmoretests to main May 19, 2026 01:53
Patch-id can produce false matches on large blocks of repeated text.
Instead, apply each local commit onto the remote commit's parent via
merge-tree and compare the resulting tree to the remote tree.

This also fixes a long standing corner case where a change could be
marked non-rebase even though applying that commit would result in the
same thing. This was because diffs that are already applied are accepted
as no-ops, but still affect the patch id.

Fixes: #182
Fixes: #174
@jerry-skydio
jerry-skydio force-pushed the jerry/revup/main/patchidtree branch from 162c8ba to cfc0a80 Compare May 19, 2026 01:53
@jerry-skydio
jerry-skydio merged commit e0dcbc2 into main May 19, 2026
5 checks passed
@jerry-skydio
jerry-skydio deleted the jerry/revup/main/patchidtree branch May 19, 2026 02:05
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.

Use merge-tree instead of patch-id When using Branches: and PR is merged, rebase detection can fail and cause pr to be re-created

4 participants