Fwd: $LOCAL and $REMOTE swapped for rebase mergetool
- From
Noam Raphael <noamraph@gmail.com>
- Date
- Feb 6, 2022, 19:38 UTC
- Message-ID
- <CAO8o=D4yuKheOO1UL7o0u89i=yp3c4KjhLjKPGBptE3-NXObEg@mail.gmail.com>
- In-Reply-To
- <CAO8o=D7LKUp_Bf54hbVNumhpNKnDO3UKgyOMU_0d0Er87a2zJQ@mail.gmail.com>
Hi,
When using `git mergetool` with `git merge`, the variables $BASE, $REMOTE, $LOCAL and $MERGED behave as I would expect.
However, when using `git rebase` instead of `git merge`, $LOCAL and $REMOTE are swapped - instead of $LOCAL being the local content before the commit and $REMOTE being the content being rebased, it's the other way round. This doesn't seem consistent with the git-mergetool man page.
This causes 3-way diff tools to swap the meaning of what's on the left pane and what's on the right pane. I had to work around this with the new 4-way diff tool that I wrote (https://github.com/noamraph/meld, check it out!) since it assumes the diff between BASE and REMOTE should be applied to LOCAL, and this doesn't hold.
I think that at least the documentation should be updated. Or perhaps the behavior should change - this actually seems to me like a bug.
Cheers, Noam