From: Dan Zwell <dzwell@gmail.com>
To: Git Mailing List <git@vger.kernel.org>,
"Shawn O. Pearce" <spearce@spearce.org>,
raa.lkml@gmail.com
Subject: [PATCH] Limited git-gui to displaying 5000 new files
Date: Tue, 30 Jun 2009 15:37:58 -0500 [thread overview]
Message-ID: <4A4A77A6.1020905@lawrence.edu> (raw)
When there is a large number of new or modified files,
"display_all_files" takes a long time, and git-gui appears to
hang. Limit the display to 5000 files, by default. This number
is configurable as gui.maxfilesdisplayed.
Show a warning if the list of files is truncated.
Signed-off-by: Dan Zwell <dzwell@zwell.net>
---
git-gui.sh | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/git-gui.sh b/git-gui.sh
index 14b92ba..5a20923 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -745,6 +745,8 @@ set default_config(gui.newbranchtemplate) {}
set default_config(gui.spellingdictionary) {}
set default_config(gui.fontui) [font configure font_ui]
set default_config(gui.fontdiff) [font configure font_diff]
+# TODO: this option should be added to the git-config documentation
+set default_config(gui.maxfilesdisplayed) 5000
set font_descs {
{fontui font_ui {mc "Main Font"}}
{fontdiff font_diff {mc "Diff/Console Font"}}
@@ -1702,6 +1704,8 @@ proc display_all_files {} {
global ui_index ui_workdir
global file_states file_lists
global last_clicked
+ global files_warning
+ global default_config
$ui_index conf -state normal
$ui_workdir conf -state normal
@@ -1713,7 +1717,18 @@ proc display_all_files {} {
set file_lists($ui_index) [list]
set file_lists($ui_workdir) [list]
- foreach path [lsort [array names file_states]] {
+ set to_display [lsort [array names file_states]]
+ set display_limit $default_config(gui.maxfilesdisplayed)
+ if {[llength $to_display] > $display_limit} {
+ if {![info exists files_warning] || !$files_warning} {
+ set warning "Displaying only $display_limit of "
+ append warning "[llength $to_display] files."
+ info_popup [mc $warning]
+ set files_warning 1
+ }
+ set to_display [lrange $to_display 0 [expr {$display_limit-1}]]
+ }
+ foreach path $to_display {
set s $file_states($path)
set m [lindex $s 0]
set icon_name [lindex $s 1]
--
1.6.3.3
next reply other threads:[~2009-06-30 20:38 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-30 20:37 Dan Zwell [this message]
2009-08-10 15:38 ` [PATCH] Limited git-gui to displaying 5000 new files Shawn O. Pearce
2009-08-10 17:06 ` Alex Riesen
2009-08-10 17:08 ` Shawn O. Pearce
2009-08-10 15:15 ` Dan Zwell
2009-08-11 18:23 ` [PATCH] Limit git-gui to display a maximum number of files Dan Zwell
2009-08-11 20:29 ` Shawn O. Pearce
2009-08-11 18:50 ` Dan Zwell
2009-08-12 14:43 ` Shawn O. Pearce
2009-08-12 15:24 ` [PATCH] git-gui: Update russian translation Alex Riesen
2009-08-12 15:40 ` Shawn O. Pearce
2009-08-12 15:51 ` Dan Zwell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A4A77A6.1020905@lawrence.edu \
--to=dzwell@gmail.com \
--cc=git@vger.kernel.org \
--cc=raa.lkml@gmail.com \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).