gitui-org/gitui

After staging, next unstaged change is janky

Open

#2 748 ouverte le 26 oct. 2025

Voir sur GitHub
 (1 commentaire) (0 réactions) (0 assignés)Rust (721 forks)batch import
feature-requestgood first issue

Métriques du dépôt

Stars
 (21 937 stars)
Métriques de merge PR
 (Merge moyen 41j 9h) (6 PRs mergées en 30 j)

Description

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.

Guide contributeur