git-gui: properly popup error if gitk should be started but is not installed
authorGerrit Pape <pape@smarden.org>
Fri, 29 Jun 2007 11:32:29 +0000 (11:32 +0000)
committerShawn O. Pearce <spearce@spearce.org>
Sat, 30 Jun 2007 04:43:20 +0000 (00:43 -0400)
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>
git-gui.sh
index 4fbc408c4d0a1f950c7d32768ed55cbd91005023..6b7321bb03284fd52bae608f161b2fe4e094437f 100755 (executable)
@@ -1042,15 +1042,17 @@ proc do_gitk {revs} {
        #    lets us bypass using shell process on Windows systems.
        #
        set cmd [list [info nameofexecutable]]
-       lappend cmd [gitexec gitk]
+       set exe [gitexec gitk]
+       lappend cmd $exe
        if {$revs ne {}} {
                append cmd { }
                append cmd $revs
        }
 
-       if {[catch {eval exec $cmd &} err]} {
-               error_popup "Failed to start gitk:\n\n$err"
+       if {! [file exists $exe]} {
+               error_popup "Unable to start gitk:\n\n$exe does not exist"
        } else {
+               eval exec $cmd &
                set ui_status_value $starting_gitk_msg
                after 10000 {
                        if {$ui_status_value eq $starting_gitk_msg} {