diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2007-02-16 00:24:03 -0500 |
---|---|---|
committer | Shawn O. Pearce <spearce@spearce.org> | 2007-02-16 00:24:03 -0500 |
commit | b90d479255d3b47e3604493b58e271cb9cd8dccd (patch) | |
tree | 2401e7058f2e948507608f3065fe33eda64196a7 | |
parent | 101e3ae7a6b041aa86505bfd3e8b901f1dc245c3 (diff) | |
download | git-b90d479255d3b47e3604493b58e271cb9cd8dccd.tar.gz git-b90d479255d3b47e3604493b58e271cb9cd8dccd.tar.xz |
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 <committish>`.
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 <spearce@spearce.org>
-rwxr-xr-x | git-gui.sh | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/git-gui.sh b/git-gui.sh index 9ce5a3bdc..e7898014a 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 <Left> break bind $w_list <Right> break - bind $w <Visibility> "focus $w" - bind $w <Destroy> " + bind $tl <Visibility> "focus $w" + bind $tl <Destroy> " 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" |