gitui-org/gitui

After staging, next unstaged change is janky

Open

#2748 aperta il 26 ott 2025

Vedi su GitHub
 (1 commento) (0 reazioni) (0 assegnatari)Rust (721 fork)batch import
feature-requestgood first issue

Metriche repository

Star
 (21.937 star)
Metriche merge PR
 (Merge medio 41g 9h) (6 PR mergiate in 30 g)

Descrizione

The logic that chooses the next unstaged change after staging a change is kind of janky and breaks my flow. I'll call this a bug, call it what you want. I believe the logic is basically nothing. It just tries to keep the vertical visual position in the tree of unstaged changes. Since that is a tree though, it feels weird. Everything is fine if you have a flat list of files, but I usually don't.

Here's the set up:

mkdir -p /tmp/treebug
cd /tmp/treebug
git init

echo hunk > f
mkdir g
  echo hunk > g/g
  echo hunk > g/h
echo hunk > i
echo hunk > j

Then enter gitui...

Moving into directories

Ok, let's stage f.

Hm, I did not move to the next file. Instead, I moved to the directory g. So just pressing enter repeatedly will not stage file by file, but sometimes stage directories. I don't like this, but whatever. The big issue arises when I am staging from the diff view. This is my initial diff view:

Now, when I stage this hunk, my next screen is the following:

I am seeing the diff of nothing, and I can't do anything in this view. I am forced to return to the tree and navigate to the next file. So staging hunk-by-hunk by repeatedly pressing enter does not work either.

Moving out of directories

Okay, f has been staged. We navigated to the next file manually:

Let's stage g:

Good, let's stage h:

We just skipped i. That is frustrating. Again, in the file tree view, I can correct this. In the diff view, I cannot.

The fix

Not sure, one would have to experiment. Maybe this would already work:

  • After staging a file, move to the next file.
  • After staging a directory, keep the vertical position in the GUI.

Guida contributor