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
threads / discuss / 50849
Subject: git-gui: unstaged changes windowpane resets after unstaging a line
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
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:
> > 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
> > git version 2.21.0 > > Sincerely > Jan
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:
> > 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
> Best, > Bert > > > > > git version 2.21.0 > > > > Sincerely > > Jan
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:
> > 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
> > Sincerely > Jan > >
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 guiRun 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