git-gui: fix problem with gui.maxfilesdisplayed
gui.maxfilesdisplayed (added in dd6451f9c7
)
was applied brute force on the file list in alphabetic order. As a result,
files that had modifications might not be displayed by git-gui. Even
worse, files that are already in the index might not be displayed, which
makes git-gui hard to use in some workflows.
This fix changes the meaning of gui.maxfilesdisplayed, making it a soft
limit that only applies to "_O" files, i.e. files that are "Untracked,
not staged".
Signed-off-by: Csaba Kiraly <kiraly@disi.unitn.it>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
This commit is contained in:
parent
cdc6aba8c5
commit
a117fa2116
21
git-gui.sh
21
git-gui.sh
@ -1965,20 +1965,22 @@ proc display_all_files {} {
|
|||||||
|
|
||||||
set to_display [lsort [array names file_states]]
|
set to_display [lsort [array names file_states]]
|
||||||
set display_limit [get_config gui.maxfilesdisplayed]
|
set display_limit [get_config gui.maxfilesdisplayed]
|
||||||
if {[llength $to_display] > $display_limit} {
|
set displayed 0
|
||||||
if {!$files_warning} {
|
|
||||||
# do not repeatedly warn:
|
|
||||||
set files_warning 1
|
|
||||||
info_popup [mc "Displaying only %s of %s files." \
|
|
||||||
$display_limit [llength $to_display]]
|
|
||||||
}
|
|
||||||
set to_display [lrange $to_display 0 [expr {$display_limit-1}]]
|
|
||||||
}
|
|
||||||
foreach path $to_display {
|
foreach path $to_display {
|
||||||
set s $file_states($path)
|
set s $file_states($path)
|
||||||
set m [lindex $s 0]
|
set m [lindex $s 0]
|
||||||
set icon_name [lindex $s 1]
|
set icon_name [lindex $s 1]
|
||||||
|
|
||||||
|
if {$displayed > $display_limit && [string index $m 1] eq {O} } {
|
||||||
|
if {!$files_warning} {
|
||||||
|
# do not repeatedly warn:
|
||||||
|
set files_warning 1
|
||||||
|
info_popup [mc "Display limit (gui.maxfilesdisplayed = %s) reached, not showing all %s files." \
|
||||||
|
$display_limit [llength $to_display]]
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
set s [string index $m 0]
|
set s [string index $m 0]
|
||||||
if {$s ne {U} && $s ne {_}} {
|
if {$s ne {U} && $s ne {_}} {
|
||||||
display_all_files_helper $ui_index $path \
|
display_all_files_helper $ui_index $path \
|
||||||
@ -1993,6 +1995,7 @@ proc display_all_files {} {
|
|||||||
if {$s ne {_}} {
|
if {$s ne {_}} {
|
||||||
display_all_files_helper $ui_workdir $path \
|
display_all_files_helper $ui_workdir $path \
|
||||||
$icon_name $s
|
$icon_name $s
|
||||||
|
incr displayed
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user