Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCH] git-gui: use --exclude-standard to check for untracked files

From: Stefan Näwe <hidden>
Date: 2016-06-15 22:50:07

(Sorry for the late answer, I was away...)

2010/11/19 Pat Thoyts [off-list ref]:
quoted hunk
Stefan Naewe [off-list ref] writes:
quoted
This fixes git gui failing to display untracked files if
core.excludesfile is set to '~/.gitexcludes'.

Signed-off-by: Stefan Naewe <redacted>
---
git-gui/git-gui.sh |    9 +--------
1 files changed, 1 insertions(+), 8 deletions(-)
[..]
Using --exclude-standard is a good plan. However, as far as I can tell
this option was added for git 1.6.3. git-gui currently supports 1.5.0 or
above so rather than delete the old lines we can wrap them in a version
check and use --exclude-standard if we have it.

Also - I assume that the problem with core.excludesfile being set as you
describe is that ~ is expanded by the shell. Here we are working in tcl
which will take the literal string. Adding [file normalize] to the
exclude value will expand the ~ to the users HOME path for us.

The following should be cover everything and works for me:


From 55e5893c08a52624846dbd9b61dcbccc6bbc5e12 Mon Sep 17 00:00:00 2001
From: Stefan Naewe <redacted>
Date: Fri, 19 Nov 2010 19:28:25 +0000
Subject: [PATCH] git-gui: use --exclude-standard to check for untracked files

This fixes git-gui failing to display untracked files that are listed
if core.excludefiles is set to ~/.gitexcludes

[PT: added expansion of core.excludesfile value by tcl]

Signed-off-by: Stefan Naewe <redacted>
Signed-off-by: Pat Thoyts <redacted>
---
 git-gui.sh |   18 +++++++++++-------
 1 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/git-gui.sh b/git-gui.sh
index d3acf0d..8c696c2 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -1448,13 +1448,17 @@ proc rescan_stage2 {fd after} {
               close $fd
       }

-       set ls_others [list --exclude-per-directory=.gitignore]
-       if {[have_info_exclude]} {
-               lappend ls_others "--exclude-from=[gitdir info exclude]"
-       }
-       set user_exclude [get_config core.excludesfile]
-       if {$user_exclude ne {} && [file readable $user_exclude]} {
-               lappend ls_others "--exclude-from=$user_exclude"
+       if {0 && [package vsatisfies $::_git_version 1.6.3]} {
+               set ls_others [list --exclude-standard]
+       } else {
+               set ls_others [list --exclude-per-directory=.gitignore]
+               if {[have_info_exclude]} {
+                       lappend ls_others "--exclude-from=[gitdir info exclude]"
+               }
+               set user_exclude [get_config core.excludesfile]
+               if {$user_exclude ne {} && [file readable $user_exclude]} {
+                       lappend ls_others "--exclude-from=[file normalize $user_exclude]"
+               }
       }

       set buf_rdi {}
--
1.7.3.1.msysgit.0
Yes, works for me (on 1.7.3.2)

Thanks,
  Stefan
-- 
Stefan Naewe                      stefan dot naewe at gmail dot com
Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please      http://www.expita.com/nomime.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help