Merge branch 'master' of git://repo.or.cz/git-gui

* 'master' of git://repo.or.cz/git-gui:
  git-gui: Don't require a .pvcsrc to create Tools/Migrate menu hack
  git-gui: Don't nice git blame on MSYS as nice is not supported
  git-gui: Don't require $DISPLAY just to get --version
  git-gui: Quiet our installation process
  git-gui: Bind Tab/Shift-Tab to cycle between panes in blame
  git-gui: Correctly install to /usr/bin on Cygwin
This commit is contained in:
Junio C Hamano 2007-06-28 21:32:41 -07:00
commit 82ff9d2c8b
3 changed files with 59 additions and 21 deletions

View File

@ -7,6 +7,8 @@ GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
@$(SHELL_PATH) ./GIT-VERSION-GEN @$(SHELL_PATH) ./GIT-VERSION-GEN
-include GIT-VERSION-FILE -include GIT-VERSION-FILE
uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not')
SCRIPT_SH = git-gui.sh SCRIPT_SH = git-gui.sh
GITGUI_BUILT_INS = git-citool GITGUI_BUILT_INS = git-citool
ALL_PROGRAMS = $(GITGUI_BUILT_INS) $(patsubst %.sh,%,$(SCRIPT_SH)) ALL_PROGRAMS = $(GITGUI_BUILT_INS) $(patsubst %.sh,%,$(SCRIPT_SH))
@ -29,11 +31,35 @@ ifndef INSTALL
INSTALL = install INSTALL = install
endif endif
INSTALL_D0 = $(INSTALL) -d -m755 # space is required here
INSTALL_D1 =
INSTALL_R0 = $(INSTALL) -m644 # space is required here
INSTALL_R1 =
INSTALL_X0 = $(INSTALL) -m755 # space is required here
INSTALL_X1 =
INSTALL_L0 = rm -f # space is required here
INSTALL_L1 = && ln # space is required here
INSTALL_L2 =
INSTALL_L3 =
ifndef V ifndef V
QUIET_GEN = @echo ' ' GEN $@; QUIET = @
QUIET_BUILT_IN = @echo ' ' BUILTIN $@; QUIET_GEN = $(QUIET)echo ' ' GEN $@ &&
QUIET_INDEX = @echo ' ' INDEX $(dir $@); QUIET_BUILT_IN = $(QUIET)echo ' ' BUILTIN $@ &&
QUIET_INDEX = $(QUIET)echo ' ' INDEX $(dir $@) &&
QUIET_2DEVNULL = 2>/dev/null QUIET_2DEVNULL = 2>/dev/null
INSTALL_D0 = dir=
INSTALL_D1 = && echo ' ' DEST $$dir && $(INSTALL) -d -m755 "$$dir"
INSTALL_R0 = src=
INSTALL_R1 = && echo ' ' INSTALL 644 `basename $$src` && $(INSTALL) -m644 $$src
INSTALL_X0 = src=
INSTALL_X1 = && echo ' ' INSTALL 755 `basename $$src` && $(INSTALL) -m755 $$src
INSTALL_L0 = dst=
INSTALL_L1 = && src=
INSTALL_L2 = && dst=
INSTALL_L3 = && echo ' ' 'LINK ' `basename "$$dst"` '->' `basename "$$src"` && rm -f "$$dst" && ln "$$src" "$$dst"
endif endif
TCL_PATH ?= tclsh TCL_PATH ?= tclsh
@ -58,11 +84,15 @@ exedir_SQ = $(subst ','\'',$(exedir))
$(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
$(QUIET_GEN)rm -f $@ $@+ && \ $(QUIET_GEN)rm -f $@ $@+ && \
GITGUI_RELATIVE= && \
if test '$(exedir_SQ)' = '$(libdir_SQ)'; then \ if test '$(exedir_SQ)' = '$(libdir_SQ)'; then \
GITGUI_RELATIVE=1; \ if test "$(uname_O)" = Cygwin; \
then GITGUI_RELATIVE= ; \
else GITGUI_RELATIVE=1; \
fi; \
fi && \ fi && \
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
-e 's|^exec wish "$$0"|exec $(subst |,'\|',$(TCLTK_PATH_SQ)) "$$0"|' \ -e 's|^ exec wish "$$0"| exec $(subst |,'\|',$(TCLTK_PATH_SQ)) "$$0"|' \
-e 's/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \ -e 's/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \
-e 's|@@GITGUI_RELATIVE@@|'$$GITGUI_RELATIVE'|' \ -e 's|@@GITGUI_RELATIVE@@|'$$GITGUI_RELATIVE'|' \
-e $$GITGUI_RELATIVE's|@@GITGUI_LIBDIR@@|$(libdir_SQ)|' \ -e $$GITGUI_RELATIVE's|@@GITGUI_LIBDIR@@|$(libdir_SQ)|' \
@ -109,12 +139,12 @@ GIT-GUI-VARS: .FORCE-GIT-GUI-VARS
all:: $(ALL_PROGRAMS) lib/tclIndex all:: $(ALL_PROGRAMS) lib/tclIndex
install: all install: all
$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)' $(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(gitexecdir_SQ)' $(INSTALL_D1)
$(INSTALL) git-gui '$(DESTDIR_SQ)$(gitexecdir_SQ)' $(QUIET)$(INSTALL_X0)git-gui $(INSTALL_X1) '$(DESTDIR_SQ)$(gitexecdir_SQ)'
$(foreach p,$(GITGUI_BUILT_INS), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;) $(QUIET)$(foreach p,$(GITGUI_BUILT_INS), $(INSTALL_L0)'$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' $(INSTALL_L1)'$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' $(INSTALL_L2)'$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' $(INSTALL_L3) &&) true
$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(libdir_SQ)' $(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(libdir_SQ)' $(INSTALL_D1)
$(INSTALL) -m644 lib/tclIndex '$(DESTDIR_SQ)$(libdir_SQ)' $(QUIET)$(INSTALL_R0)lib/tclIndex $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)'
$(foreach p,$(ALL_LIBFILES), $(INSTALL) -m644 $p '$(DESTDIR_SQ)$(libdir_SQ)' ;) $(QUIET)$(foreach p,$(ALL_LIBFILES), $(INSTALL_R0)$p $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)' &&) true
dist-version: dist-version:
@mkdir -p $(TARDIR) @mkdir -p $(TARDIR)

View File

@ -1,6 +1,12 @@
#!/bin/sh #!/bin/sh
# Tcl ignores the next line -*- tcl -*- \ # Tcl ignores the next line -*- tcl -*- \
exec wish "$0" -- "$@" if test "z$*" = zversion \
|| test "z$*" = z--version; \
then \
echo 'git-gui version @@GITGUI_VERSION@@'; \
exit; \
fi; \
exec wish "$0" -- "$@"
set appvers {@@GITGUI_VERSION@@} set appvers {@@GITGUI_VERSION@@}
set copyright { set copyright {
@ -302,11 +308,6 @@ proc tk_optionMenu {w varName args} {
## ##
## version check ## version check
if {{--version} eq $argv || {version} eq $argv} {
puts "git-gui version $appvers"
exit
}
set req_maj 1 set req_maj 1
set req_min 5 set req_min 5
@ -1580,8 +1581,7 @@ if {[is_MacOSX]} {
# -- Tools Menu # -- Tools Menu
# #
if {[file exists /usr/local/miga/lib/gui-miga] if {[is_Cygwin] && [file exists /usr/local/miga/lib/gui-miga]} {
&& [file exists .pvcsrc]} {
proc do_miga {} { proc do_miga {} {
global ui_status_value global ui_status_value
if {![lock_index update]} return if {![lock_index update]} return

View File

@ -272,6 +272,8 @@ constructor new {i_commit i_path} {
set cursorW %W set cursorW %W
tk_popup $w.ctxm %X %Y tk_popup $w.ctxm %X %Y
" "
bind $i <Shift-Tab> "[list focus $w_cviewer];break"
bind $i <Tab> "[list focus $w_cviewer];break"
} }
foreach i [concat $w_columns $w_cviewer] { foreach i [concat $w_columns $w_cviewer] {
@ -287,8 +289,10 @@ constructor new {i_commit i_path} {
bind $i <Control-Key-f> {catch {%W yview scroll 1 pages};break} bind $i <Control-Key-f> {catch {%W yview scroll 1 pages};break}
} }
bind $w_cviewer <Shift-Tab> "[list focus $w_file];break"
bind $w_cviewer <Tab> "[list focus $w_file];break"
bind $w_cviewer <Button-1> [list focus $w_cviewer] bind $w_cviewer <Button-1> [list focus $w_cviewer]
bind $top <Visibility> [list focus $top] bind $w_file <Visibility> [list focus $w_file]
grid configure $w.header -sticky ew grid configure $w.header -sticky ew
grid configure $w.file_pane -sticky nsew grid configure $w.file_pane -sticky nsew
@ -483,7 +487,11 @@ method _read_file {fd jump} {
} ifdeleted { catch {close $fd} } } ifdeleted { catch {close $fd} }
method _exec_blame {cur_w cur_d options cur_s} { method _exec_blame {cur_w cur_d options cur_s} {
set cmd [list nice git blame] set cmd [list]
if {![is_Windows] || [is_Cygwin]} {
lappend cmd nice
}
lappend cmd git blame
set cmd [concat $cmd $options] set cmd [concat $cmd $options]
lappend cmd --incremental lappend cmd --incremental
if {$commit eq {}} { if {$commit eq {}} {