mirror of
https://github.com/git/git.git
synced 2025-04-14 19:05:38 +00:00
git-gui: Maintain the same file list for diff during refresh.
I just noticed that a file was always jumping to compare against HEAD and the index during a refresh, even if the diff viewer was comparing the index against the working directory prior to the refresh. The bug turned out to be caused by a foreach loop going through all file list names searching for the path. Since $ui_index was the first one searched and the file was contained in that file list the loop broke out, leaving $w set to $ui_index when it had been set by the caller to $ui_workdir. Silly bug caused by using a parameter as a loop index. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
d070c4cb17
commit
5f8b70b1dc
13
git-gui.sh
13
git-gui.sh
@ -607,16 +607,13 @@ proc show_diff {path w {lno {}}} {
|
||||
if {$diff_active || ![lock_index read]} return
|
||||
|
||||
clear_diff
|
||||
if {$w eq {} || $lno == {}} {
|
||||
foreach w [array names file_lists] {
|
||||
set lno [lsearch -sorted $file_lists($w) $path]
|
||||
if {$lno >= 0} {
|
||||
incr lno
|
||||
break
|
||||
}
|
||||
if {$lno == {}} {
|
||||
set lno [lsearch -sorted $file_lists($w) $path]
|
||||
if {$lno >= 0} {
|
||||
incr lno
|
||||
}
|
||||
}
|
||||
if {$w ne {} && $lno >= 1} {
|
||||
if {$lno >= 1} {
|
||||
$w tag add in_diff $lno.0 [expr {$lno + 1}].0
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user