threads / discuss / 50849

git-gui: unstaged changes windowpane resets after unstaging a line

Subject: git-gui: unstaged changes windowpane resets after unstaging a line

## tl;dr

5 messages between Mar 31, 2019 and Apr 1, 2019.

replies: 4people: 2as markdown or json

Jan Ziak· Mar 31, 2019, 18:44 UTC · lore
Hello

After performing "Unstage Line From Commit" action, the "Unstaged Changes" windowpane is reset. The reset does not happen with "Unstage Hunk From Commit" action.

git version 2.21.0

Sincerely Jan

Bert Wesarg· Mar 31, 2019, 19:14 UTC · re: Jan Ziak · lore

Re: git-gui: unstaged changes windowpane resets after unstaging a line

Hi Jan,
On Sun, Mar 31, 2019 at 8:45 PM Jan Ziak <0xe2.0x9a.0x9b@gmail.com> wrote:
Show 6 quoted lines
>
> Hello
>
> After performing "Unstage Line From Commit" action, the "Unstaged
> Changes" windowpane is reset. The reset does not happen with "Unstage
> Hunk From Commit" action.

because its not necessary when staging a hunk. Though when staging a line it is better to run the diff algorithm again.

Anyway, which problem do you observe in particular?

Best, Bert

Show 5 quoted lines
>
> git version 2.21.0
>
> Sincerely
> Jan
Jan Ziak· Mar 31, 2019, 19:47 UTC · re: Bert Wesarg · lore

Re: git-gui: unstaged changes windowpane resets after unstaging a line

On Sun, 31 Mar 2019 at 21:15, Bert Wesarg <bert.wesarg@googlemail.com> wrote:
Show 13 quoted lines
>
> Hi Jan,
>
> On Sun, Mar 31, 2019 at 8:45 PM Jan Ziak <0xe2.0x9a.0x9b@gmail.com> wrote:
> >
> > Hello
> >
> > After performing "Unstage Line From Commit" action, the "Unstaged
> > Changes" windowpane is reset. The reset does not happen with "Unstage
> > Hunk From Commit" action.
>
> because its not necessary when staging a hunk. Though when staging a
> line it is better to run the diff algorithm again.

Yes. I was thinking comparing the old state of "Unstaged Changes" to the new state and preserving (or approximating) the selected filename and scroller position if possible.

When unstaging a line (or a hunk) there is internally no possibility for the currently selected filename to disappear from the "Unstaged Changes" list.

> Anyway, which problem do you observe in particular?

The problem is that the selected filename and scroller position are reinitialized. It is uncomfortable when "Unstaged Changes" contains a lot of filenames.

Sincerely Jan

Show 8 quoted lines
> Best,
> Bert
>
> >
> > git version 2.21.0
> >
> > Sincerely
> > Jan
Bert Wesarg· Apr 1, 2019, 06:40 UTC · re: Jan Ziak · lore

Re: git-gui: unstaged changes windowpane resets after unstaging a line

On Sun, Mar 31, 2019 at 9:48 PM Jan Ziak <0xe2.0x9a.0x9b@gmail.com> wrote:
Show 29 quoted lines
>
> On Sun, 31 Mar 2019 at 21:15, Bert Wesarg <bert.wesarg@googlemail.com> wrote:
> >
> > Hi Jan,
> >
> > On Sun, Mar 31, 2019 at 8:45 PM Jan Ziak <0xe2.0x9a.0x9b@gmail.com> wrote:
> > >
> > > Hello
> > >
> > > After performing "Unstage Line From Commit" action, the "Unstaged
> > > Changes" windowpane is reset. The reset does not happen with "Unstage
> > > Hunk From Commit" action.
> >
> > because its not necessary when staging a hunk. Though when staging a
> > line it is better to run the diff algorithm again.
>
> Yes. I was thinking comparing the old state of "Unstaged Changes" to
> the new state and preserving (or approximating) the selected filename
> and scroller position if possible.
>
> When unstaging a line (or a hunk) there is internally no possibility
> for the currently selected filename to disappear from the "Unstaged
> Changes" list.
>
> > Anyway, which problem do you observe in particular?
>
> The problem is that the selected filename and scroller position are
> reinitialized. It is uncomfortable when "Unstaged Changes" contains a
> lot of filenames.

I can't confirm this behavior. Neither when staging lines from the "Unstaged Changes" file list, nor when unstaging lines from the "Stages Changes (Will Commit)" file list.

Could you try to come up with a recipe from an empty repository?

Best, Bert

Show 5 quoted lines
>
> Sincerely
> Jan
>
>
Jan Ziak· Apr 1, 2019, 12:29 UTC · re: Bert Wesarg · lore

Re: git-gui: unstaged changes windowpane resets after unstaging a line

On Mon, 1 Apr 2019 at 08:40, Bert Wesarg <bert.wesarg@googlemail.com> wrote:
> Could you try to come up with a recipe from an empty repository?
$ cat a.sh
#!/bin/bash
set -e
git init
for((i=0; i<25; i++)); do
    echo line1 > file$i
done
git add file*
git commit -m "initial commit"
for((i=0; i<25; i++)); do
    echo line2 >> file$i
    echo line3 >> file$i
    echo line4 >> file$i
done
git gui
Run a.sh in a new empty directory, then:
  1. Select "Unstaged Changes" -> file24
  2. Stage line2 & line3 for commit
  3. Select "Staged Changes" -> file24
  4. Unstage line2 from commit (see the attached screenshot)
  5. >>> "Unstaged Changes" windowpane resets <<<

Sincerely Jan

← back to recent threads