Skip to content

Commit

Permalink
git-gui: Select subcommands like git does.
Browse files Browse the repository at this point in the history
If we are invoked as `git-foo`, then we should run the `foo` subcommand,
as the user has made some sort of link from `git-foo` to our actual
program code.  So we should honor their request.

If we are invoked as `git-gui foo`, the user has not made a link (or
did, but is not using it right now) so we should execute the `foo`
subcommand.

We now can start the single commit UI mode via `git-citool` and also
through `git gui citool`.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  • Loading branch information
spearce committed Feb 9, 2007
1 parent 2ebba52 commit 258871d
Showing 1 changed file with 35 additions and 13 deletions.
48 changes: 35 additions & 13 deletions git-gui.sh
Expand Up @@ -4917,20 +4917,32 @@ apply_config
##
## feature option selection

if {[regexp {^git-(.+)$} [appname] _junk subcommand]} {
unset _junk
} else {
set subcommand gui
}
if {$subcommand eq {gui.sh}} {
set subcommand gui
}
if {$subcommand eq {gui} && [llength $argv] > 0} {
set subcommand [lindex $argv 0]
set argv [lrange $argv 1 end]
}

enable_option multicommit
enable_option branch
enable_option transport

if {[appname] eq {git-citool}} {
enable_option singlecommit

switch -- $subcommand {
blame {
disable_option multicommit
disable_option branch
disable_option transport
}
citool {
enable_option singlecommit

switch -- [lindex $argv 0] {
blame {
disable_option multicommit
disable_option branch
disable_option transport
Expand Down Expand Up @@ -5257,20 +5269,30 @@ bind all <$M1B-Key-W> {destroy [winfo toplevel %W]}

# -- Not a normal commit type invocation? Do that instead!
#
switch -- [lindex $argv 0] {
switch -- $subcommand {
blame {
if {[llength $argv] == 3} {
set current_branch [lindex $argv 1]
show_blame $current_branch [lindex $argv 2]
return
} else {
if {[llength $argv] != 2} {
puts stderr "usage: $argv0 blame commit path"
exit 1
}
set current_branch [lindex $argv 0]
show_blame $current_branch [lindex $argv 1]
return
}
citool -
gui {
if {[llength $argv] != 0} {
puts -nonewline stderr "usage: $argv0"
if {$subcommand ne {gui} && [appname] ne "git-$subcommand"} {
puts -nonewline stderr " $subcommand"
}
puts stderr {}
exit 1
}
# fall through to setup UI for commits
}
{} {}
default {
puts stderr "usage: $argv0 \[{blame}\]"
puts stderr "usage: $argv0 \[{blame|citool}\]"
exit 1
}
}
Expand Down

0 comments on commit 258871d

Please sign in to comment.