Code

Merge git://git.kernel.org/pub/scm/gitk/gitk
[git.git] / git-gui / lib / choose_repository.tcl
index ae4a4cd0a883df272f405d4998da8ab3044109d4..633cc572bbd076ff957c0b8194b6645e899e53ad 100644 (file)
@@ -43,12 +43,18 @@ constructor pick {} {
                        $w.mbar.apple add command \
                                -label [mc "About %s" [appname]] \
                                -command do_about
+                       $w.mbar.apple add command \
+                               -label [mc "Show SSH Key"] \
+                               -command do_ssh_key
                } else {
                        $w.mbar add cascade -label [mc Help] -menu $w.mbar.help
                        menu $w.mbar.help
                        $w.mbar.help add command \
                                -label [mc "About %s" [appname]] \
                                -command do_about
+                       $w.mbar.help add command \
+                               -label [mc "Show SSH Key"] \
+                               -command do_ssh_key
                }
 
                wm protocol $top WM_DELETE_WINDOW exit
@@ -381,18 +387,19 @@ method _do_new {} {
        label $w_body.where.l -text [mc "Directory:"]
        entry $w_body.where.t \
                -textvariable @local_path \
-               -font font_diff \
+               -borderwidth 1 \
+               -relief sunken \
                -width 50
        button $w_body.where.b \
                -text [mc "Browse"] \
                -command [cb _new_local_path]
        set w_localpath $w_body.where.t
 
-       pack $w_body.where.b -side right
-       pack $w_body.where.l -side left
-       pack $w_body.where.t -fill x
+       grid $w_body.where.l $w_body.where.t $w_body.where.b -sticky ew
        pack $w_body.where -fill x
 
+       grid columnconfigure $w_body.where 1 -weight 1
+
        trace add variable @local_path write [cb _write_local_path]
        bind $w_body.h <Destroy> [list trace remove variable @local_path write [cb _write_local_path]]
        update
@@ -465,20 +472,22 @@ method _do_clone {} {
        frame $w_body.args
        pack $args -fill both
 
-       label $args.origin_l -text [mc "URL:"]
+       label $args.origin_l -text [mc "Source Location:"]
        entry $args.origin_t \
                -textvariable @origin_url \
-               -font font_diff \
+               -borderwidth 1 \
+               -relief sunken \
                -width 50
        button $args.origin_b \
                -text [mc "Browse"] \
                -command [cb _open_origin]
        grid $args.origin_l $args.origin_t $args.origin_b -sticky ew
 
-       label $args.where_l -text [mc "Directory:"]
+       label $args.where_l -text [mc "Target Directory:"]
        entry $args.where_t \
                -textvariable @local_path \
-               -font font_diff \
+               -borderwidth 1 \
+               -relief sunken \
                -width 50
        button $args.where_b \
                -text [mc "Browse"] \
@@ -957,7 +966,34 @@ method _readtree_wait {fd} {
                return
        }
 
-       set done 1
+       # -- Run the post-checkout hook.
+       #
+       set fd_ph [githook_read post-checkout [string repeat 0 40] \
+               [git rev-parse HEAD] 1]
+       if {$fd_ph ne {}} {
+               global pch_error
+               set pch_error {}
+               fconfigure $fd_ph -blocking 0 -translation binary -eofchar {}
+               fileevent $fd_ph readable [cb _postcheckout_wait $fd_ph]
+       } else {
+               set done 1
+       }
+}
+
+method _postcheckout_wait {fd_ph} {
+       global pch_error
+
+       append pch_error [read $fd_ph]
+       fconfigure $fd_ph -blocking 1
+       if {[eof $fd_ph]} {
+               if {[catch {close $fd_ph}]} {
+                       hook_failed_popup post-checkout $pch_error 0
+               }
+               unset pch_error
+               set done 1
+               return
+       }
+       fconfigure $fd_ph -blocking 0
 }
 
 ######################################################################
@@ -981,17 +1017,18 @@ method _do_open {} {
        label $w_body.where.l -text [mc "Repository:"]
        entry $w_body.where.t \
                -textvariable @local_path \
-               -font font_diff \
+               -borderwidth 1 \
+               -relief sunken \
                -width 50
        button $w_body.where.b \
                -text [mc "Browse"] \
                -command [cb _open_local_path]
 
-       pack $w_body.where.b -side right
-       pack $w_body.where.l -side left
-       pack $w_body.where.t -fill x
+       grid $w_body.where.l $w_body.where.t $w_body.where.b -sticky ew
        pack $w_body.where -fill x
 
+       grid columnconfigure $w_body.where 1 -weight 1
+
        trace add variable @local_path write [cb _write_local_path]
        bind $w_body.h <Destroy> [list trace remove variable @local_path write [cb _write_local_path]]
        update