gitui-org/gitui

After staging, next unstaged change is janky

オープン

#2,748 opened on 2025/10/26

 (1 件のコメント) (0 件のリアクション) (0 人の担当者)Rust (721 件のフォーク)batch import
feature-requestgood first issue

Repository metrics

Stars
 (21,937 個のスター)
PR merge metrics
 (PR metrics pending)

説明

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.

コントリビューターガイド