Commits

Shawn O. Pearce  committed 7f83aa2

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 <spearce@spearce.org>

  • Participants
  • Parent commits 16dd62a

Comments (0)

Files changed (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 {} {