Skip to content

Draft: feat: implement rebasing#534

Open
jakubbortlik wants to merge 10 commits intoharrisoncramer:developfrom
jakubbortlik:feat/implement-rebasing
Open

Draft: feat: implement rebasing#534
jakubbortlik wants to merge 10 commits intoharrisoncramer:developfrom
jakubbortlik:feat/implement-rebasing

Conversation

@jakubbortlik
Copy link
Copy Markdown
Collaborator

@jakubbortlik jakubbortlik commented Mar 4, 2026

Closes #497.

This is still in draft because I would like to test it thoroughly, but the main functionality works. The maintained Diffview fork supports updating a diffview, and programmatically modifying selections which enables us to update the reviewer in place without closing and reopening after a rebase.

There will be a trivial conflict with #530 because both PR's add keybindings in the same place in settings.

AI use: The Go code is mostly generated by Claude Opus 4.5. The same model has been used for reviewing the lua code.

end

vim.api.nvim_command(string.format("%s %s..%s", diffview_open_command, diff_refs.base_sha, diff_refs.head_sha))
local full_command = string.format("%s %s..%s", diffview_open_command, remote_target_branch, state.INFO.source_branch)
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

By using branch names to open the Diffview the view automatically updates after fetching the remote target branch and pulling the source branch which has been rebased on the server.

I still need to find out if this doesn't break anything or if the diff_refs should not be replaced in other parts of the codebase as well.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

After some testing, I think it will be more appropriate if the base SHA is taken from the diff_refs (vim.api.nvim_command(string.format("%s %s..%s", diffview_open_command, diff_refs.base_sha, state.INFO.source_branch)), as it was originally otherwise the diffview shows too many "changed" files when the MR needs to be rebased.

@jakubbortlik jakubbortlik force-pushed the feat/implement-rebasing branch from 27e544a to 6fc6475 Compare March 17, 2026 16:20
@jakubbortlik jakubbortlik force-pushed the feat/implement-rebasing branch from 6fc6475 to 3384ee1 Compare March 28, 2026 22:29
@jakubbortlik jakubbortlik force-pushed the feat/implement-rebasing branch from 3384ee1 to d528de8 Compare March 30, 2026 13:12
@jakubbortlik jakubbortlik changed the title Draft: feat: implement rebasing feat: implement rebasing Apr 10, 2026
@jakubbortlik jakubbortlik changed the title feat: implement rebasing Draft: feat: implement rebasing Apr 10, 2026
@jakubbortlik jakubbortlik force-pushed the feat/implement-rebasing branch from dff2d2a to 49d2495 Compare April 11, 2026 11:40
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.

Improve rebasing experience

1 participant