When merging a branch using the "Merge and rebase" method, updating the workspace in GitButler doesn't work as expected. Instead of matching the remote commits with the local ones, they appear on top of the local workspace as though they were different commits. I suspect this happens because github re-hashes every commit when doing the rebase.
If I commit again on the same branch (after updating my workspace) and try to make a PR, this creates all sorts of issues. Sometimes I get merge conflicts on github (but GB doesn't see them), and if I can merge the PR and update my workspace again, the following PR stays "on top" of the commit history (meaning every new commit lands "under" it instead of on top) and prevents me from creating subsequent ones.
All of this does not happen if I discard the merged branch and create a new one. However, if I want to keep the same name (like "dev"), I have to manually delete both local and remote branches before recreating it. This is quite annoying and very error-prone.
How to reproduce
Create a dev branch, make a commit, make a PR and merge it into your target using "Merge and rebase".
Update Workspace
=> This leads us to "stage one" where the commits that were just merged still appear on the dev branch on top of the target
Make a new commit, make a PR and merge it into the target once again (if not blocked by file conflicts)
=> This is stage two, where the PR stays on top of the dev branch, every new commit lands under it, and it's not possible to make a new PR.
Expected behavior
GitButler should match the local commits with the ones upstream and deduplicate them somehow. Basically this should work the same as when doing a regular merge, i.e. just having to update the local workspace and being able to start working again on the same branch immediately without experiencing these issues.
Version
0.13.13
Operating System
macOS
Distribution Method
dmg (Apple Silicon)
Describe the issue
When merging a branch using the "Merge and rebase" method, updating the workspace in GitButler doesn't work as expected. Instead of matching the remote commits with the local ones, they appear on top of the local workspace as though they were different commits. I suspect this happens because github re-hashes every commit when doing the rebase.
If I commit again on the same branch (after updating my workspace) and try to make a PR, this creates all sorts of issues. Sometimes I get merge conflicts on github (but GB doesn't see them), and if I can merge the PR and update my workspace again, the following PR stays "on top" of the commit history (meaning every new commit lands "under" it instead of on top) and prevents me from creating subsequent ones.
All of this does not happen if I discard the merged branch and create a new one. However, if I want to keep the same name (like "dev"), I have to manually delete both local and remote branches before recreating it. This is quite annoying and very error-prone.
How to reproduce
Expected behavior
GitButler should match the local commits with the ones upstream and deduplicate them somehow. Basically this should work the same as when doing a regular merge, i.e. just having to update the local workspace and being able to start working again on the same branch immediately without experiencing these issues.
Relevant log output
No response