From b90d479255d3b47e3604493b58e271cb9cd8dccd Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 16 Feb 2007 00:24:03 -0500 Subject: [PATCH] git-gui: Expose the browser as a subcommand. Some users may find being able to browse around an arbitrary branch to be handy, so we now expose our graphical browser through `git gui browse `. Yes, I'm being somewhat lazy and making the user give us the name of the branch to browse. They can always enter HEAD. Signed-off-by: Shawn O. Pearce --- git-gui.sh | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/git-gui.sh b/git-gui.sh index 9ce5a3bdc3..e7898014ac 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -3044,7 +3044,14 @@ proc new_browser {commit} { global next_browser_id cursor_ptr M1B global browser_commit browser_status browser_stack browser_path browser_busy - set w .browser[incr next_browser_id] + if {[winfo ismapped .]} { + set w .browser[incr next_browser_id] + set tl $w + toplevel $w + } else { + set w {} + set tl . + } set w_list $w.list.l set browser_commit($w_list) $commit set browser_status($w_list) {Starting...} @@ -3052,7 +3059,6 @@ proc new_browser {commit} { set browser_path($w_list) $browser_commit($w_list): set browser_busy($w_list) 1 - toplevel $w label $w.path -textvariable browser_path($w_list) \ -anchor w \ -justify left \ @@ -3102,8 +3108,8 @@ proc new_browser {commit} { bind $w_list break bind $w_list break - bind $w "focus $w" - bind $w " + bind $tl "focus $w" + bind $tl " array unset browser_buffer $w_list array unset browser_files $w_list array unset browser_status $w_list @@ -3112,7 +3118,7 @@ proc new_browser {commit} { array unset browser_commit $w_list array unset browser_busy $w_list " - wm title $w "[appname] ([reponame]): File Browser" + wm title $tl "[appname] ([reponame]): File Browser" ls_tree $w_list $browser_commit($w_list) {} } @@ -5019,6 +5025,7 @@ enable_option transport switch -- $subcommand { --version - version - +browser - blame { disable_option multicommit disable_option branch @@ -5359,6 +5366,15 @@ version { puts "git-gui version $appvers" exit } +browser { + if {[llength $argv] != 1} { + puts stderr "usage: $argv0 browser commit" + exit 1 + } + set current_branch [lindex $argv 0] + new_browser $current_branch + return +} blame { if {[llength $argv] != 2} { puts stderr "usage: $argv0 blame commit path"