From 7f83aa2d3df0623984e265052f96e7172e3efbeb Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Wed, 21 May 2008 16:40:10 -0400 Subject: [PATCH] git-gui: Handle workdir detection when CYGWIN=nowinsymlinks If the user has put nowinsymlinks into their CYGWIN environment variable any symlinks created by a Cygwin process (e.g. ln -s) will not have the ".lnk" suffix. In this case workdir is still a workdir, but our detection of looking for "info.lnk" fails as the symlink is actually a normal file called "info". Instead we just always use Cygwin's test executable to see if info/exclude is a file. If it is, we assume from there on it can be read by git-ls-files --others and is thus safe to use on the command line. Signed-off-by: Shawn O. Pearce --- git-gui.sh | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/git-gui.sh b/git-gui.sh index 6a8831a99..e6e88902f 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -1127,27 +1127,18 @@ proc rescan {after {honor_trustmtime 1}} { } if {[is_Cygwin]} { - set is_git_info_link {} set is_git_info_exclude {} proc have_info_exclude {} { - global is_git_info_link is_git_info_exclude + global is_git_info_exclude - if {$is_git_info_link eq {}} { - set is_git_info_link [file isfile [gitdir info.lnk]] - } - - if {$is_git_info_link} { - if {$is_git_info_exclude eq {}} { - if {[catch {exec test -f [gitdir info exclude]}]} { - set is_git_info_exclude 0 - } else { - set is_git_info_exclude 1 - } + if {$is_git_info_exclude eq {}} { + if {[catch {exec test -f [gitdir info exclude]}]} { + set is_git_info_exclude 0 + } else { + set is_git_info_exclude 1 } - return $is_git_info_exclude - } else { - return [file readable [gitdir info exclude]] } + return $is_git_info_exclude } } else { proc have_info_exclude {} { -- 2.30.2