git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Pat Thoyts <patthoyts@users.sourceforge.net>
To: Max Kirillov <max@max630.net>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] Add gui.displayuntracked option
Date: Tue, 27 Aug 2013 10:31:57 +0100	[thread overview]
Message-ID: <87d2ozqy2a.fsf@fox.patthoyts.tk> (raw)
In-Reply-To: <20130821032913.GA6092@wheezy.local> (Max Kirillov's message of "Wed, 21 Aug 2013 06:29:13 +0300")

Max Kirillov <max@max630.net> writes:

>When git is used to track only a subset of a directory, or
>there is no sure way to divide files to ignore from files to track,
>git user have to live with large number of untracked files. These files
>present in file list, and should always be scrolled through
>to handle real changes. Situation can become even worse, then number
>of the untracked files grows above the maxfilesdisplayed limit. In the
>case, even staged can be hidden by git-gui.
>
>This change introduces new configuration variable gui.displayuntracked,
>which, when set to false, instructs git-gui not to show untracked files
>in files list. They can be staged from commandline or other tools (like
>IDE of file manager), then they become visible. Default value of the
>option is true, which is compatible with current behavior.
>
>Signed-off-by: Max Kirillov <max@max630.net>
>---
>Hi. I've been using git for some time and have collected a
>number of changes which might worth sharing.
>Please consider adding them to the upstream.
>
>Thanks,
>Max
>
> Documentation/config.txt |  4 ++++
> git-gui/git-gui.sh       | 14 ++++++++++----
> git-gui/lib/option.tcl   |  1 +
> 3 files changed, 15 insertions(+), 4 deletions(-)
>
>diff --git a/Documentation/config.txt b/Documentation/config.txt
>index bbba728..7a786b2 100644
>--- a/Documentation/config.txt
>+++ b/Documentation/config.txt
>@@ -1277,6 +1277,10 @@ gui.diffcontext::
> 	Specifies how many context lines should be used in calls to diff
> 	made by the linkgit:git-gui[1]. The default is "5".
> 
>+gui.displayuntracked::
>+	Determines if linkgit::git-gui[1] shows untracked files
>+	in the file list. The defaulit is "true".
>+
> gui.encoding::
> 	Specifies the default encoding to use for displaying of
> 	file contents in linkgit:git-gui[1] and linkgit:gitk[1].
>diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
>index 89f636f..42c35ad 100755
>--- a/git-gui/git-gui.sh
>+++ b/git-gui/git-gui.sh
>@@ -898,6 +898,7 @@ set font_descs {
> 	{fontdiff font_diff {mc "Diff/Console Font"}}
> }
> set default_config(gui.stageuntracked) ask
>+set default_config(gui.displayuntracked) true
> 
> ######################################################################
> ##
>@@ -1536,18 +1537,23 @@ proc rescan_stage2 {fd after} {
> 	set buf_rdf {}
> 	set buf_rlo {}
> 
>-	set rescan_active 3
>+	set rescan_active 2
> 	ui_status [mc "Scanning for modified files ..."]
> 	set fd_di [git_read diff-index --cached -z [PARENT]]
> 	set fd_df [git_read diff-files -z]
>-	set fd_lo [eval git_read ls-files --others -z $ls_others]
> 
> 	fconfigure $fd_di -blocking 0 -translation binary -encoding binary
> 	fconfigure $fd_df -blocking 0 -translation binary -encoding binary
>-	fconfigure $fd_lo -blocking 0 -translation binary -encoding binary
>+
> 	fileevent $fd_di readable [list read_diff_index $fd_di $after]
> 	fileevent $fd_df readable [list read_diff_files $fd_df $after]
>-	fileevent $fd_lo readable [list read_ls_others $fd_lo $after]
>+
>+	if {[is_config_true gui.displayuntracked]} {
>+		set fd_lo [eval git_read ls-files --others -z $ls_others]
>+		fconfigure $fd_lo -blocking 0 -translation binary -encoding binary
>+		fileevent $fd_lo readable [list read_ls_others $fd_lo $after]
>+		incr rescan_active
>+	}
> }
> 
> proc load_message {file {encoding {}}} {
>diff --git a/git-gui/lib/option.tcl b/git-gui/lib/option.tcl
>index 0cf1da1..2177db6 100644
>--- a/git-gui/lib/option.tcl
>+++ b/git-gui/lib/option.tcl
>@@ -159,6 +159,7 @@ proc do_options {} {
> 		{c gui.encoding {mc "Default File Contents Encoding"}}
> 		{b gui.warndetachedcommit {mc "Warn before committing to a detached head"}}
> 		{s gui.stageuntracked {mc "Staging of untracked files"} {list "yes" "no" "ask"}}
>+		{b gui.displayuntracked {mc "Show untracked files"}}
> 		} {
> 		set type [lindex $option 0]
> 		set name [lindex $option 1]

Looks fine to me. The Documentation part of the patch will need to be
sent separately to the git project later when this is merged in as
git-gui is managed in a separate repository. It also has a typo in
'default'. I'll make a note to forward this part of the patch at
request-pull time.

-- 
Pat Thoyts                            http://www.patthoyts.tk/
PGP fingerprint 2C 6E 98 07 2C 59 C8 97  10 CE 11 E6 04 E0 B9 DD

      parent reply	other threads:[~2013-08-27  9:37 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-21  3:29 [PATCH] Add gui.displayuntracked option Max Kirillov
2013-08-21  3:38 ` [PATCH] git-gui: right half window is paned Max Kirillov
2013-08-27  9:32   ` Pat Thoyts
2013-08-27  9:31 ` Pat Thoyts [this message]

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87d2ozqy2a.fsf@fox.patthoyts.tk \
    --to=patthoyts@users.sourceforge.net \
    --cc=git@vger.kernel.org \
    --cc=max@max630.net \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).