git-gui: properly popup error if gitk should be started but is not installed
On 'Visualize ...', a gitk process is started. Since it is run in the background, catching a possible startup error doesn't work, and the error output goes to the console git-gui is started from. The most probable startup error is that gitk is not installed; so before trying to start, check for the existence of the gitk program, and popup an error message unless it's found. This was noticed and reported by Paul Wise through http://bugs.debian.org/429810 Signed-off-by: Gerrit Pape <pape@smarden.org> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:

committed by
Shawn O. Pearce

parent
7e508eb1a2
commit
7aecb12877
@ -1042,15 +1042,17 @@ proc do_gitk {revs} {
|
|||||||
# lets us bypass using shell process on Windows systems.
|
# lets us bypass using shell process on Windows systems.
|
||||||
#
|
#
|
||||||
set cmd [list [info nameofexecutable]]
|
set cmd [list [info nameofexecutable]]
|
||||||
lappend cmd [gitexec gitk]
|
set exe [gitexec gitk]
|
||||||
|
lappend cmd $exe
|
||||||
if {$revs ne {}} {
|
if {$revs ne {}} {
|
||||||
append cmd { }
|
append cmd { }
|
||||||
append cmd $revs
|
append cmd $revs
|
||||||
}
|
}
|
||||||
|
|
||||||
if {[catch {eval exec $cmd &} err]} {
|
if {! [file exists $exe]} {
|
||||||
error_popup "Failed to start gitk:\n\n$err"
|
error_popup "Unable to start gitk:\n\n$exe does not exist"
|
||||||
} else {
|
} else {
|
||||||
|
eval exec $cmd &
|
||||||
set ui_status_value $starting_gitk_msg
|
set ui_status_value $starting_gitk_msg
|
||||||
after 10000 {
|
after 10000 {
|
||||||
if {$ui_status_value eq $starting_gitk_msg} {
|
if {$ui_status_value eq $starting_gitk_msg} {
|
||||||
|
Reference in New Issue
Block a user