Skip to content

Commit

Permalink
git-gui: Expose the browser as a subcommand.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Shawn O. Pearce committed Feb 16, 2007
1 parent 101e3ae commit b90d479
Showing 1 changed file with 21 additions and 5 deletions.
26 changes: 21 additions & 5 deletions git-gui.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3044,15 +3044,21 @@ 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...}
set browser_stack($w_list) {}
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 \
Expand Down Expand Up @@ -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
Expand All @@ -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) {}
}

Expand Down Expand Up @@ -5019,6 +5025,7 @@ enable_option transport
switch -- $subcommand {
--version -
version -
browser -
blame {
disable_option multicommit
disable_option branch
Expand Down Expand Up @@ -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"
Expand Down

0 comments on commit b90d479

Please sign in to comment.