From 85d2d59760e5de7f288109cb278eb91da0d5f9bf Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Wed, 18 Jul 2007 00:53:14 -0400 Subject: git-gui: Allow browser subcommand to start in subdirectory Like our blame subcommand the browser subcommand now accepts both a revision and a path, just a revision or just a path. This way the user can start the subcommand on any branch, or on any subtree. Signed-off-by: Shawn O. Pearce --- git-gui.sh | 46 ++++++++++++++++++++-------------------------- 1 file changed, 20 insertions(+), 26 deletions(-) (limited to 'git-gui.sh') diff --git a/git-gui.sh b/git-gui.sh index 9ddb61ea90..267d606218 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -1976,27 +1976,7 @@ proc usage {} { # -- Not a normal commit type invocation? Do that instead! # switch -- $subcommand { -browser { - set subcommand_args {rev?} - switch [llength $argv] { - 0 { load_current_branch } - 1 { - set current_branch [lindex $argv 0] - if {[regexp {^[0-9a-f]{1,39}$} $current_branch]} { - if {[catch { - set current_branch \ - [git rev-parse --verify $current_branch] - } err]} { - puts stderr $err - exit 1 - } - } - } - default usage - } - browser::new $current_branch - return -} +browser - blame { set subcommand_args {rev? path} if {$argv eq {}} usage @@ -2044,12 +2024,26 @@ blame { set current_branch $head } - if {$head eq {} && ![file exists $path]} { - puts stderr "fatal: cannot stat path $path: No such file or directory" - exit 1 + switch -- $subcommand { + browser { + if {$head eq {}} { + if {$path ne {} && [file isdirectory $path]} { + set head $current_branch + } else { + set head $path + set path {} + } + } + browser::new $head $path + } + blame { + if {$head eq {} && ![file exists $path]} { + puts stderr "fatal: cannot stat path $path: No such file or directory" + exit 1 + } + blame::new $head $path + } } - - blame::new $head $path return } citool - -- cgit v1.3