From 7add5aff869746ced2b506801176561d4b80e427 Mon Sep 17 00:00:00 2001 From: Anders Kaseorg Date: Thu, 6 Jan 2011 17:42:33 -0700 Subject: [PATCH 1/5] gitk: Take only numeric version components when computing $git_version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes errors running with release candidate versions of Git: Error in startup script: expected version number but got "1.7.4-rc0" Also, $git_version is no longer artificially limited to three components. That limitation was added by commit 194bbf6cc8c2 ("gitk: Handle msysGit version during version comparisons") to deal with msysGit version strings like “1.6.4.msysgit.0”, and we don’t need it now. Hence as another side effect, this enables showing notes with git version 1.6.6.2 or 1.6.6.3, as originally intended by commit 7defefb13427 ("gitk: Show notes by default (like git log does"). Signed-off-by: Anders Kaseorg Reported-by: Mathias Lafeldt Reviewed-by: Jonathan Nieder Signed-off-by: Paul Mackerras --- gitk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitk b/gitk index e82c6bfede..9cbc09de6a 100755 --- a/gitk +++ b/gitk @@ -11581,7 +11581,7 @@ if {![info exists have_ttk]} { set use_ttk [expr {$have_ttk && $want_ttk}] set NS [expr {$use_ttk ? "ttk" : ""}] -set git_version [join [lrange [split [lindex [exec git version] end] .] 0 2] .] +regexp {^git version ([\d.]*\d)} [exec git version] _ git_version set show_notes {} if {[package vcompare $git_version "1.6.6.2"] >= 0} { From 7317a104c4bbaa9bd061f4276297c924ba91a946 Mon Sep 17 00:00:00 2001 From: Skip Date: Mon, 17 Jan 2011 22:23:12 +0100 Subject: [PATCH 2/5] gitk: spelling fixes in Russian translation Signed-off-by: Skip Signed-off-by: Alex Riesen Signed-off-by: Paul Mackerras --- po/ru.po | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/po/ru.po b/po/ru.po index c3d0285b24..59873033af 100644 --- a/po/ru.po +++ b/po/ru.po @@ -24,7 +24,7 @@ msgstr "Ошибка в идентификаторе версии:" #: gitk:323 msgid "Error executing --argscmd command:" -msgstr "Ошибка выполнения команды заданой --argscmd:" +msgstr "Ошибка выполнения команды заданной --argscmd:" #: gitk:336 msgid "No files selected: --merge specified but no files are unmerged." @@ -37,7 +37,7 @@ msgid "" "No files selected: --merge specified but no unmerged files are within file " "limit." msgstr "" -"Файлы не выбраны: указан --merge, но в рамках указаного " +"Файлы не выбраны: указан --merge, но в рамках указанного " "ограничения на имена файлов нет ни одного " "где эта операция должна быть завершена." @@ -246,11 +246,11 @@ msgstr "Файлы" #: gitk:2326 gitk:2339 msgid "Diff this -> selected" -msgstr "Сравнить это состояние с выделеным" +msgstr "Сравнить это состояние с выделенным" #: gitk:2327 gitk:2340 msgid "Diff selected -> this" -msgstr "Сравнить выделеное с этим состоянием" +msgstr "Сравнить выделенное с этим состоянием" #: gitk:2328 gitk:2341 msgid "Make patch" @@ -440,11 +440,11 @@ msgstr "<%s-F>\t\tПоиск" #: gitk:2666 #, tcl-format msgid "<%s-G>\t\tMove to next find hit" -msgstr "<%s-G>\t\tПерейти к следующему найденому состоянию" +msgstr "<%s-G>\t\tПерейти к следующему найденному состоянию" #: gitk:2667 msgid "\tMove to next find hit" -msgstr "\tПерейти к следующему найденому состоянию" +msgstr "\tПерейти к следующему найденному состоянию" #: gitk:2668 msgid "/\t\tFocus the search box" @@ -452,7 +452,7 @@ msgstr "/\t\tПерейти к полю поиска" #: gitk:2669 msgid "?\t\tMove to previous find hit" -msgstr "?\t\tПерейти к предыдущему найденому состоянию" +msgstr "?\t\tПерейти к предыдущему найденному состоянию" #: gitk:2670 msgid "f\t\tScroll diff view to next file" @@ -466,7 +466,7 @@ msgstr "<%s-S>\t\tПродолжить поиск в списке изменен #: gitk:2672 #, tcl-format msgid "<%s-R>\t\tSearch for previous hit in diff view" -msgstr "<%s-R>\t\tПерейти к предыдущему найденому тексту в списке изменений" +msgstr "<%s-R>\t\tПерейти к предыдущему найденному тексту в списке изменений" #: gitk:2673 #, tcl-format @@ -855,7 +855,7 @@ msgstr "Лёгкий: оставить рабочий каталог и инде #: gitk:8472 msgid "Mixed: Leave working tree untouched, reset index" msgstr "" -"Смешаный: оставить рабочий каталог неизменным, установить индекс" +"Смешанный: оставить рабочий каталог неизменным, установить индекс" #: gitk:8475 msgid "" @@ -962,7 +962,7 @@ msgstr "Показывать близкие метки" #: gitk:10126 msgid "Limit diffs to listed paths" -msgstr "Ограничить показ изменений выбраными файлами" +msgstr "Ограничить показ изменений выбранными файлами" #: gitk:10129 msgid "Support per-file encodings" @@ -1022,11 +1022,11 @@ msgstr "заголовок блока изменений" #: gitk:10169 msgid "Marked line bg" -msgstr "Фон выбраной строки" +msgstr "Фон выбранной строки" #: gitk:10171 msgid "marked line background" -msgstr "фон выбраной строки" +msgstr "фон выбранной строки" #: gitk:10175 msgid "Select bg" From 21ac8a8d0b8d95058e8fc7121ab7e653ab948c9e Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Wed, 9 Mar 2011 20:52:38 +1100 Subject: [PATCH 3/5] gitk: Allow user to control how much of the SHA1 ID gets auto-selected This adds a new spinbox on the Edit Preferences pane to allow the user to control how many characters of the SHA1 ID get autoselected. Signed-off-by: Paul Mackerras --- gitk | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/gitk b/gitk index 9cbc09de6a..f23fc16198 100755 --- a/gitk +++ b/gitk @@ -2652,7 +2652,7 @@ proc savestuff {w} { global viewname viewfiles viewargs viewargscmd viewperm nextviewnum global cmitmode wrapcomment datetimeformat limitdiffs global colors uicolor bgcolor fgcolor diffcolors diffcontext selectbgcolor - global autoselect extdifftool perfile_attrs markbgcolor use_ttk + global autoselect autosellen extdifftool perfile_attrs markbgcolor use_ttk global hideremotes want_ttk if {$stuffsaved} return @@ -2673,6 +2673,7 @@ proc savestuff {w} { puts $f [list set cmitmode $cmitmode] puts $f [list set wrapcomment $wrapcomment] puts $f [list set autoselect $autoselect] + puts $f [list set autosellen $autosellen] puts $f [list set showneartags $showneartags] puts $f [list set hideremotes $hideremotes] puts $f [list set showlocalchanges $showlocalchanges] @@ -6896,7 +6897,7 @@ proc selectline {l isnew {desired_loc {}}} { global mergemax numcommits pending_select global cmitmode showneartags allcommits global targetrow targetid lastscrollrows - global autoselect jump_to_here + global autoselect autosellen jump_to_here catch {unset pending_select} $canv delete hover @@ -6958,7 +6959,7 @@ proc selectline {l isnew {desired_loc {}}} { $sha1entry delete 0 end $sha1entry insert 0 $id if {$autoselect} { - $sha1entry selection range 0 end + $sha1entry selection range 0 $autosellen } rhighlight_sel $id @@ -10756,7 +10757,7 @@ proc doprefs {} { global maxwidth maxgraphpct use_ttk NS global oldprefs prefstop showneartags showlocalchanges global uicolor bgcolor fgcolor ctext diffcolors selectbgcolor markbgcolor - global tabstop limitdiffs autoselect extdifftool perfile_attrs + global tabstop limitdiffs autoselect autosellen extdifftool perfile_attrs global hideremotes want_ttk have_ttk set top .gitkprefs @@ -10784,9 +10785,10 @@ proc doprefs {} { ${NS}::checkbutton $top.showlocal -text [mc "Show local changes"] \ -variable showlocalchanges grid x $top.showlocal -sticky w - ${NS}::checkbutton $top.autoselect -text [mc "Auto-select SHA1"] \ + ${NS}::checkbutton $top.autoselect -text [mc "Auto-select SHA1 (length)"] \ -variable autoselect - grid x $top.autoselect -sticky w + spinbox $top.autosellen -from 1 -to 40 -width 4 -textvariable autosellen + grid x $top.autoselect $top.autosellen -sticky w ${NS}::checkbutton $top.hideremotes -text [mc "Hide remote refs"] \ -variable hideremotes grid x $top.hideremotes -sticky w @@ -11428,6 +11430,7 @@ set showlocalchanges 1 set limitdiffs 1 set datetimeformat "%Y-%m-%d %H:%M:%S" set autoselect 1 +set autosellen 40 set perfile_attrs 0 set want_ttk 1 From 8dd60f5401c6ccfb69de5e8f76c55fa9e92edae5 Mon Sep 17 00:00:00 2001 From: Pat Thoyts Date: Tue, 1 Mar 2011 23:50:50 +0000 Subject: [PATCH 4/5] gitk: Quote tag names in event bindings to avoid problems with % chars Tag names that contain a % character require quoting when used in event bindings or the name may be mis-recognised for percent substitution in the event script. Reported-by: Jonathan Nieder Signed-off-by: Pat Thoyts Signed-off-by: Paul Mackerras --- gitk | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gitk b/gitk index f23fc16198..1ff4093a54 100755 --- a/gitk +++ b/gitk @@ -6301,6 +6301,7 @@ proc drawtags {id x xt y1} { -width $lthickness -fill black -tags tag.$id] $canv lower $t foreach tag $marks x $xvals wid $wvals { + set tag_quoted [string map {% %%} $tag] set xl [expr {$x + $delta}] set xr [expr {$x + $delta + $wid + $lthickness}] set font mainfont @@ -6309,7 +6310,7 @@ proc drawtags {id x xt y1} { set t [$canv create polygon $x [expr {$yt + $delta}] $xl $yt \ $xr $yt $xr $yb $xl $yb $x [expr {$yb - $delta}] \ -width 1 -outline black -fill yellow -tags tag.$id] - $canv bind $t <1> [list showtag $tag 1] + $canv bind $t <1> [list showtag $tag_quoted 1] set rowtextx([rowofcommit $id]) [expr {$xr + $linespc}] } else { # draw a head or other ref @@ -6336,9 +6337,9 @@ proc drawtags {id x xt y1} { set t [$canv create text $xl $y1 -anchor w -text $tag -fill $fgcolor \ -font $font -tags [list tag.$id text]] if {$ntags >= 0} { - $canv bind $t <1> [list showtag $tag 1] + $canv bind $t <1> [list showtag $tag_quoted 1] } elseif {$nheads >= 0} { - $canv bind $t $ctxbut [list headmenu %X %Y $id $tag] + $canv bind $t $ctxbut [list headmenu %X %Y $id $tag_quoted] } } return $xt From b74307f6a551d50e9b1aa121a326d32ff1827a93 Mon Sep 17 00:00:00 2001 From: Anders Kaseorg Date: Wed, 19 Jan 2011 14:45:00 -0500 Subject: [PATCH 5/5] gitk: Update cherry-pick error message parsing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit 981ff5c37ae20687c98d98c8689d5e89016026d2 changed the error message from git cherry-pick from Automatic cherry-pick failed. [...advice...] to error: could not apply 7ab78c9... Do something neat. [...advice...] Update gitk’s regex to match this, restoring the ability to launch git citool to resolve conflicted cherry-picks. Signed-off-by: Anders Kaseorg Signed-off-by: Paul Mackerras --- gitk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitk b/gitk index 1ff4093a54..4cde0c493b 100755 --- a/gitk +++ b/gitk @@ -9065,7 +9065,7 @@ proc cherrypick {} { to file '%s'.\nPlease commit, reset or stash\ your changes and try again." $fname] } elseif {[regexp -line \ - {^(CONFLICT \(.*\):|Automatic cherry-pick failed)} \ + {^(CONFLICT \(.*\):|Automatic cherry-pick failed|error: could not apply)} \ $err]} { if {[confirm_popup [mc "Cherry-pick failed because of merge\ conflict.\nDo you wish to run git citool to\