1
0
mirror of https://github.com/git/git synced 2024-07-07 19:39:27 +00:00

Merge git://repo.or.cz/git-gui

* git://repo.or.cz/git-gui:
  git-gui: incremental goto line in blame view
  git-gui: clear the goto line input when hiding
  git-gui: only accept numbers in the goto-line input
  git-gui: search and linenumber input are mutual exclusive in the blame view
  git-gui: deal with unknown files when pressing the "Stage Changed" button
  git-gui: drop the 'n' and 'Shift-n' bindings from the last patch.
  git-gui: Add keyboard shortcuts for search and goto commands in blame view.
  git-gui: Enable jumping to a specific line number in blame view.
  Fix tooltip display with multiple monitors on windows.
  Fix typo: existant->existent
  git-gui: updated translator README for current procedures.
  git-gui: warn when trying to commit on a detached head
  git-gui: Corrected a typo in the Swedish translation of 'Continue'
This commit is contained in:
Junio C Hamano 2011-10-16 03:01:44 -07:00
commit 47d45a5ebd
9 changed files with 159 additions and 29 deletions

View File

@ -854,6 +854,7 @@ set default_config(gui.fontdiff) [font configure font_diff]
# TODO: this option should be added to the git-config documentation # TODO: this option should be added to the git-config documentation
set default_config(gui.maxfilesdisplayed) 5000 set default_config(gui.maxfilesdisplayed) 5000
set default_config(gui.usettk) 1 set default_config(gui.usettk) 1
set default_config(gui.warndetachedcommit) 1
set font_descs { set font_descs {
{fontui font_ui {mc "Main Font"}} {fontui font_ui {mc "Main Font"}}
{fontdiff font_diff {mc "Diff/Console Font"}} {fontdiff font_diff {mc "Diff/Console Font"}}
@ -1526,7 +1527,7 @@ proc run_prepare_commit_msg_hook {} {
# prepare-commit-msg requires PREPARE_COMMIT_MSG exist. From git-gui # prepare-commit-msg requires PREPARE_COMMIT_MSG exist. From git-gui
# it will be .git/MERGE_MSG (merge), .git/SQUASH_MSG (squash), or an # it will be .git/MERGE_MSG (merge), .git/SQUASH_MSG (squash), or an
# empty file but existant file. # empty file but existent file.
set fd_pcm [open [gitdir PREPARE_COMMIT_MSG] a] set fd_pcm [open [gitdir PREPARE_COMMIT_MSG] a]

View File

@ -22,6 +22,7 @@ field w_asim ; # text column: annotations (simple computation)
field w_file ; # text column: actual file data field w_file ; # text column: actual file data
field w_cviewer ; # pane showing commit message field w_cviewer ; # pane showing commit message
field finder ; # find mini-dialog frame field finder ; # find mini-dialog frame
field gotoline ; # line goto mini-dialog frame
field status ; # status mega-widget instance field status ; # status mega-widget instance
field old_height ; # last known height of $w.file_pane field old_height ; # last known height of $w.file_pane
@ -231,6 +232,11 @@ constructor new {i_commit i_path i_jump} {
-column [expr {[llength $w_columns] - 1}] \ -column [expr {[llength $w_columns] - 1}] \
] ]
set gotoline [::linebar::new \
$w.file_pane.out.lf $w_file \
-column [expr {[llength $w_columns] - 1}] \
]
set w_cviewer $w.file_pane.cm.t set w_cviewer $w.file_pane.cm.t
text $w_cviewer \ text $w_cviewer \
-background white \ -background white \
@ -274,7 +280,11 @@ constructor new {i_commit i_path i_jump} {
$w.ctxm add command \ $w.ctxm add command \
-label [mc "Find Text..."] \ -label [mc "Find Text..."] \
-accelerator F7 \ -accelerator F7 \
-command [list searchbar::show $finder] -command [cb _show_finder]
$w.ctxm add command \
-label [mc "Goto Line..."] \
-accelerator "Ctrl-G" \
-command [cb _show_linebar]
menu $w.ctxm.enc menu $w.ctxm.enc
build_encoding_menu $w.ctxm.enc [cb _setencoding] build_encoding_menu $w.ctxm.enc [cb _setencoding]
$w.ctxm add cascade \ $w.ctxm add cascade \
@ -341,10 +351,13 @@ constructor new {i_commit i_path i_jump} {
bind $w_cviewer <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 $w_file <Visibility> [cb _focus_search $w_file] bind $w_file <Visibility> [cb _focus_search $w_file]
bind $top <F7> [list searchbar::show $finder] bind $top <F7> [cb _show_finder]
bind $top <Key-slash> [cb _show_finder]
bind $top <Control-Key-s> [cb _show_finder]
bind $top <Escape> [list searchbar::hide $finder] bind $top <Escape> [list searchbar::hide $finder]
bind $top <F3> [list searchbar::find_next $finder] bind $top <F3> [list searchbar::find_next $finder]
bind $top <Shift-F3> [list searchbar::find_prev $finder] bind $top <Shift-F3> [list searchbar::find_prev $finder]
bind $top <Control-Key-g> [cb _show_linebar]
catch { bind $top <Shift-Key-XF86_Switch_VT_3> [list searchbar::find_prev $finder] } catch { bind $top <Shift-Key-XF86_Switch_VT_3> [list searchbar::find_prev $finder] }
grid configure $w.header -sticky ew grid configure $w.header -sticky ew
@ -1298,9 +1311,9 @@ method _position_tooltip {} {
set pos_y [expr {[winfo pointery .] + 10}] set pos_y [expr {[winfo pointery .] + 10}]
set g "${req_w}x${req_h}" set g "${req_w}x${req_h}"
if {$pos_x >= 0} {append g +} if {[tk windowingsystem] eq "win32" || $pos_x >= 0} {append g +}
append g $pos_x append g $pos_x
if {$pos_y >= 0} {append g +} if {[tk windowingsystem] eq "win32" || $pos_y >= 0} {append g +}
append g $pos_y append g $pos_y
wm geometry $tooltip_wm $g wm geometry $tooltip_wm $g
@ -1336,4 +1349,14 @@ method _resize {new_height} {
set old_height $new_height set old_height $new_height
} }
method _show_finder {} {
linebar::hide $gotoline
searchbar::show $finder
}
method _show_linebar {} {
searchbar::hide $finder
linebar::show $gotoline
}
} }

View File

@ -610,9 +610,9 @@ method _position_tooltip {} {
set pos_y [expr {[winfo pointery .] + 10}] set pos_y [expr {[winfo pointery .] + 10}]
set g "${req_w}x${req_h}" set g "${req_w}x${req_h}"
if {$pos_x >= 0} {append g +} if {[tk windowingsystem] eq "win32" || $pos_x >= 0} {append g +}
append g $pos_x append g $pos_x
if {$pos_y >= 0} {append g +} if {[tk windowingsystem] eq "win32" || $pos_y >= 0} {append g +}
append g $pos_y append g $pos_y
wm geometry $tooltip_wm $g wm geometry $tooltip_wm $g

View File

@ -260,8 +260,23 @@ proc commit_prehook_wait {fd_ph curHEAD msg_p} {
} }
proc commit_commitmsg {curHEAD msg_p} { proc commit_commitmsg {curHEAD msg_p} {
global is_detached repo_config
global pch_error global pch_error
if {$is_detached && $repo_config(gui.warndetachedcommit)} {
set msg [mc "You are about to commit on a detached head.\
This is a potentially dangerous thing to do because if you switch\
to another branch you will loose your changes and it can be difficult\
to retrieve them later from the reflog. You should probably cancel this\
commit and create a new branch to continue.\n\
\n\
Do you really want to proceed with your Commit?"]
if {[ask_popup $msg] ne yes} {
unlock_index
return
}
}
# -- Run the commit-msg hook. # -- Run the commit-msg hook.
# #
set fd_ph [githook_read commit-msg $msg_p] set fd_ph [githook_read commit-msg $msg_p]

View File

@ -356,12 +356,21 @@ proc do_add_all {} {
global file_states global file_states
set paths [list] set paths [list]
set unknown_paths [list]
foreach path [array names file_states] { foreach path [array names file_states] {
switch -glob -- [lindex $file_states($path) 0] { switch -glob -- [lindex $file_states($path) 0] {
U? {continue} U? {continue}
?M - ?M -
?T - ?T -
?D {lappend paths $path} ?D {lappend paths $path}
?O {lappend unknown_paths $path}
}
}
if {[llength $unknown_paths]} {
set reply [ask_popup [mc "There are unknown files do you also want
to stage those?"]]
if {$reply} {
set paths [concat $paths $unknown_paths]
} }
} }
add_helper {Adding all changed files} $paths add_helper {Adding all changed files} $paths

81
git-gui/lib/line.tcl Normal file
View File

@ -0,0 +1,81 @@
# goto line number
# based on code from gitk, Copyright (C) Paul Mackerras
class linebar {
field w
field ctext
field linenum {}
constructor new {i_w i_text args} {
global use_ttk NS
set w $i_w
set ctext $i_text
${NS}::frame $w
${NS}::label $w.l -text [mc "Goto Line:"]
entry $w.ent \
-textvariable ${__this}::linenum \
-background lightgreen \
-validate key \
-validatecommand [cb _validate %P]
${NS}::button $w.bn -text [mc Go] -command [cb _goto]
pack $w.l -side left
pack $w.bn -side right
pack $w.ent -side left -expand 1 -fill x
eval grid conf $w -sticky we $args
grid remove $w
trace add variable linenum write [cb _goto_cb]
bind $w.ent <Return> [cb _goto]
bind $w.ent <Escape> [cb hide]
bind $w <Destroy> [list delete_this $this]
return $this
}
method show {} {
if {![visible $this]} {
grid $w
}
focus -force $w.ent
}
method hide {} {
if {[visible $this]} {
$w.ent delete 0 end
focus $ctext
grid remove $w
}
}
method visible {} {
return [winfo ismapped $w]
}
method editor {} {
return $w.ent
}
method _validate {P} {
# only accept numbers as input
string is integer $P
}
method _goto_cb {name ix op} {
after idle [cb _goto 1]
}
method _goto {{nohide {0}}} {
if {$linenum ne {}} {
$ctext see $linenum.0
if {!$nohide} {
hide $this
}
}
}
}

View File

@ -35,6 +35,8 @@ constructor new {i_w i_text args} {
grid remove $w grid remove $w
trace add variable searchstring write [cb _incrsearch_cb] trace add variable searchstring write [cb _incrsearch_cb]
bind $w.ent <Return> [cb find_next]
bind $w.ent <Shift-Return> [cb find_prev]
bind $w <Destroy> [list delete_this $this] bind $w <Destroy> [list delete_this $this]
return $this return $this
@ -196,4 +198,4 @@ method scrolled {} {
} }
} }
} }

View File

@ -18,28 +18,23 @@ specialized so-called "po file editors" (e.g. emacs po-mode, KBabel,
poedit, GTranslator --- any of them would work well). Please install poedit, GTranslator --- any of them would work well). Please install
them. them.
You would then need to clone the git-gui internationalization project You would then need to clone the git-gui project repository and create
repository, so that you can work on it: a feature branch to begin working:
$ git clone mob@repo.or.cz:/srv/git/git-gui/git-gui-i18n.git/ $ git clone git://repo.or.cz/git-gui.git
$ cd git-gui-i18n $ cd git-gui.git
$ git checkout --track -b mob origin/mob $ git checkout -b my-translation
$ git config remote.origin.push mob
The "git checkout" command creates a 'mob' branch from upstream's The "git checkout" command creates a new branch to keep your work
corresponding branch and makes it your current branch. You will be isolated and to make it simple to post your patch series when
working on this branch. completed. You will be working on this branch.
The "git config" command records in your repository configuration file
that you would push "mob" branch to the upstream when you say "git
push".
2. Starting a new language. 2. Starting a new language.
In the git-gui-i18n directory is a po/ subdirectory. It has a In the git-gui directory is a po/ subdirectory. It has a handful of
handful files whose names end with ".po". Is there a file that has files whose names end with ".po". Is there a file that has messages
messages in your language? in your language?
If you do not know what your language should be named, you need to find If you do not know what your language should be named, you need to find
it. This currently follows ISO 639-1 two letter codes: it. This currently follows ISO 639-1 two letter codes:
@ -149,15 +144,18 @@ There is a trick to test your translation without first installing:
$ make $ make
$ LANG=af ./git-gui.sh $ LANG=af ./git-gui.sh
When you are satisfied with your translation, commit your changes, and When you are satisfied with your translation, commit your changes then submit
push it back to the 'mob' branch: your patch series to the maintainer and the Git mailing list:
$ edit po/af.po $ edit po/af.po
... be sure to update Last-Translator: and ... be sure to update Last-Translator: and
... PO-Revision-Date: lines. ... PO-Revision-Date: lines.
$ git add po/af.po $ git add po/af.po
$ git commit -m 'Started Afrikaans translation.' $ git commit -s -m 'git-gui: added Afrikaans translation.'
$ git push $ git send-email --to 'git@vger.kernel.org' \
--cc 'Pat Thoyts <patthoyts@users.sourceforge.net>' \
--subject 'git-gui: Afrikaans translation' \
master..
3. Updating your translation. 3. Updating your translation.
@ -169,6 +167,7 @@ itself was updated and there are new messages that need translation.
In any case, make sure you are up-to-date before starting your work: In any case, make sure you are up-to-date before starting your work:
$ git checkout master
$ git pull $ git pull
In the former case, you will edit po/af.po (again, replace "af" with In the former case, you will edit po/af.po (again, replace "af" with

View File

@ -1714,7 +1714,7 @@ msgstr ""
#: lib/index.tcl:30 #: lib/index.tcl:30
msgid "Continue" msgid "Continue"
msgstr "Forstätt" msgstr "Fortsätt"
#: lib/index.tcl:33 #: lib/index.tcl:33
msgid "Unlock Index" msgid "Unlock Index"