зеркало из https://github.com/microsoft/git.git
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:
Коммит
47d45a5ebd
|
@ -854,6 +854,7 @@ set default_config(gui.fontdiff) [font configure font_diff]
|
|||
# TODO: this option should be added to the git-config documentation
|
||||
set default_config(gui.maxfilesdisplayed) 5000
|
||||
set default_config(gui.usettk) 1
|
||||
set default_config(gui.warndetachedcommit) 1
|
||||
set font_descs {
|
||||
{fontui font_ui {mc "Main 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
|
||||
# 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]
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ field w_asim ; # text column: annotations (simple computation)
|
|||
field w_file ; # text column: actual file data
|
||||
field w_cviewer ; # pane showing commit message
|
||||
field finder ; # find mini-dialog frame
|
||||
field gotoline ; # line goto mini-dialog frame
|
||||
field status ; # status mega-widget instance
|
||||
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}] \
|
||||
]
|
||||
|
||||
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
|
||||
text $w_cviewer \
|
||||
-background white \
|
||||
|
@ -274,7 +280,11 @@ constructor new {i_commit i_path i_jump} {
|
|||
$w.ctxm add command \
|
||||
-label [mc "Find Text..."] \
|
||||
-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
|
||||
build_encoding_menu $w.ctxm.enc [cb _setencoding]
|
||||
$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 <Button-1> [list focus $w_cviewer]
|
||||
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 <F3> [list searchbar::find_next $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] }
|
||||
|
||||
grid configure $w.header -sticky ew
|
||||
|
@ -1298,9 +1311,9 @@ method _position_tooltip {} {
|
|||
set pos_y [expr {[winfo pointery .] + 10}]
|
||||
|
||||
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
|
||||
if {$pos_y >= 0} {append g +}
|
||||
if {[tk windowingsystem] eq "win32" || $pos_y >= 0} {append g +}
|
||||
append g $pos_y
|
||||
|
||||
wm geometry $tooltip_wm $g
|
||||
|
@ -1336,4 +1349,14 @@ method _resize {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
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -610,9 +610,9 @@ method _position_tooltip {} {
|
|||
set pos_y [expr {[winfo pointery .] + 10}]
|
||||
|
||||
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
|
||||
if {$pos_y >= 0} {append g +}
|
||||
if {[tk windowingsystem] eq "win32" || $pos_y >= 0} {append g +}
|
||||
append g $pos_y
|
||||
|
||||
wm geometry $tooltip_wm $g
|
||||
|
|
|
@ -260,8 +260,23 @@ proc commit_prehook_wait {fd_ph curHEAD msg_p} {
|
|||
}
|
||||
|
||||
proc commit_commitmsg {curHEAD msg_p} {
|
||||
global is_detached repo_config
|
||||
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.
|
||||
#
|
||||
set fd_ph [githook_read commit-msg $msg_p]
|
||||
|
|
|
@ -356,12 +356,21 @@ proc do_add_all {} {
|
|||
global file_states
|
||||
|
||||
set paths [list]
|
||||
set unknown_paths [list]
|
||||
foreach path [array names file_states] {
|
||||
switch -glob -- [lindex $file_states($path) 0] {
|
||||
U? {continue}
|
||||
?M -
|
||||
?T -
|
||||
?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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -35,6 +35,8 @@ constructor new {i_w i_text args} {
|
|||
grid remove $w
|
||||
|
||||
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]
|
||||
return $this
|
||||
|
@ -196,4 +198,4 @@ method scrolled {} {
|
|||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
them.
|
||||
|
||||
You would then need to clone the git-gui internationalization project
|
||||
repository, so that you can work on it:
|
||||
You would then need to clone the git-gui project repository and create
|
||||
a feature branch to begin working:
|
||||
|
||||
$ git clone mob@repo.or.cz:/srv/git/git-gui/git-gui-i18n.git/
|
||||
$ cd git-gui-i18n
|
||||
$ git checkout --track -b mob origin/mob
|
||||
$ git config remote.origin.push mob
|
||||
$ git clone git://repo.or.cz/git-gui.git
|
||||
$ cd git-gui.git
|
||||
$ git checkout -b my-translation
|
||||
|
||||
The "git checkout" command creates a 'mob' branch from upstream's
|
||||
corresponding branch and makes it your current branch. 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".
|
||||
The "git checkout" command creates a new branch to keep your work
|
||||
isolated and to make it simple to post your patch series when
|
||||
completed. You will be working on this branch.
|
||||
|
||||
|
||||
2. Starting a new language.
|
||||
|
||||
In the git-gui-i18n directory is a po/ subdirectory. It has a
|
||||
handful files whose names end with ".po". Is there a file that has
|
||||
messages in your language?
|
||||
In the git-gui directory is a po/ subdirectory. It has a handful of
|
||||
files whose names end with ".po". Is there a file that has messages
|
||||
in your language?
|
||||
|
||||
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:
|
||||
|
@ -149,15 +144,18 @@ There is a trick to test your translation without first installing:
|
|||
$ make
|
||||
$ LANG=af ./git-gui.sh
|
||||
|
||||
When you are satisfied with your translation, commit your changes, and
|
||||
push it back to the 'mob' branch:
|
||||
When you are satisfied with your translation, commit your changes then submit
|
||||
your patch series to the maintainer and the Git mailing list:
|
||||
|
||||
$ edit po/af.po
|
||||
... be sure to update Last-Translator: and
|
||||
... PO-Revision-Date: lines.
|
||||
$ git add po/af.po
|
||||
$ git commit -m 'Started Afrikaans translation.'
|
||||
$ git push
|
||||
$ git commit -s -m 'git-gui: added Afrikaans translation.'
|
||||
$ 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.
|
||||
|
@ -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:
|
||||
|
||||
$ git checkout master
|
||||
$ git pull
|
||||
|
||||
In the former case, you will edit po/af.po (again, replace "af" with
|
||||
|
|
|
@ -1714,7 +1714,7 @@ msgstr ""
|
|||
|
||||
#: lib/index.tcl:30
|
||||
msgid "Continue"
|
||||
msgstr "Forstätt"
|
||||
msgstr "Fortsätt"
|
||||
|
||||
#: lib/index.tcl:33
|
||||
msgid "Unlock Index"
|
||||
|
|
Загрузка…
Ссылка в новой задаче