aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2007-02-16 00:24:03 -0500
committerShawn O. Pearce <spearce@spearce.org>2007-02-16 00:24:03 -0500
commitb90d479255d3b47e3604493b58e271cb9cd8dccd (patch)
tree2401e7058f2e948507608f3065fe33eda64196a7
parent101e3ae7a6b041aa86505bfd3e8b901f1dc245c3 (diff)
downloadgit-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-xgit-gui.sh26
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"