git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] git-gui: fix problem with "important" files not shown if, gui.maxfilesdisplayed is exceeded
@ 2014-10-23 13:37 Csaba Kiraly
  2014-12-15 15:38 ` [PATCH v2] git-gui: fix problem with gui.maxfilesdisplayed Csaba Kiraly
  0 siblings, 1 reply; 3+ messages in thread
From: Csaba Kiraly @ 2014-10-23 13:37 UTC (permalink / raw)
  To: git; +Cc: Dan Zwell, Shawn O. Pearce, Pat Thoyts, Csaba Kiraly

gui.maxfilesdisplayed (added in dd6451f9c7c5a36d3006231b618ac6da06c7c7b4)
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 unusable.

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>
---
 git-gui.sh | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/git-gui.sh b/git-gui.sh
index bf68699..f86a948 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -1967,20 +1967,22 @@ proc display_all_files {} {
 
     set to_display [lsort [array names file_states]]
     set display_limit [get_config gui.maxfilesdisplayed]
-    if {[llength $to_display] > $display_limit} {
-        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}]]
-    }
+    set displayed 0
     foreach path $to_display {
         set s $file_states($path)
         set m [lindex $s 0]
         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 "Displaying only %s of %s files." \
+                    $display_limit [llength $to_display]]
+            }
+            continue
+        }
+
         set s [string index $m 0]
         if {$s ne {U} && $s ne {_}} {
             display_all_files_helper $ui_index $path \
@@ -1995,6 +1997,7 @@ proc display_all_files {} {
         if {$s ne {_}} {
             display_all_files_helper $ui_workdir $path \
                 $icon_name $s
+            incr displayed
         }
     }
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-01-13  0:41 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-23 13:37 [PATCH 1/2] git-gui: fix problem with "important" files not shown if, gui.maxfilesdisplayed is exceeded Csaba Kiraly
2014-12-15 15:38 ` [PATCH v2] git-gui: fix problem with gui.maxfilesdisplayed Csaba Kiraly
2015-01-13  0:32   ` Pat Thoyts

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).