Skip to content

Commit

Permalink
Merge git://repo.or.cz/git-gui
Browse files Browse the repository at this point in the history
* 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'
  • Loading branch information
gitster committed Oct 16, 2011
2 parents cdb51a1 + 843d659 commit 47d45a5
Show file tree
Hide file tree
Showing 9 changed files with 159 additions and 29 deletions.
3 changes: 2 additions & 1 deletion git-gui/git-gui.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"}}
Expand Down Expand Up @@ -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]
Expand Down
31 changes: 27 additions & 4 deletions git-gui/lib/blame.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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 \
Expand Down Expand Up @@ -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 \
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
}

}
4 changes: 2 additions & 2 deletions git-gui/lib/choose_rev.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
15 changes: 15 additions & 0 deletions git-gui/lib/commit.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down
9 changes: 9 additions & 0 deletions git-gui/lib/index.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
81 changes: 81 additions & 0 deletions git-gui/lib/line.tcl
Original file line number Diff line number Diff line change
@@ -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
}
}
}

}
4 changes: 3 additions & 1 deletion git-gui/lib/search.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -196,4 +198,4 @@ method scrolled {} {
}
}

}
}
39 changes: 19 additions & 20 deletions git-gui/po/README
Original file line number Diff line number Diff line change
Expand Up @@ -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 [email protected]:/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:
Expand Down Expand Up @@ -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 '[email protected]' \
--cc 'Pat Thoyts <[email protected]>' \
--subject 'git-gui: Afrikaans translation' \
master..


3. Updating your translation.
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion git-gui/po/sv.po
Original file line number Diff line number Diff line change
Expand Up @@ -1714,7 +1714,7 @@ msgstr ""

#: lib/index.tcl:30
msgid "Continue"
msgstr "Forstätt"
msgstr "Fortsätt"

#: lib/index.tcl:33
msgid "Unlock Index"
Expand Down

0 comments on commit 47d45a5

Please sign in to comment.