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

* git://repo.or.cz/git-gui:
  git-gui: adjust the minimum height of diff pane for shorter screen height
  git-gui: fix use of uninitialized variable
  git-gui: store wm state and fix wm geometry
  git-gui: Ensure submodule path is quoted properly
  git-gui: fix diff for partially staged submodule changes
  git-gui: Update russian translation
  git-gui: Limit display to a maximum number of files
  git-gui: remove warning when deleting correctly merged remote branch
  git-gui: Added Greek translation & glossary
  git-gui: display summary when showing diff of a submodule
This commit is contained in:
Junio C Hamano 2009-10-27 14:55:37 -07:00
commit 4096958aab
7 changed files with 2276 additions and 24 deletions

View file

@ -745,6 +745,8 @@ set default_config(gui.newbranchtemplate) {}
set default_config(gui.spellingdictionary) {}
set default_config(gui.fontui) [font configure font_ui]
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 font_descs {
{fontui font_ui {mc "Main Font"}}
{fontdiff font_diff {mc "Diff/Console Font"}}
@ -1132,6 +1134,7 @@ set current_branch {}
set is_detached 0
set current_diff_path {}
set is_3way_diff 0
set is_submodule_diff 0
set is_conflict_diff 0
set selected_commit_type new
set diff_empty_count 0
@ -1698,10 +1701,12 @@ proc display_all_files_helper {w path icon_name m} {
$w insert end "[escape_path $path]\n"
}
set files_warning 0
proc display_all_files {} {
global ui_index ui_workdir
global file_states file_lists
global last_clicked
global files_warning
$ui_index conf -state normal
$ui_workdir conf -state normal
@ -1713,7 +1718,18 @@ proc display_all_files {} {
set file_lists($ui_index) [list]
set file_lists($ui_workdir) [list]
foreach path [lsort [array names file_states]] {
set to_display [lsort [array names file_states]]
set display_limit [get_config gui.maxfilesdisplayed]
if {[llength $to_display] > $display_limit} {
if {!$files_warning} {
# do not repeatedly warn:
set files_warning 1
info_popup [mc "Displaying only %s of %s files." \
$display_limit [llength $to_display]]
}
set to_display [lrange $to_display 0 [expr {$display_limit-1}]]
}
foreach path $to_display {
set s $file_states($path)
set m [lindex $s 0]
set icon_name [lindex $s 1]
@ -2010,6 +2026,19 @@ proc do_quit {{rc {1}}} {
# -- Stash our current window geometry into this repository.
#
set cfg_wmstate [wm state .]
if {[catch {set rc_wmstate $repo_config(gui.wmstate)}]} {
set rc_wmstate {}
}
if {$cfg_wmstate ne $rc_wmstate} {
catch {git config gui.wmstate $cfg_wmstate}
}
if {$cfg_wmstate eq {zoomed}} {
# on Windows wm geometry will lie about window
# position (but not size) when window is zoomed
# restore the window before querying wm geometry
wm state . normal
}
set cfg_geometry [list]
lappend cfg_geometry [wm geometry .]
lappend cfg_geometry [lindex [.vpane sash coord 0] 0]
@ -3054,7 +3083,7 @@ frame .vpane.lower.diff.body
set ui_diff .vpane.lower.diff.body.t
text $ui_diff -background white -foreground black \
-borderwidth 0 \
-width 80 -height 15 -wrap none \
-width 80 -height 5 -wrap none \
-font font_diff \
-xscrollcommand {.vpane.lower.diff.body.sbx set} \
-yscrollcommand {.vpane.lower.diff.body.sby set} \
@ -3212,7 +3241,7 @@ proc popup_diff_menu {ctxm ctxmmg x y X Y} {
set l [mc "Stage Hunk For Commit"]
set t [mc "Stage Line For Commit"]
}
if {$::is_3way_diff
if {$::is_3way_diff || $::is_submodule_diff
|| $current_diff_path eq {}
|| {__} eq $state
|| {_O} eq $state
@ -3249,6 +3278,14 @@ wm geometry . [lindex $gm 0]
unset gm
}
# -- Load window state
#
catch {
set gws $repo_config(gui.wmstate)
wm state . $gws
unset gws
}
# -- Key Bindings
#
bind $ui_comm <$M1B-Key-Return> {do_commit;break}

View file

@ -255,7 +255,7 @@ proc show_other_diff {path w m cont_info} {
proc start_show_diff {cont_info {add_opts {}}} {
global file_states file_lists
global is_3way_diff diff_active repo_config
global is_3way_diff is_submodule_diff diff_active repo_config
global ui_diff ui_index ui_workdir
global current_diff_path current_diff_side current_diff_header
@ -265,6 +265,7 @@ proc start_show_diff {cont_info {add_opts {}}} {
set s $file_states($path)
set m [lindex $s 0]
set is_3way_diff 0
set is_submodule_diff 0
set diff_active 1
set current_diff_header {}
@ -295,6 +296,16 @@ proc start_show_diff {cont_info {add_opts {}}} {
lappend cmd $path
}
if {[string match {160000 *} [lindex $s 2]]
|| [string match {160000 *} [lindex $s 3]]} {
set is_submodule_diff 1
if {$w eq $ui_index} {
set cmd [list submodule summary --cached -- $path]
} else {
set cmd [list submodule summary --files -- $path]
}
}
if {[catch {set fd [eval git_read --nice $cmd]} err]} {
set diff_active 0
unlock_index
@ -312,7 +323,7 @@ proc start_show_diff {cont_info {add_opts {}}} {
}
proc read_diff {fd cont_info} {
global ui_diff diff_active
global ui_diff diff_active is_submodule_diff
global is_3way_diff is_conflict_diff current_diff_header
global current_diff_queue
global diff_empty_count
@ -374,6 +385,23 @@ proc read_diff {fd cont_info} {
set tags {}
}
}
} elseif {$is_submodule_diff} {
if {$line == ""} continue
if {[regexp {^\* } $line]} {
set line [string replace $line 0 1 {Submodule }]
set tags d_@
} else {
set op [string range $line 0 2]
switch -- $op {
{ <} {set tags d_-}
{ >} {set tags d_+}
{ W} {set tags {}}
default {
puts "error: Unhandled submodule diff marker: {$op}"
set tags {}
}
}
}
} else {
set op [string index $line 0]
switch -- $op {

View file

@ -208,13 +208,15 @@ method _delete {} {
return
}
if {[tk_messageBox \
-icon warning \
-type yesno \
-title [wm title $w] \
-parent $w \
-message [mc "Recovering deleted branches is difficult.\n\nDelete the selected branches?"]] ne yes} {
return
if {$checktype ne {head}} {
if {[tk_messageBox \
-icon warning \
-type yesno \
-title [wm title $w] \
-parent $w \
-message [mc "Recovering deleted branches is difficult.\n\nDelete the selected branches?"]] ne yes} {
return
}
}
destroy $w

2005
git-gui/po/el.po Normal file

File diff suppressed because it is too large Load diff

View file

@ -90,6 +90,11 @@ msgstr ""
msgid "Ready."
msgstr ""
#: git-gui.sh:1726
#, tcl-format
msgid "Displaying only %s of %s files."
msgstr ""
#: git-gui.sh:1819
msgid "Unmodified"
msgstr ""

171
git-gui/po/glossary/el.po Normal file
View file

@ -0,0 +1,171 @@
# Translation of git-gui glossary to Greek
# Copyright (C) 2009 Jimmy Angelakos
# This file is distributed under the same license as the git-gui package.
# Jimmy Angelakos <vyruss@hellug.gr>, 2009.
msgid ""
msgstr ""
"Project-Id-Version: git-gui-glossary\n"
"POT-Creation-Date: 2008-01-07 21:20+0100\n"
"PO-Revision-Date: 2009-06-23 20:41+0300\n"
"Last-Translator: Jimmy Angelakos <vyruss@hellug.gr>\n"
"Language-Team: Greek <i18n@lists.hellug.gr>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 0.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. "English Definition (Dear translator: This file will never be visible to the user! It should only serve as a tool for you, the translator. Nothing more.)"
msgid "English Term (Dear translator: This file will never be visible to the user!)"
msgstr ""
#. ""
msgid "amend"
msgstr "διόρθωση"
#. ""
msgid "annotate"
msgstr "σχολιασμός"
#. "A 'branch' is an active line of development."
msgid "branch [noun]"
msgstr "κλάδος [αντικείμενο]"
#. ""
msgid "branch [verb]"
msgstr "διακλάδωση [ενέργεια]"
#. ""
msgid "checkout [noun]"
msgstr "εξαγωγή [αντικείμενο]"
#. "The action of updating the working tree to a revision which was stored in the object database."
msgid "checkout [verb]"
msgstr "εξαγωγή [ενέργεια]"
#. ""
msgid "clone [verb]"
msgstr "κλωνοποίηση [ενέργεια]"
#. "A single point in the git history."
msgid "commit [noun]"
msgstr "υποβολή [αντικείμενο] "
#. "The action of storing a new snapshot of the project's state in the git history."
msgid "commit [verb]"
msgstr "υποβολή [ενέργεια]"
#. ""
msgid "diff [noun]"
msgstr "διαφορά [αντικείμενο] "
#. ""
msgid "diff [verb]"
msgstr "διαφορά [ενέργεια]"
#. "A fast-forward is a special type of merge where you have a revision and you are merging another branch's changes that happen to be a descendant of what you have."
msgid "fast forward merge"
msgstr "συγχώνευση επιτάχυνσης"
#. "Fetching a branch means to get the branch's head from a remote repository, to find out which objects are missing from the local object database, and to get them, too."
msgid "fetch"
msgstr "ανάκτηση"
#. "One context of consecutive lines in a whole patch, which consists of many such hunks"
msgid "hunk"
msgstr "κομμάτι"
#. "A collection of files. The index is a stored version of your working tree."
msgid "index (in git-gui: staging area)"
msgstr "ευρετήριο (στο git-gui: περιοχή σταδιοποίησης)"
#. "A successful merge results in the creation of a new commit representing the result of the merge."
msgid "merge [noun]"
msgstr "συγχώνευση [αντικείμενο]"
#. "To bring the contents of another branch into the current branch."
msgid "merge [verb]"
msgstr "συγχώνευση [ενέργεια]"
#. ""
msgid "message"
msgstr "μήνυμα"
#. "Deletes all stale tracking branches under <name>. These stale branches have already been removed from the remote repository referenced by <name>, but are still locally available in 'remotes/<name>'."
msgid "prune"
msgstr "κλάδεμα"
#. "Pulling a branch means to fetch it and merge it."
msgid "pull"
msgstr "λήψη"
#. "Pushing a branch means to get the branch's head ref from a remote repository, and ... (well, can someone please explain it for mere mortals?)"
msgid "push"
msgstr "ώθηση"
#. ""
msgid "redo"
msgstr "ξανά"
#. "An other repository ('remote'). One might have a set of remotes whose branches one tracks."
msgid "remote"
msgstr "απομακρυσμένο"
#. "A collection of refs (?) together with an object database containing all objects which are reachable from the refs... (oops, you've lost me here. Again, please an explanation for mere mortals?)"
msgid "repository"
msgstr "αποθετήριο"
#. ""
msgid "reset"
msgstr "επαναφορά"
#. ""
msgid "revert"
msgstr "αναίρεση"
#. "A particular state of files and directories which was stored in the object database."
msgid "revision"
msgstr "αναθεώρηση"
#. ""
#, fuzzy
msgid "sign off"
msgstr "αποσύνδεση"
#. ""
msgid "staging area"
msgstr "περιοχή σταδιοποίησης"
#. ""
msgid "status"
msgstr "κατάσταση"
#. "A ref pointing to a tag or commit object"
msgid "tag [noun]"
msgstr "ετικέτα [αντικείμενο]"
#. ""
msgid "tag [verb]"
msgstr "ετικέτα [ενέργεια]"
#. "A regular git branch that is used to follow changes from another repository."
msgid "tracking branch"
msgstr "κλάδος παρακολούθησης"
#. ""
msgid "undo"
msgstr "αναίρεση"
#. ""
msgid "update"
msgstr "ενημέρωση"
#. ""
msgid "verify"
msgstr "επαλήθευση"
#. "The tree of actual checked out files."
msgid "working copy, working tree"
msgstr "αντίγραφο εργασίας"

View file

@ -90,12 +90,18 @@ msgstr "Вызов программы поддержки репозитория
#: git-gui.sh:1384
msgid "Commit declined by prepare-commit-msg hook."
msgstr "Сохранение прервано программой поддержки репозитория prepare-commit-msg"
msgstr ""
"Сохранение прервано программой поддержки репозитория prepare-commit-msg"
#: git-gui.sh:1542 lib/browser.tcl:246
msgid "Ready."
msgstr "Готово."
#: git-gui.sh:1726
#, tcl-format
msgid "Displaying only %s of %s files."
msgstr "Показано %s из %s файлов."
#: git-gui.sh:1819
msgid "Unmodified"
msgstr "Не изменено"
@ -1297,8 +1303,8 @@ msgid ""
msgstr ""
"Невозможно исправить состояние во время операции слияния.\n"
"\n"
"Текущее слияние не завершено. Невозможно исправить предыдущее "
"сохраненное состояние, не прерывая эту операцию.\n"
"Текущее слияние не завершено. Невозможно исправить предыдущее сохраненное "
"состояние, не прерывая эту операцию.\n"
#: lib/commit.tcl:48
msgid "Error loading commit data for amend:"
@ -1723,8 +1729,7 @@ msgid ""
msgstr ""
"Невозможно выполнить слияние во время исправления.\n"
"\n"
"Завершите исправление данного состояния перед выполнением операции "
"слияния.\n"
"Завершите исправление данного состояния перед выполнением операции слияния.\n"
#: lib/merge.tcl:27
msgid ""
@ -1888,8 +1893,8 @@ msgstr ""
#, tcl-format
msgid "File %s seems to have unresolved conflicts, still stage?"
msgstr ""
"Файл %s кажется содержит необработаные конфликты. "
"Продолжить подготовку к сохранению?"
"Файл %s кажется содержит необработаные конфликты. Продолжить подготовку к "
"сохранению?"
#: lib/mergetool.tcl:60
#, tcl-format
@ -2213,8 +2218,8 @@ msgid ""
"One or more of the merge tests failed because you have not fetched the "
"necessary commits. Try fetching from %s first."
msgstr ""
"Некоторые тесты на слияние не прошли, потому что Вы не "
"получили необходимые состояния. Попытайтесь получить их из %s."
"Некоторые тесты на слияние не прошли, потому что Вы не получили необходимые "
"состояния. Попытайтесь получить их из %s."
#: lib/remote_branch_delete.tcl:207
msgid "Please select one or more branches to delete."
@ -2381,8 +2386,8 @@ msgstr "Выполнение: %s"
#: lib/tools.tcl:149
#, tcl-format
msgid "Tool completed succesfully: %s"
msgstr "Программа %s успешно завершилась."
msgid "Tool completed successfully: %s"
msgstr "Программа %s завершилась успешно."
#: lib/tools.tcl:151
#, tcl-format
@ -2538,4 +2543,3 @@ msgstr "Использовать thin pack (для медленных сетев
#: lib/transport.tcl:179
msgid "Include tags"
msgstr "Передать метки"