Merge branch 'maint'
* maint: git-gui: Ensure .git/info/exclude is honored in Cygwin workdirs git-gui: Handle starting on mapped shares under Cygwin git-gui: Display message box when we cannot find git in $PATH Conflicts: git-gui.sh
This commit is contained in:
commit
f31c14b30b
42
git-gui.sh
42
git-gui.sh
@ -335,7 +335,7 @@ proc _which {what} {
|
|||||||
global env _search_exe _search_path
|
global env _search_exe _search_path
|
||||||
|
|
||||||
if {$_search_path eq {}} {
|
if {$_search_path eq {}} {
|
||||||
if {[is_Cygwin]} {
|
if {[is_Cygwin] && [regexp {^(/|\.:)} $env(PATH)]} {
|
||||||
set _search_path [split [exec cygpath \
|
set _search_path [split [exec cygpath \
|
||||||
--windows \
|
--windows \
|
||||||
--path \
|
--path \
|
||||||
@ -528,7 +528,11 @@ proc rmsel_tag {text} {
|
|||||||
set _git [_which git]
|
set _git [_which git]
|
||||||
if {$_git eq {}} {
|
if {$_git eq {}} {
|
||||||
catch {wm withdraw .}
|
catch {wm withdraw .}
|
||||||
error_popup [mc "Cannot find git in PATH."]
|
tk_messageBox \
|
||||||
|
-icon error \
|
||||||
|
-type ok \
|
||||||
|
-title [mc "git-gui: fatal error"] \
|
||||||
|
-message [mc "Cannot find git in PATH."]
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -924,6 +928,35 @@ 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
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $is_git_info_exclude
|
||||||
|
} else {
|
||||||
|
return [file readable [gitdir info exclude]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
proc have_info_exclude {} {
|
||||||
|
return [file readable [gitdir info exclude]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
proc rescan_stage2 {fd after} {
|
proc rescan_stage2 {fd after} {
|
||||||
global rescan_active buf_rdi buf_rdf buf_rlo
|
global rescan_active buf_rdi buf_rdf buf_rlo
|
||||||
|
|
||||||
@ -934,9 +967,8 @@ proc rescan_stage2 {fd after} {
|
|||||||
}
|
}
|
||||||
|
|
||||||
set ls_others [list --exclude-per-directory=.gitignore]
|
set ls_others [list --exclude-per-directory=.gitignore]
|
||||||
set info_exclude [gitdir info exclude]
|
if {[have_info_exclude]} {
|
||||||
if {[file readable $info_exclude]} {
|
lappend ls_others "--exclude-from=[gitdir info exclude]"
|
||||||
lappend ls_others "--exclude-from=$info_exclude"
|
|
||||||
}
|
}
|
||||||
set user_exclude [get_config core.excludesfile]
|
set user_exclude [get_config core.excludesfile]
|
||||||
if {$user_exclude ne {} && [file readable $user_exclude]} {
|
if {$user_exclude ne {} && [file readable $user_exclude]} {
|
||||||
|
Loading…
Reference in New Issue
Block a user