gitui-org / gitui-org/gitui

Enable reverse comparing between branches

Open
#2,201 3 comments 7 reactions 0 assignees View on GitHub
feature-request
Dominant language
Rust
Stars
22.5k
Forks
773
PR merge metrics
No merged PRs in 30d

Description

**Is your feature request related to a problem? Please describe.**
Currently (as far as I can tell) the compare function always shows the diffs with the branch that is currently checked out. This means that to see the diffs as they would in a PR, you have to checkout the branch you are merging to, instead of the one you are working on. As I like to see the PR I'm about to submit before committing/opening the PR, this is something I do fairly regularly and having to switch branches to do it is somewhat awkward.

**Describe the solution you'd like**
An option to flip the base of the diff when viewing patches.

**Describe alternatives you've considered**
- A shortcut to switch branches but that wouldn't really work in you don't have a clean working tree, which is most of the time in my experience.
- Changing the default to be flipped compared to what it is now, but this would be a breaking change compared to what it is now and I'm not sure how many people this would piss off. I guess this might be an option if the extra option is not desirable, but it seems a little excessive to me.
**Additional context**
Sounds like a not too complicated feature although I'm not familiar with the code base. If there is interest in this feature and someone willing to help guide/review work a little bit, I'd be open to making a PR for this myself.

Contributor guide

Open the contributing guide

Research direction

Start by locating the compare function and patch-viewing entry point, then trace how the checked-out branch becomes the diff base. Done means an explicit option flips that base without requiring a branch switch; add or update coverage if the existing compare behavior has tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, rust
Domain
cli, devtools
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.