feat: implement rebasing#534
Conversation
27e544a to
6fc6475
Compare
3384ee1 to
d528de8
Compare
dff2d2a to
49d2495
Compare
| create_mr = "glC", -- Create a new MR for currently checked-out feature branch | ||
| choose_merge_request = "glc", -- Chose MR for review (if necessary check out the feature branch) | ||
| start_review = "glS", -- Start review for the currently checked-out branch | ||
| reload_review = "gl<C-R>", -- Load new MR state from Gitlab and apply new diff refs to the diff view |
There was a problem hiding this comment.
I'm wondering whether it would make sense to connect this to the refresh of the discussion tree instead of making it a separate function and keybinding.
| gitlab.close_review() ~ | ||
|
|
||
| Closes the reviewer tab and discussion tree and cleans up (e.g., removes | ||
| winbar timer). | ||
| >lua | ||
| require("gitlab").close_review() | ||
| < |
There was a problem hiding this comment.
This is an existing API that was just missing documentation.
| M.is_open = true | ||
| local cur_view = diffview_lib.get_current_view() | ||
| M.diffview_layout = cur_view.cur_layout | ||
| M.diffview = require("diffview.lib").get_current_view() |
There was a problem hiding this comment.
Saving this to the module table makes it possible to reduce the reliance on the diffview.lib in other places of the codebase.
a9de870 to
9dd7965
Compare
906e633 to
5aad115
Compare
5aad115 to
567f8a9
Compare
567f8a9 to
4bd4100
Compare
|
Hi @harrisoncramer, do you think you could have a look at this PR? I think it is ready to be merged and find the functionality really useful, and it would unblock me for working on other issues. When I'm working on a fix or new feature, I frequently just test it during my normal work and while doing so I really would like to have the functionality from this PR and also from #552 available. |
e3238ba to
667e039
Compare
- Rebases the MR on the server. - Pulls the remote branch after rebasing. - Aborts rebase if it is not necessary, but enables forcing a rebase. - Aborts rebase when there are conflicts. - Adds keymaps for common rebase variants, and for reloading reviewer. - Checks if branch is up-to-date asynchronously.
667e039 to
291636a
Compare
Closes #497.
This is still in draft because I would like to test it thoroughly, butthe 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.I've also replaced some synchronous system calls to
gitwith async calls. This prevents blocking the UI (cursor and winbar updates) when checking if the local branch is up-to-date with the remote tracking branch. This makes loading the summary and rebuilding the discussion tree more responsive.AI use: The Go code is mostly generated by Claude Opus 4.5. The same model has been used for reviewing the lua code.