зеркало из https://github.com/microsoft/git.git
Merge branch 'ml/git-gui-exec-path-fix'
Fix recent regression in Git-GUI that fails to run hook scripts at all. * ml/git-gui-exec-path-fix: git-gui - use git-hook, honor core.hooksPath git-gui - re-enable use of hook scripts
This commit is contained in:
Коммит
2b04c3ce59
|
@ -118,7 +118,7 @@ proc sanitize_command_line {command_line from_index} {
|
|||
set i $from_index
|
||||
while {$i < [llength $command_line]} {
|
||||
set cmd [lindex $command_line $i]
|
||||
if {[file pathtype $cmd] ne "absolute"} {
|
||||
if {[llength [file split $cmd]] < 2} {
|
||||
set fullpath [_which $cmd]
|
||||
if {$fullpath eq ""} {
|
||||
throw {NOT-FOUND} "$cmd not found in PATH"
|
||||
|
@ -661,31 +661,8 @@ proc git_write {args} {
|
|||
}
|
||||
|
||||
proc githook_read {hook_name args} {
|
||||
set pchook [gitdir hooks $hook_name]
|
||||
lappend args 2>@1
|
||||
|
||||
# On Windows [file executable] might lie so we need to ask
|
||||
# the shell if the hook is executable. Yes that's annoying.
|
||||
#
|
||||
if {[is_Windows]} {
|
||||
upvar #0 _sh interp
|
||||
if {![info exists interp]} {
|
||||
set interp [_which sh]
|
||||
}
|
||||
if {$interp eq {}} {
|
||||
error "hook execution requires sh (not in PATH)"
|
||||
}
|
||||
|
||||
set scr {if test -x "$1";then exec "$@";fi}
|
||||
set sh_c [list $interp -c $scr $interp $pchook]
|
||||
return [_open_stdout_stderr [concat $sh_c $args]]
|
||||
}
|
||||
|
||||
if {[file executable $pchook]} {
|
||||
return [_open_stdout_stderr [concat [list $pchook] $args]]
|
||||
}
|
||||
|
||||
return {}
|
||||
set cmd [concat git hook run --ignore-missing $hook_name -- $args 2>@1]
|
||||
return [_open_stdout_stderr $cmd]
|
||||
}
|
||||
|
||||
proc kill_file_process {fd} {
|
||||
|
|
Загрузка…
Ссылка в новой задаче