From bfacf832b040885f876053244a75491b0dd792b6 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Sun, 13 Jul 2025 23:59:38 +0300 Subject: [PATCH 01/35] git-gui: strip the commit message after running commit-msg hook When commit-msg writes the file using CRLF, the lines in the final message include trailing spaces. Postpone stripping until after hooks execute. This aligns with Git's behavior, which passes the original message to commit-msg, then strips comments and whitespace. Signed-off-by: Orgad Shaneh --- lib/commit.tcl | 67 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 45 insertions(+), 22 deletions(-) diff --git a/lib/commit.tcl b/lib/commit.tcl index 37b3808f7e72f6..ec8dd137264a32 100644 --- a/lib/commit.tcl +++ b/lib/commit.tcl @@ -208,28 +208,6 @@ You must stage at least 1 file before you can commit. # -- A message is required. # set msg [$ui_comm get 1.0 end] - # Strip trailing whitespace - regsub -all -line {[ \t\r]+$} $msg {} msg - # Strip comment lines - global comment_string - set cmt_rx [strcat {(^|\n)} [regsub -all {\W} $comment_string {\\&}] {[^\n]*}] - regsub -all $cmt_rx $msg {\1} msg - # Strip leading and trailing empty lines (puts adds one \n) - set msg [string trim $msg \n] - # Compress consecutive empty lines - regsub -all {\n{3,}} $msg "\n\n" msg - if {$msg eq {}} { - error_popup [mc "Please supply a commit message. - -A good commit message has the following format: - -- First line: Describe in one sentence what you did. -- Second line: Blank -- Remaining lines: Describe why this change is good. -"] - unlock_index - return - } # -- Build the message file. # @@ -332,7 +310,52 @@ proc commit_commitmsg_wait {fd_ph curHEAD msg_p} { fconfigure $fd_ph -blocking 0 } +proc wash_commit_message {msg} { + # Strip trailing whitespace + regsub -all -line {[ \t\r]+$} $msg {} msg + # Strip comment lines + global comment_string + set cmt_rx [strcat {(^|\n)} [regsub -all {\W} $comment_string {\\&}] {[^\n]*}] + regsub -all $cmt_rx $msg {\1} msg + # Strip leading and trailing empty lines (puts adds one \n) + set msg [string trim $msg \n] + # Compress consecutive empty lines + regsub -all {\n{3,}} $msg \n\n msg + + return $msg +} + proc commit_writetree {curHEAD msg_p} { + # -- Process the commit message after hooks have run. + # + set msg_fd [safe_open_file $msg_p r] + setup_commit_encoding $msg_fd 1 + set msg [read $msg_fd] + close $msg_fd + + # Process the message (strip whitespace, comments, etc.) + set msg [wash_commit_message $msg] + + if {$msg eq {}} { + error_popup [mc "Please supply a commit message. + +A good commit message has the following format: + +- First line: Describe in one sentence what you did. +- Second line: Blank +- Remaining lines: Describe why this change is good. +"] + unlock_index + return + } + + # Write the processed message back to the file + set msg_wt [safe_open_file $msg_p w] + fconfigure $msg_wt -translation lf + setup_commit_encoding $msg_wt + puts $msg_wt $msg + close $msg_wt + ui_status [mc "Committing changes..."] set fd_wt [git_read [list write-tree]] fileevent $fd_wt readable \ From 2441e19d4c675abcb71e02d19f4077738ffb1dbd Mon Sep 17 00:00:00 2001 From: Ori Avtalion Date: Wed, 21 May 2025 20:12:35 +0300 Subject: [PATCH 02/35] gitk: Add user preference to hide specific references External tools such as Jujutsu may add many references that are of no interest to the user. This preference allows hiding them. Signed-off-by: Ori Avtalion --- gitk | 47 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/gitk b/gitk index 11ad639d0622ae..e7a848597d882f 100755 --- a/gitk +++ b/gitk @@ -1939,8 +1939,10 @@ proc readrefs {} { set tagids($name) $id lappend idtags($id) $name } else { - set otherrefids($name) $id - lappend idotherrefs($id) $name + if [is_other_ref_visible $name] { + set otherrefids($name) $id + lappend idotherrefs($id) $name + } } } catch {close $refd} @@ -11696,7 +11698,7 @@ proc prefspage_general {notebook} { global NS maxwidth maxgraphpct showneartags showlocalchanges global tabstop wrapcomment wrapdefault limitdiffs global autocopy autoselect autosellen extdifftool perfile_attrs - global hideremotes want_ttk have_ttk maxrefs web_browser + global hideremotes refstohide want_ttk have_ttk maxrefs web_browser set page [create_prefs_page $notebook.general] @@ -11717,6 +11719,13 @@ proc prefspage_general {notebook} { -variable hideremotes grid x $page.hideremotes -sticky w + ${NS}::entry $page.refstohide -textvariable refstohide + ${NS}::frame $page.refstohidef + ${NS}::label $page.refstohidef.l -text [mc "Refs to hide (space-separated)" ] + pack $page.refstohidef.l -side left + pack configure $page.refstohidef.l -padx 10 + grid x $page.refstohidef $page.refstohide -sticky ew + ${NS}::checkbutton $page.autocopy -text [mc "Copy commit ID to clipboard"] \ -variable autocopy grid x $page.autocopy -sticky w @@ -11863,7 +11872,7 @@ proc doprefs {} { global oldprefs prefstop showneartags showlocalchanges global uicolor bgcolor fgcolor ctext diffcolors selectbgcolor markbgcolor global tabstop limitdiffs autoselect autosellen extdifftool perfile_attrs - global hideremotes want_ttk have_ttk wrapcomment wrapdefault + global hideremotes refstohide want_ttk have_ttk wrapcomment wrapdefault set top .gitkprefs set prefstop $top @@ -11872,7 +11881,8 @@ proc doprefs {} { return } foreach v {maxwidth maxgraphpct showneartags showlocalchanges \ - limitdiffs tabstop perfile_attrs hideremotes want_ttk wrapcomment wrapdefault} { + limitdiffs tabstop perfile_attrs hideremotes refstohide \ + want_ttk wrapcomment wrapdefault} { set oldprefs($v) [set $v] } ttk_toplevel $top @@ -11998,7 +12008,8 @@ proc prefscan {} { global oldprefs prefstop foreach v {maxwidth maxgraphpct showneartags showlocalchanges \ - limitdiffs tabstop perfile_attrs hideremotes want_ttk wrapcomment wrapdefault} { + limitdiffs tabstop perfile_attrs hideremotes refstohide \ + want_ttk wrapcomment wrapdefault} { global $v set $v $oldprefs($v) } @@ -12012,7 +12023,7 @@ proc prefsok {} { global oldprefs prefstop showneartags showlocalchanges global fontpref mainfont textfont uifont global limitdiffs treediffs perfile_attrs - global hideremotes wrapcomment wrapdefault + global hideremotes refstohide wrapcomment wrapdefault global ctext catch {destroy $prefstop} @@ -12059,7 +12070,7 @@ proc prefsok {} { $limitdiffs != $oldprefs(limitdiffs)} { reselectline } - if {$hideremotes != $oldprefs(hideremotes)} { + if {$hideremotes != $oldprefs(hideremotes) || $refstohide != $oldprefs(refstohide)} { rereadrefs } if {$wrapcomment != $oldprefs(wrapcomment)} { @@ -12436,6 +12447,23 @@ proc get_path_encoding {path} { return $tcl_enc } +proc is_other_ref_visible {ref} { + global refstohide + + if {$refstohide eq {}} { + return 1 + } + + foreach pat [split $refstohide " "] { + if {$pat eq {}} continue + if {[string match $pat $ref]} { + return 0 + } + } + + return 1 +} + ## For msgcat loading, first locate the installation location. if { [info exists ::env(GITK_MSGSDIR)] } { ## Msgsdir was manually set in the environment. @@ -12539,6 +12567,7 @@ set wrapcomment "none" set wrapdefault "none" set showneartags 1 set hideremotes 0 +set refstohide "" set maxrefs 20 set visiblerefs {"master"} set maxlinelen 200 @@ -12645,7 +12674,7 @@ set config_variables { mainfont textfont uifont tabstop findmergefiles maxgraphpct maxwidth cmitmode wrapcomment wrapdefault autocopy autoselect autosellen showneartags maxrefs visiblerefs - hideremotes showlocalchanges datetimeformat limitdiffs uicolor want_ttk + hideremotes refstohide showlocalchanges datetimeformat limitdiffs uicolor want_ttk bgcolor fgcolor uifgcolor uifgdisabledcolor colors diffcolors mergecolors markbgcolor diffcontext selectbgcolor foundbgcolor currentsearchhitbgcolor extdifftool perfile_attrs headbgcolor headfgcolor headoutlinecolor From 100f597b8833c55bdac70e9c2066d9ee36e0b6cb Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Thu, 5 Jun 2025 12:23:37 -0400 Subject: [PATCH 03/35] gitk: set config dialog color swatches in one place gitk's color selection dialog uses a number of "label" widgets to show the current value of each selectable color. This uses the -background color property of label widgets, and this property is overwritten when the full ui color set is refreshed. The swatch colors are set individually using code passed into the chooser dialog, so there is no common routine to set all after updating the global ui colors. Let's replace this with a single routine that does set all swatches, removing a key impediment to restoring the ui colors if the dialog is cancelled. Signed-off-by: Mark Levedahl --- gitk | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/gitk b/gitk index ba112586bed7e0..f331d9ccd549d8 100755 --- a/gitk +++ b/gitk @@ -11660,57 +11660,73 @@ proc prefspage_colors {notebook} { grid $page.cdisp - -sticky w -pady 10 label $page.ui -padx 40 -relief sunk -background $uicolor ttk::button $page.uibut -text [mc "Interface"] \ - -command [list choosecolor uicolor {} $page.ui [mc "interface"] setui] + -command [list choosecolor uicolor {} $page [mc "interface"] setui] grid x $page.uibut $page.ui -sticky w label $page.bg -padx 40 -relief sunk -background $bgcolor ttk::button $page.bgbut -text [mc "Background"] \ - -command [list choosecolor bgcolor {} $page.bg [mc "background"] setbg] + -command [list choosecolor bgcolor {} $page [mc "background"] setbg] grid x $page.bgbut $page.bg -sticky w label $page.fg -padx 40 -relief sunk -background $fgcolor ttk::button $page.fgbut -text [mc "Foreground"] \ - -command [list choosecolor fgcolor {} $page.fg [mc "foreground"] setfg] + -command [list choosecolor fgcolor {} $page [mc "foreground"] setfg] grid x $page.fgbut $page.fg -sticky w label $page.diffold -padx 40 -relief sunk -background [lindex $diffcolors 0] ttk::button $page.diffoldbut -text [mc "Diff: old lines"] \ - -command [list choosecolor diffcolors 0 $page.diffold [mc "diff old lines"] \ + -command [list choosecolor diffcolors 0 $page [mc "diff old lines"] \ [list $ctext tag conf d0 -foreground]] grid x $page.diffoldbut $page.diffold -sticky w label $page.diffoldbg -padx 40 -relief sunk -background [lindex $diffbgcolors 0] ttk::button $page.diffoldbgbut -text [mc "Diff: old lines bg"] \ - -command [list choosecolor diffbgcolors 0 $page.diffoldbg \ + -command [list choosecolor diffbgcolors 0 $page \ [mc "diff old lines bg"] \ [list $ctext tag conf d0 -background]] grid x $page.diffoldbgbut $page.diffoldbg -sticky w label $page.diffnew -padx 40 -relief sunk -background [lindex $diffcolors 1] ttk::button $page.diffnewbut -text [mc "Diff: new lines"] \ - -command [list choosecolor diffcolors 1 $page.diffnew [mc "diff new lines"] \ + -command [list choosecolor diffcolors 1 $page [mc "diff new lines"] \ [list $ctext tag conf dresult -foreground]] grid x $page.diffnewbut $page.diffnew -sticky w label $page.diffnewbg -padx 40 -relief sunk -background [lindex $diffbgcolors 1] ttk::button $page.diffnewbgbut -text [mc "Diff: new lines bg"] \ - -command [list choosecolor diffbgcolors 1 $page.diffnewbg \ + -command [list choosecolor diffbgcolors 1 $page \ [mc "diff new lines bg"] \ [list $ctext tag conf dresult -background]] grid x $page.diffnewbgbut $page.diffnewbg -sticky w label $page.hunksep -padx 40 -relief sunk -background [lindex $diffcolors 2] ttk::button $page.hunksepbut -text [mc "Diff: hunk header"] \ - -command [list choosecolor diffcolors 2 $page.hunksep \ + -command [list choosecolor diffcolors 2 $page \ [mc "diff hunk header"] \ [list $ctext tag conf hunksep -foreground]] grid x $page.hunksepbut $page.hunksep -sticky w label $page.markbgsep -padx 40 -relief sunk -background $markbgcolor ttk::button $page.markbgbut -text [mc "Marked line bg"] \ - -command [list choosecolor markbgcolor {} $page.markbgsep \ + -command [list choosecolor markbgcolor {} $page \ [mc "marked line background"] \ [list $ctext tag conf omark -background]] grid x $page.markbgbut $page.markbgsep -sticky w label $page.selbgsep -padx 40 -relief sunk -background $selectbgcolor ttk::button $page.selbgbut -text [mc "Select bg"] \ - -command [list choosecolor selectbgcolor {} $page.selbgsep [mc "background"] setselbg] + -command [list choosecolor selectbgcolor {} $page [mc "background"] setselbg] grid x $page.selbgbut $page.selbgsep -sticky w return $page } +proc prefspage_set_colorswatches {page} { + global uicolor bgcolor fgcolor ctext diffcolors selectbgcolor markbgcolor + global diffbgcolors + + $page.ui configure -background $uicolor + $page.bg configure -background $bgcolor + $page.fg configure -background $fgcolor + $page.diffold configure -background [lindex $diffcolors 0] + $page.diffoldbg configure -background [lindex $diffbgcolors 0] + $page.diffnew configure -background [lindex $diffcolors 1] + $page.diffnewbg configure -background [lindex $diffbgcolors 1] + $page.hunksep configure -background [lindex $diffcolors 2] + $page.markbgsep configure -background $markbgcolor + $page.selbgsep configure -background $selectbgcolor +} + proc prefspage_fonts {notebook} { set page [create_prefs_page $notebook.fonts] ttk::label $page.cfont -text [mc "Fonts: press to choose"] -font mainfontbold @@ -11778,15 +11794,15 @@ proc choose_extdiff {} { } } -proc choosecolor {v vi w x cmd} { +proc choosecolor {v vi prefspage x cmd} { global $v set c [tk_chooseColor -initialcolor [lindex [set $v] $vi] \ -title [mc "Gitk: choose color for %s" $x]] if {$c eq {}} return - $w conf -background $c lset $v $vi $c eval $cmd $c + prefspage_set_colorswatches $prefspage } proc setselbg {c} { From fdaba070bcbadd902610c09707802d0a1e2d3201 Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Fri, 6 Jun 2025 11:34:04 -0400 Subject: [PATCH 04/35] gitk: restore ui colors after cancelling config dialog gitk provides a dialog to configure many ui colors. Any color element changed in the dialog takes immediate effect before closing the dialog. While cancelling the dialog after changing one or more colors avoids saving the modified colors, the user must restart gitk to restore the prior color set. This unfortunate behavior results because gitk does not have a single routine to update all of the ui colors. The prior commit eliminated the key impediment to having such a routine. So, let's create a routine to update all configured colors at once, use this when modifying colors, and also invoke this after restoring the prior set if the dialog is cancelled. Signed-off-by: Mark Levedahl --- gitk | 55 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/gitk b/gitk index f331d9ccd549d8..b5ddfd1c83f37a 100755 --- a/gitk +++ b/gitk @@ -11660,53 +11660,43 @@ proc prefspage_colors {notebook} { grid $page.cdisp - -sticky w -pady 10 label $page.ui -padx 40 -relief sunk -background $uicolor ttk::button $page.uibut -text [mc "Interface"] \ - -command [list choosecolor uicolor {} $page [mc "interface"] setui] + -command [list choosecolor uicolor {} $page [mc "interface"]] grid x $page.uibut $page.ui -sticky w label $page.bg -padx 40 -relief sunk -background $bgcolor ttk::button $page.bgbut -text [mc "Background"] \ - -command [list choosecolor bgcolor {} $page [mc "background"] setbg] + -command [list choosecolor bgcolor {} $page [mc "background"]] grid x $page.bgbut $page.bg -sticky w label $page.fg -padx 40 -relief sunk -background $fgcolor ttk::button $page.fgbut -text [mc "Foreground"] \ - -command [list choosecolor fgcolor {} $page [mc "foreground"] setfg] + -command [list choosecolor fgcolor {} $page [mc "foreground"]] grid x $page.fgbut $page.fg -sticky w label $page.diffold -padx 40 -relief sunk -background [lindex $diffcolors 0] ttk::button $page.diffoldbut -text [mc "Diff: old lines"] \ - -command [list choosecolor diffcolors 0 $page [mc "diff old lines"] \ - [list $ctext tag conf d0 -foreground]] + -command [list choosecolor diffcolors 0 $page [mc "diff old lines"]] grid x $page.diffoldbut $page.diffold -sticky w label $page.diffoldbg -padx 40 -relief sunk -background [lindex $diffbgcolors 0] ttk::button $page.diffoldbgbut -text [mc "Diff: old lines bg"] \ - -command [list choosecolor diffbgcolors 0 $page \ - [mc "diff old lines bg"] \ - [list $ctext tag conf d0 -background]] + -command [list choosecolor diffbgcolors 0 $page [mc "diff old lines bg"]] grid x $page.diffoldbgbut $page.diffoldbg -sticky w label $page.diffnew -padx 40 -relief sunk -background [lindex $diffcolors 1] ttk::button $page.diffnewbut -text [mc "Diff: new lines"] \ - -command [list choosecolor diffcolors 1 $page [mc "diff new lines"] \ - [list $ctext tag conf dresult -foreground]] + -command [list choosecolor diffcolors 1 $page [mc "diff new lines"]] grid x $page.diffnewbut $page.diffnew -sticky w label $page.diffnewbg -padx 40 -relief sunk -background [lindex $diffbgcolors 1] ttk::button $page.diffnewbgbut -text [mc "Diff: new lines bg"] \ - -command [list choosecolor diffbgcolors 1 $page \ - [mc "diff new lines bg"] \ - [list $ctext tag conf dresult -background]] + -command [list choosecolor diffbgcolors 1 $page [mc "diff new lines bg"]] grid x $page.diffnewbgbut $page.diffnewbg -sticky w label $page.hunksep -padx 40 -relief sunk -background [lindex $diffcolors 2] ttk::button $page.hunksepbut -text [mc "Diff: hunk header"] \ - -command [list choosecolor diffcolors 2 $page \ - [mc "diff hunk header"] \ - [list $ctext tag conf hunksep -foreground]] + -command [list choosecolor diffcolors 2 $page [mc "diff hunk header"]] grid x $page.hunksepbut $page.hunksep -sticky w label $page.markbgsep -padx 40 -relief sunk -background $markbgcolor ttk::button $page.markbgbut -text [mc "Marked line bg"] \ - -command [list choosecolor markbgcolor {} $page \ - [mc "marked line background"] \ - [list $ctext tag conf omark -background]] + -command [list choosecolor markbgcolor {} $page [mc "marked line background"]] grid x $page.markbgbut $page.markbgsep -sticky w label $page.selbgsep -padx 40 -relief sunk -background $selectbgcolor ttk::button $page.selbgbut -text [mc "Select bg"] \ - -command [list choosecolor selectbgcolor {} $page [mc "background"] setselbg] + -command [list choosecolor selectbgcolor {} $page [mc "background"]] grid x $page.selbgbut $page.selbgsep -sticky w return $page } @@ -11794,14 +11784,14 @@ proc choose_extdiff {} { } } -proc choosecolor {v vi prefspage x cmd} { +proc choosecolor {v vi prefspage x} { global $v set c [tk_chooseColor -initialcolor [lindex [set $v] $vi] \ -title [mc "Gitk: choose color for %s" $x]] if {$c eq {}} return lset $v $vi $c - eval $cmd $c + set_gui_colors prefspage_set_colorswatches $prefspage } @@ -11855,6 +11845,22 @@ proc setfg {c} { $canv itemconf markid -outline $c } +proc set_gui_colors {} { + global uicolor bgcolor fgcolor ctext diffcolors selectbgcolor markbgcolor + global diffbgcolors + + setui $uicolor + setbg $bgcolor + setfg $fgcolor + $ctext tag conf d0 -foreground [lindex $diffcolors 0] + $ctext tag conf d0 -background [lindex $diffbgcolors 0] + $ctext tag conf dresult -foreground [lindex $diffcolors 1] + $ctext tag conf dresult -background [lindex $diffbgcolors 1] + $ctext tag conf hunksep -foreground [lindex $diffcolors 2] + $ctext tag conf omark -background $markbgcolor + setselbg $selectbgcolor +} + proc prefscan {} { global oldprefs prefstop global {*}$::config_variables @@ -11865,6 +11871,7 @@ proc prefscan {} { catch {destroy $prefstop} unset prefstop fontcan + set_gui_colors } proc prefsok {} { @@ -12567,8 +12574,6 @@ eval font create textfontbold [fontflags textfont 1] parsefont uifont $uifont eval font create uifont [fontflags uifont] -setui $uicolor - setoptions # check that we can find a .git directory somewhere... @@ -12757,6 +12762,8 @@ if {[tk windowingsystem] eq "win32"} { focus -force . } +set_gui_colors + getcommits {} # Local variables: From 6ea3006f96f19787c949ef1e4723991756b5126b Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Fri, 6 Jun 2025 12:28:02 -0400 Subject: [PATCH 05/35] gitk: update scrolling for TclTk 8.7+ / TIP 474 TclTk 8.7 (still in alpha), and 9.0 (released), implement TIP 474 that delivers uniform handling of mouse and touchpad scrolling events on all platforms, and by default bound to most widgets. TIP 474 also implements use of the Option- modifier key (Alt- key on PC, Option- key on Macs) to indicate desire for more motion per scroll wheel event, the amplification is not defined but seems to be 5x to 10x. So, for TclTk >= 8.7 we can use identical MouseWheel bindings on all platforms, and should enable use of the Option- modifier to enable larger motion. Let's do all of this, and use a 5x multiplier for the Option- modifier. This largely follows the prior win32 model, except that Tk 8.6 does not reliably use the Option- modifier because the Alt- key conflicts with builtin behavior to activate the main menubar. Presumably this conflict is addressed in the win32 Tcl9.x package. Signed-off-by: Mark Levedahl --- gitk | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gitk b/gitk index ba112586bed7e0..700d5d152d5ec2 100755 --- a/gitk +++ b/gitk @@ -2273,6 +2273,16 @@ proc bind_mousewheel {} { bind $cflist {$cflist yview scroll [scrollval %D 2] units} bind $cflist break bind $canv {$canv xview scroll [scrollval %D] units} + + if {[package vcompare $::tcl_version 8.7] >= 0} { + bindall {allcanvs yview scroll [scrollval 5*%D] units} + bindall break + bind $ctext {$ctext yview scroll [scrollval 5*%D 2] units} + bind $ctext {$ctext xview scroll [scrollval 5*%D 2] units} + bind $cflist {$cflist yview scroll [scrollval 5*%D 2] units} + bind $cflist break + bind $canv {$canv xview scroll [scrollval 5*%D] units} + } } proc bind_mousewheel_buttons {} { @@ -2732,7 +2742,7 @@ proc makewindow {} { bindall <1> {selcanvline %W %x %y} #Mouse / touchpad scrolling - if {[tk windowingsystem] == "win32"} { + if {[tk windowingsystem] == "win32" || [package vcompare $::tcl_version 8.7] >= 0} { set scroll_D0 120 bind_mousewheel } elseif {[tk windowingsystem] == "x11"} { From ab30c04e9c7a5dd61767646a345ba364f70f6977 Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Tue, 25 Mar 2025 16:53:20 -0400 Subject: [PATCH 06/35] gitk: switch to -translation binary gitk uses '-encoding binary' in several places to handle non-text data. Per TIP 699, this is not recommended as there has been too much confusion and misconfiguration of binary channels, and this option is removed in Tcl 9. Tcl defines a binary channel as one that reproduces the input data exactly. As Tcl stores all data internally in unicode format, a binary channel requires 3 things: - -encoding iso8859-1 : this causes each byte of input to be translated to its unicode equivalent (may be multi-byte). - -translation lf : this avoids any translation of line endings, which by default are translated to \n on input. - -eofchar {} : this avoids any use of an end of file character, which is ctrl-z by default on Windows. The recommended '-translation binary' makes all three settings, but this is not done in gitk now. Rather, gitk uses '-encoding binary', which is an alias to '-encoding iso8859-1' removed by TIP 699, in multiple places, and -eofchar {} in one place but not all. All other files, configured in non-binary fashion, have -eofchar {}. Unix and Windows differ on line ending conventions, Tcl by default converts line endings to \n on input, and to those common on the platform on output. git emits only \n on Unix or Windows. Also, Tcl's proc gets recognizes and removes \n, \r, or \r\n as line endings, and this is used by gitk except in procs selectline and parsecommit. But, those two procs recognize any combination of \n and \r as terminating a line. So, there is no need to translate line endings on input, and using -translation binary avoids any such translation. Tcl sets eofchar to ctrl-z (ascii \0x1a) only on Windows, otherwise eofchar is {}. This provides compatibility to old DOS based codes and files originating when file systems recorded only sectors allocated, and not bytes used. git does not use ctrl-z to terminate data anywhere. Only two channels in gitk leave eofchar at the default value, both use -encoding binary now. A third one was converted in commit 681c3290e3 ("gitk: Handle blobs containing a DOS end-of-file marker", 2009-03-16), fixing such a problem of early data termination. Using eofchar {} is correct, even if not always necessary. Tcl 9 forces change, using -translation binary per TIP 699 does what gitk needs and is backwards compatible to Tcl 8.x. Do it. Signed-off-by: Mark Levedahl --- gitk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gitk b/gitk index 700d5d152d5ec2..cc6f7201632839 100755 --- a/gitk +++ b/gitk @@ -7783,7 +7783,7 @@ proc gettree {id} { set treepending $id set treefilelist($id) {} set treeidlist($id) {} - fconfigure $gtf -blocking 0 -encoding binary + fconfigure $gtf -blocking 0 -translation binary filerun $gtf [list gettreeline $gtf $id] } } else { @@ -8044,7 +8044,7 @@ proc gettreediffs {ids} { set treepending $ids set treediff {} - fconfigure $gdtf -blocking 0 -encoding binary + fconfigure $gdtf -blocking 0 -translation binary filerun $gdtf [list gettreediffline $gdtf $ids] } @@ -8155,7 +8155,7 @@ proc getblobdiffs {ids} { error_popup [mc "Error getting diffs: %s" $err] return } - fconfigure $bdf -blocking 0 -encoding binary -eofchar {} + fconfigure $bdf -blocking 0 -translation binary set blobdifffd($ids) $bdf initblobdiffvars filerun $bdf [list getblobdiffline $bdf $diffids] From bcf94fe072615b5ca2ecae683fb2bc58876cabdf Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Mon, 24 Mar 2025 08:45:32 -0400 Subject: [PATCH 07/35] gitk: Tcl9 doesn't expand ~, use $env(HOME) gitk looks for configuration files under $(HOME)/.., and uses the typical shortcut formats to find this, e.g., ~/.config/. This relies upon Tcl expanding such constructs to replace ~ with $(HOME). But, Tcl 9 has stopped doing that for various reasons, and now supplies [file tildeexpand ...] to perform this expansion. There are a very few places that need this expansion, and all must be modified regardless of approach taken. POSIX specifies that $HOME be defined at the time of login, and both Cygwin and MSYS (underlying git for windows) set this variable. Tcl8 uses the POSIX defined pwnam to look up the underlying database record on Unix, but will get the same result as using $HOME on any POSIX compliant system. On Windows, Tcl just accesses $HOME, falling back to other environment variables if $HOME is not set. Git for Windows has $HOME defined by MSYS, so this works just as on the others. As $env(HOME) works in Tcl 8 and 9, while anything using [file tildeexpand ... ] will not, let's use the simpler approach as doing so adds no lines of code. Signed-off-by: Mark Levedahl --- gitk | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gitk b/gitk index cc6f7201632839..d9812f2e9c1765 100755 --- a/gitk +++ b/gitk @@ -12469,14 +12469,14 @@ catch { set config_file_tmp [file join $env(XDG_CONFIG_HOME) git gitk-tmp] } else { # default XDG_CONFIG_HOME - set config_file "~/.config/git/gitk" - set config_file_tmp "~/.config/git/gitk-tmp" + set config_file "$env(HOME)/.config/git/gitk" + set config_file_tmp "$env(HOME)/.config/git/gitk-tmp" } if {![file exists $config_file]} { # for backward compatibility use the old config file if it exists - if {[file exists "~/.gitk"]} { - set config_file "~/.gitk" - set config_file_tmp "~/.gitk-tmp" + if {[file exists "$env(HOME)/.gitk"]} { + set config_file "$env(HOME)/.gitk" + set config_file_tmp "$env(HOME)/.gitk-tmp" } elseif {![file exists [file dirname $config_file]]} { file mkdir [file dirname $config_file] } From aa1b8d31acbcc7630e1ca2f2bbd27eeb34b00446 Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Fri, 14 Mar 2025 11:45:35 -0400 Subject: [PATCH 08/35] gitk: use -profile tcl8 for file input with Tcl 9 gitk invokes many git commands expecting output in utf-8 encoding, but git accepts extended ascii (code page unknown) as utf-8 without validating, so cannot guarantee valid utf-8 on output. In particular, using any extended ascii code page, of which there are many, has long been acceptable given that everyone on a project is aware of and uses that same code page to view all data. utf-8 accepts only 7-bit ascii characters in single bytes, and any characters outside of that base set require at least two bytes. Tcl is a string based language, and transcodes all input data to an internal unicode format, and to whatever format is requested on output: "pure" binary is recoded using iso8859-1. Tcl8.x silently recodes invalid utf-8 as binary data, so extended ascii characters maintain their binary value on output but may not display correctly. Tcl 8.7 added three profiles to control this behaviour: strict (raises exceptions), replace (replaces each invalid byte with ?), and the default tcl8 maintaining the old behavior. Tcl 9 changes the default profile to strict, meaning any invalid utf-8 raises an exception that gitk does not handle. An example of this in the git repository is commit 7eb93c8965 ("[PATCH] Simplify git script", 2005-09-07). This includes extended ascii characters in the author name and commit message. As a result, gitk + Tcl 9 cannot view the git repository at any point beyond that commit. Note: Tcl 9.0 has a bug, to be fixed in 9.1, where this particular condition results in a memory error causing Tcl to crash [1]. The tcl8 profile used so far has acceptable behavior given gitk's acceptance: this allows gitk to accept extended ascii though it may display incorrectly. Let's continue that behavior by overriding open to use the tcl8 profile on Tcl9 and later: Tcl 8.6 does not understand fconfigure -profile, and Tcl 8.7 maintains the tcl8 profile. [1] Per https://core.tcl-lang.org/tcl/tktview/73bb42fb3f35cd613af6fcea465e35bbfd352216 Signed-off-by: Mark Levedahl --- gitk | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gitk b/gitk index d9812f2e9c1765..342b0aba8d770a 100755 --- a/gitk +++ b/gitk @@ -33,6 +33,19 @@ The version of git found is $git_version." exit 1 } +###################################################################### +## Enable Tcl8 profile in Tcl9, allowing consumption of data that has +## bytes not conforming to the assumed encoding profile. + +if {[package vcompare $::tcl_version 9.0] >= 0} { + rename open _strict_open + proc open args { + set f [_strict_open {*}$args] + chan configure $f -profile tcl8 + return $f + } +} + ###################################################################### ## ## Enabling platform-specific code paths From ac222bc02df9aef49d4a6ee839762c2902961a21 Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Sun, 18 May 2025 10:41:30 -0400 Subject: [PATCH 09/35] gitk: use -profile tcl8 on encoding conversions gitk in the prior commit learned to apply -profile tcl8 to all input data streams, avoiding errors on non-binary data streams whose encoding is not utf-8. But, gitk also consumes binary data streams (generally blobs from commits), and internally decodes this to support various displays. With Tcl9, errors occur in this decoding for the same reasons described in the previous commit: basically, the underlying data was not validated to conform to the given encoding, and this source encoding may not be utf-8. gitk performs this decoding using Tcl's '[encoding convert from' operator. For example, the 7th commit in gitk's history has the extended ascii value 0xA9, so gitk 9a40c50c1e in gitk's repository raises an exception. The error log has: unexpected byte sequence starting at index 11: '\xA9' while executing "encoding convertfrom $diffencoding $line" (procedure "parseblobdiffline" line 135) invoked from within "parseblobdiffline $ids $line" (procedure "getblobdiffline" line 16) invoked from within "getblobdiffline file6 9a40c50c1e05c0658b7a7c68b56d615eb6f170dd" ("eval" body line 1) invoked from within "eval $script" (procedure "dorunq" line 11) invoked from within "dorunq" ("after" script) This problem has a similar fix to the prior issue: we must use the tlc8 profile when converting this data. Do so, again only on Tcl9 as Tcl8.6 does not recognize -profile, and only Tcl 9.0 makes strict the default. Signed-off-by: Mark Levedahl --- gitk | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/gitk b/gitk index 342b0aba8d770a..09c11041e821eb 100755 --- a/gitk +++ b/gitk @@ -44,6 +44,13 @@ if {[package vcompare $::tcl_version 9.0] >= 0} { chan configure $f -profile tcl8 return $f } + proc convertfrom args { + return [encoding convertfrom -profile tcl8 {*}$args] + } +} else { + proc convertfrom args { + return [encoding convertfrom {*}$args] + } } ###################################################################### @@ -7823,7 +7830,7 @@ proc gettreeline {gtf id} { if {[string index $fname 0] eq "\""} { set fname [lindex $fname 0] } - set fname [encoding convertfrom utf-8 $fname] + set fname [convertfrom utf-8 $fname] lappend treefilelist($id) $fname } if {![eof $gtf]} { @@ -8083,7 +8090,7 @@ proc gettreediffline {gdtf ids} { if {[string index $file 0] eq "\""} { set file [lindex $file 0] } - set file [encoding convertfrom utf-8 $file] + set file [convertfrom utf-8 $file] if {$file ne [lindex $treediff end]} { lappend treediff $file lappend sublist $file @@ -8219,7 +8226,7 @@ proc makediffhdr {fname ids} { global ctext curdiffstart treediffs diffencoding global ctext_file_names jump_to_here targetline diffline - set fname [encoding convertfrom utf-8 $fname] + set fname [convertfrom utf-8 $fname] set diffencoding [get_path_encoding $fname] set i [lsearch -exact $treediffs($ids) $fname] if {$i >= 0} { @@ -8281,7 +8288,7 @@ proc parseblobdiffline {ids line} { if {![string compare -length 5 "diff " $line]} { if {![regexp {^diff (--cc|--git) } $line m type]} { - set line [encoding convertfrom utf-8 $line] + set line [convertfrom utf-8 $line] $ctext insert end "$line\n" hunksep continue } @@ -8330,7 +8337,7 @@ proc parseblobdiffline {ids line} { makediffhdr $fname $ids } elseif {![string compare -length 16 "* Unmerged path " $line]} { - set fname [encoding convertfrom utf-8 [string range $line 16 end]] + set fname [convertfrom utf-8 [string range $line 16 end]] $ctext insert end "\n" set curdiffstart [$ctext index "end - 1c"] lappend ctext_file_names $fname @@ -8343,7 +8350,7 @@ proc parseblobdiffline {ids line} { } elseif {![string compare -length 2 "@@" $line]} { regexp {^@@+} $line ats - set line [encoding convertfrom $diffencoding $line] + set line [convertfrom $diffencoding $line] $ctext insert end "$line\n" hunksep if {[regexp { \+(\d+),\d+ @@} $line m nl]} { set diffline $nl @@ -8372,10 +8379,10 @@ proc parseblobdiffline {ids line} { $ctext insert end "$line\n" filesep } } elseif {$currdiffsubmod != "" && ![string compare -length 3 " >" $line]} { - set line [encoding convertfrom $diffencoding $line] + set line [convertfrom $diffencoding $line] $ctext insert end "$line\n" dresult } elseif {$currdiffsubmod != "" && ![string compare -length 3 " <" $line]} { - set line [encoding convertfrom $diffencoding $line] + set line [convertfrom $diffencoding $line] $ctext insert end "$line\n" d0 } elseif {$diffinhdr} { if {![string compare -length 12 "rename from " $line]} { @@ -8383,7 +8390,7 @@ proc parseblobdiffline {ids line} { if {[string index $fname 0] eq "\""} { set fname [lindex $fname 0] } - set fname [encoding convertfrom utf-8 $fname] + set fname [convertfrom utf-8 $fname] set i [lsearch -exact $treediffs($ids) $fname] if {$i >= 0} { setinlist difffilestart $i $curdiffstart @@ -8402,12 +8409,12 @@ proc parseblobdiffline {ids line} { set diffinhdr 0 return } - set line [encoding convertfrom utf-8 $line] + set line [convertfrom utf-8 $line] $ctext insert end "$line\n" filesep } else { set line [string map {\x1A ^Z} \ - [encoding convertfrom $diffencoding $line]] + [convertfrom $diffencoding $line]] # parse the prefix - one ' ', '-' or '+' for each parent set prefix [string range $line 0 [expr {$diffnparents - 1}]] set tag [expr {$diffnparents > 1? "m": "d"}] @@ -12279,7 +12286,7 @@ proc cache_gitattr {attr pathlist} { foreach row [split $rlist "\n"] { if {[regexp "(.*): $attr: (.*)" $row m path value]} { if {[string index $path 0] eq "\""} { - set path [encoding convertfrom utf-8 [lindex $path 0]] + set path [convertfrom utf-8 [lindex $path 0]] } set path_attr_cache($attr,$path) $value } From 4e605b7bc06f3a19ca5c80088d16b2827a855c84 Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Thu, 20 Mar 2025 14:16:07 -0400 Subject: [PATCH 10/35] gitk: allow Tcl/Tk 9.0+ Tcl/Tk 9.0 has been released, and has shipped in Fedora 42. Prior patches in this sequence have addressed known incompatibilities, so gitk is now operating with Tcl9. So, let's allow Tcl9. Signed-off-by: Mark Levedahl --- gitk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitk b/gitk index 09c11041e821eb..3752a2c1dceedb 100755 --- a/gitk +++ b/gitk @@ -7,7 +7,7 @@ exec wish "$0" -- "$@" # and distributed under the terms of the GNU General Public Licence, # either version 2, or (at your option) any later version. -if {[catch {package require Tcl 8.6-8.8} err]} { +if {[catch {package require Tcl 8.6-} err]} { catch {wm withdraw .} tk_messageBox \ -icon error \ From b76a5a854bfae6542eec333365b218c5bc0fdf5b Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Sun, 13 Apr 2025 14:15:08 -0400 Subject: [PATCH 11/35] git-gui: do not add directories to PATH on Windows git-gui on Windows prepends three directories to PATH so does not honor PATH as configured. This can have undesirable consequences, for instance by preventing use of a different git for testing. This also provides at best a subset of the configuration included with Git for Windows (g4w), so is neither necessary nor sufficient there. Since commit be700fe3, git-gui.sh adds its directory to the front of PATH: this is essentially adding $(git --execdir) to the path, this is long deprecated as git moved to using "dashless" subcommands. The windows/git-gui.sh wrapper file, since commit 99fe594d, adds two directories relative to its installed location to PATH, and does so without checking that either exists or is needed. The above modifications were made before the Git For Windows project took responsibility for distributing a working solution on Windows. g4w assures a correct configuration on Windows without these, and doing so requires more than the above modifications. See [1] for a more thorough treatment. git-gui does not modify PATH on any platform except on Windows, and doing so is not needed by g4w. Let's stop modifying PATH on Windows as well. [1] https://gitforwindows.org/git-wrapper.html Signed-off-by: Mark Levedahl --- git-gui.sh | 6 ------ windows/git-gui.sh | 12 ++---------- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/git-gui.sh b/git-gui.sh index c77c05edde3b54..8d97817908502e 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -87,12 +87,6 @@ if {[is_Windows]} { set _search_exe {} } -if {[is_Windows]} { - set gitguidir [file dirname [info script]] - regsub -all ";" $gitguidir "\\;" gitguidir - set env(PATH) "$gitguidir;$env(PATH)" -} - set _search_path {} set _path_seen [dict create] foreach p [split $env(PATH) $_path_sep] { diff --git a/windows/git-gui.sh b/windows/git-gui.sh index b1845c505500a0..38debe376c2a8f 100755 --- a/windows/git-gui.sh +++ b/windows/git-gui.sh @@ -13,13 +13,5 @@ if { $argc >=2 && [lindex $argv 0] == "--working-dir" } { incr argc -2 } -set basedir [file dirname \ - [file dirname \ - [file dirname [info script]]]] -set bindir [file join $basedir bin] -set bindir "$bindir;[file join $basedir mingw bin]" -regsub -all ";" $bindir "\\;" bindir -set env(PATH) "$bindir;$env(PATH)" -unset bindir - -source [file join [file dirname [info script]] git-gui.tcl] +set thisdir [file normalize [file dirname [info script]]] +source [file join $thisdir git-gui.tcl] From e80065ecd700334fbc9f1de31320b83a894cfa06 Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Tue, 20 May 2025 10:08:44 -0400 Subject: [PATCH 12/35] git-gui: let nice work on Windows git-gui runs blame and diff commands with nice by default. On Unix, nice is accepted if found and it will run git. Commit ff9db6c79d ("On Windows, avoid git-gui to call Cygwin's nice utility", 2010-10-05) rejects nice if not collocated with git. In Git for Windows' (g4w) POSIX path name space, nice and git are found in different directories: $ which git /mingw64/bin/git $ which nice /usr/bin/nice Thus, git-gui will not use nice in the supported Windows configuration. Commit ff9db6c79d justifies the collocation requirement as avoiding problems in a mixed MSYS and Cygwin configuration: such configurations are not supported by either project as they are known to cause many problems. So, let's revert ff9db6c79d and let git-gui work correctly in the supported configuration. Signed-off-by: Mark Levedahl --- git-gui.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/git-gui.sh b/git-gui.sh index 8d97817908502e..2b5b596400085b 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -638,8 +638,6 @@ proc _lappend_nice {cmd_var} { set _nice [_which nice] if {[catch {safe_exec [list $_nice git version]}]} { set _nice {} - } elseif {[is_Windows] && [file dirname $_nice] ne [file dirname $::_git]} { - set _nice {} } } if {$_nice ne {}} { From 3c8e1fe0eaaa976aace243680b825099f687a9bd Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Sun, 13 Apr 2025 14:31:52 -0400 Subject: [PATCH 13/35] git-gui: Windows tk_getSaveFile is not useful for shortcuts git-gui invokes the tk_getSaveFile dialog to determine the full path-name of the shortcut file to create. But, on Windows, this dialog always dereferences a shortcut (.lnk) file, as this is essentially a soft-link to its target. If the shortcut file already exists, the dialog returns the path-name of the target (i.e., GIT/cmd/git-gui.exe), and not the desired shortcut file selected by the user. There is no Windows file chooser available in Tcl/Tk that does not dereference .lnk files, so this patch avoids using a dialog: the shortcut to be created is on the desktop and named as "Git + Repository Name". If this .lnk file already exists, the user must give permission to overwrite it or the process terminates. Signed-off-by: Mark Levedahl --- lib/shortcut.tcl | 49 +++++++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/lib/shortcut.tcl b/lib/shortcut.tcl index 1d01d9cbfab0ba..feaccbdd1d58a4 100644 --- a/lib/shortcut.tcl +++ b/lib/shortcut.tcl @@ -3,27 +3,38 @@ proc do_windows_shortcut {} { global _gitworktree - set fn [tk_getSaveFile \ - -parent . \ - -title [mc "%s (%s): Create Desktop Icon" [appname] [reponame]] \ - -initialfile "Git [reponame].lnk"] - if {$fn != {}} { - if {[file extension $fn] ne {.lnk}} { - set fn ${fn}.lnk - } - # Use git-gui.exe if available (ie: git-for-windows) - set cmdLine [list [_which git-gui]] - if {$cmdLine eq {}} { - set cmdLine [list [info nameofexecutable] \ - [file normalize $::argv0]] - } - if {[catch { - win32_create_lnk $fn $cmdLine \ - [file normalize $_gitworktree] - } err]} { - error_popup [strcat [mc "Cannot write shortcut:"] "\n\n$err"] + + set desktop [safe_exec [list cygpath -mD]] + set link_file "Git [reponame].lnk" + set link_path [file normalize [file join $desktop $link_file]] + + # on Windows, tk_getSaveFile dereferences .lnk files, so no simple + # filename chooser is available. Use the default or quit. + if {[file exists $link_path]} { + set answer [tk_messageBox \ + -type yesno \ + -title [mc "%s (%s): Create Desktop Icon" [appname] [reponame]] \ + -default yes \ + -message [mc "Replace existing shortcut: %s?" $link_file]] + if {$answer == no} { + return } } + + # Use git-gui.exe if found, fall back to wish + launcher + set link_arguments {} + set link_target [_which git-gui] + if {![file executable $link_target]} { + set link_target [file normalize [info nameofexecutable]] + set link_arguments [file normalize $::argv0] + } + set cmdLine [list $link_target $link_arguments] + if {[catch { + win32_create_lnk $link_path $cmdLine \ + [file normalize $_gitworktree] + } err]} { + error_popup [strcat [mc "Cannot write shortcut:"] "\n\n$err"] + } } proc do_cygwin_shortcut {} { From 158800ac9c792b875b2cd138a1ecbfb14fa6a71a Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Sun, 13 Apr 2025 14:45:04 -0400 Subject: [PATCH 14/35] git-gui: use /cmd/git-gui.exe for shortcut git-gui on Windows creates a shortcut that presumes the git-gui script will run on the basic Windows environment as configured. But, Git for Windows uses wrapper scripts to launch executables, assuring the environment is correct (see [1] for details). The launcher for git-gui is /cmd/git-gui.exe, is not on PATH, and is not detected or used by the current shortcut code. Let's look for this before trying the existing approaches. [1] https://gitforwindows.org/git-wrapper.html Signed-off-by: Mark Levedahl --- lib/shortcut.tcl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/shortcut.tcl b/lib/shortcut.tcl index feaccbdd1d58a4..431665059e710c 100644 --- a/lib/shortcut.tcl +++ b/lib/shortcut.tcl @@ -23,7 +23,10 @@ proc do_windows_shortcut {} { # Use git-gui.exe if found, fall back to wish + launcher set link_arguments {} - set link_target [_which git-gui] + set link_target [safe_exec [list cygpath -m /cmd/git-gui.exe]] + if {![file executable $link_target]} { + set link_target [_which git-gui] + } if {![file executable $link_target]} { set link_target [file normalize [info nameofexecutable]] set link_arguments [file normalize $::argv0] From 847c8a2ec4e9504fd112be263c261f2ea2690444 Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Wed, 21 May 2025 17:38:10 -0400 Subject: [PATCH 15/35] git-gui: assure -eofchar {} on all channels Per 6eb420ef61 ("git-gui: Always disable the Tcl EOF character when reading", 2007-07-17), git-gui should disable Tcl's EOF character detection on all files when on Windows: the default is disabled on all other platforms (and with Tcl 9.0, is disabled on Windows too). This EOF character is for compatibility with files / applications written for file systems that know only the disc sectors allocated, and not the number of bytes used. This has nothing to do with git. But, git-gui does not set -eofchar {} on all channels. To avoid any further leakage, let's just add this to the Windows specific override of open. This override is needed only as long as Tcl 8.x is in use (Tcl 9.0 makes -eofchar {} default on all platforms). Signed-off-by: Mark Levedahl --- git-gui.sh | 8 ++++---- lib/blame.tcl | 1 - lib/checkout_op.tcl | 2 +- lib/commit.tcl | 6 +++--- lib/diff.tcl | 1 - lib/spellcheck.tcl | 1 - 6 files changed, 8 insertions(+), 11 deletions(-) diff --git a/git-gui.sh b/git-gui.sh index 8bb121db4f5f8c..e9c2650bcf756f 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -183,7 +183,9 @@ if {[is_Windows]} { set command_line [string trim [string range $arg0 1 end]] lset args 0 "| [sanitize_command_line $command_line 0]" } - uplevel 1 real_open $args + set fd [real_open {*}$args] + fconfigure $fd -eofchar {} + return $fd } } else { @@ -607,7 +609,6 @@ proc safe_open_command {cmd {redir {}}} { } err]} { error $err } - fconfigure $fd -eofchar {} return $fd } @@ -1427,7 +1428,6 @@ proc load_message {file {encoding {}}} { if {[catch {set fd [safe_open_file $f r]}]} { return 0 } - fconfigure $fd -eofchar {} if {$encoding ne {}} { fconfigure $fd -encoding $encoding } @@ -1484,7 +1484,7 @@ proc run_prepare_commit_msg_hook {} { ui_status [mc "Calling prepare-commit-msg hook..."] set pch_error {} - fconfigure $fd_ph -blocking 0 -translation binary -eofchar {} + fconfigure $fd_ph -blocking 0 -translation binary fileevent $fd_ph readable \ [list prepare_commit_msg_hook_wait $fd_ph] diff --git a/lib/blame.tcl b/lib/blame.tcl index 9d4d1ac8723d36..63a59fdbb348ca 100644 --- a/lib/blame.tcl +++ b/lib/blame.tcl @@ -483,7 +483,6 @@ method _load {jump} { } else { set fd [safe_open_file $path r] } - fconfigure $fd -eofchar {} } else { if {$do_textconv ne 0} { set fd [git_read [list cat-file --textconv "$commit:$path"]] diff --git a/lib/checkout_op.tcl b/lib/checkout_op.tcl index 987486a4b6024b..449e89e2bc0c0e 100644 --- a/lib/checkout_op.tcl +++ b/lib/checkout_op.tcl @@ -462,7 +462,7 @@ If you wanted to be on a branch, create one now starting from 'This Detached Che if {$fd_ph ne {}} { global pch_error set pch_error {} - fconfigure $fd_ph -blocking 0 -translation binary -eofchar {} + fconfigure $fd_ph -blocking 0 -translation binary fileevent $fd_ph readable [cb _postcheckout_wait $fd_ph] } else { _update_repo_state $this diff --git a/lib/commit.tcl b/lib/commit.tcl index 2fd57a51fb085a..d6313e568b2bad 100644 --- a/lib/commit.tcl +++ b/lib/commit.tcl @@ -252,7 +252,7 @@ A good commit message has the following format: ui_status [mc "Calling pre-commit hook..."] set pch_error {} - fconfigure $fd_ph -blocking 0 -translation binary -eofchar {} + fconfigure $fd_ph -blocking 0 -translation binary fileevent $fd_ph readable \ [list commit_prehook_wait $fd_ph $curHEAD $msg_p] } @@ -307,7 +307,7 @@ Do you really want to proceed with your Commit?"] ui_status [mc "Calling commit-msg hook..."] set pch_error {} - fconfigure $fd_ph -blocking 0 -translation binary -eofchar {} + fconfigure $fd_ph -blocking 0 -translation binary fileevent $fd_ph readable \ [list commit_commitmsg_wait $fd_ph $curHEAD $msg_p] } @@ -460,7 +460,7 @@ A rescan will be automatically started now. if {$fd_ph ne {}} { global pch_error set pch_error {} - fconfigure $fd_ph -blocking 0 -translation binary -eofchar {} + fconfigure $fd_ph -blocking 0 -translation binary fileevent $fd_ph readable \ [list commit_postcommit_wait $fd_ph $cmt_id] } diff --git a/lib/diff.tcl b/lib/diff.tcl index 1acd37bdb4c6e8..65d0997b79b555 100644 --- a/lib/diff.tcl +++ b/lib/diff.tcl @@ -191,7 +191,6 @@ proc show_other_diff {path w m cont_info} { file { set fd [safe_open_file $path r] fconfigure $fd \ - -eofchar {} \ -encoding [get_path_encoding $path] set content [read $fd $max_sz] close $fd diff --git a/lib/spellcheck.tcl b/lib/spellcheck.tcl index 538d61c792defa..634656820dc526 100644 --- a/lib/spellcheck.tcl +++ b/lib/spellcheck.tcl @@ -33,7 +33,6 @@ constructor init {pipe_fd ui_text ui_menu} { method _connect {pipe_fd} { fconfigure $pipe_fd \ -encoding utf-8 \ - -eofchar {} \ -translation lf if {[gets $pipe_fd s_version] <= 0} { From f6d3ee2014e4a553ef6b783dc5d6b2d53ee70168 Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Thu, 22 May 2025 13:17:08 -0400 Subject: [PATCH 16/35] git-gui: translation binary defines iso8859-1 git-gui has many cases where -translation binary and -encoding binary are configured on the same channel. But, -translation binary defines a binary channel, which sets up -encoding iso8859-1 as part of its work. Tcl 8.x defines -encoding binary as an alias of -encoding iso8859-1, and this alias is deleted in Tcl 9.0. Let's delete the redundant encoding definition now. Signed-off-by: Mark Levedahl --- git-gui.sh | 6 +++--- lib/blame.tcl | 1 - lib/index.tcl | 3 --- lib/mergetool.tcl | 4 ++-- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/git-gui.sh b/git-gui.sh index e9c2650bcf756f..07781e7d908f80 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -1406,15 +1406,15 @@ proc rescan_stage2 {fd after} { set fd_di [git_read [list diff-index --cached --ignore-submodules=dirty -z [PARENT]]] set fd_df [git_read [list diff-files -z]] - fconfigure $fd_di -blocking 0 -translation binary -encoding binary - fconfigure $fd_df -blocking 0 -translation binary -encoding binary + fconfigure $fd_di -blocking 0 -translation binary + fconfigure $fd_df -blocking 0 -translation binary fileevent $fd_di readable [list read_diff_index $fd_di $after] fileevent $fd_df readable [list read_diff_files $fd_df $after] if {[is_config_true gui.displayuntracked]} { set fd_lo [git_read [concat ls-files --others -z $ls_others]] - fconfigure $fd_lo -blocking 0 -translation binary -encoding binary + fconfigure $fd_lo -blocking 0 -translation binary fileevent $fd_lo readable [list read_ls_others $fd_lo $after] incr rescan_active } diff --git a/lib/blame.tcl b/lib/blame.tcl index 63a59fdbb348ca..e51a820b128499 100644 --- a/lib/blame.tcl +++ b/lib/blame.tcl @@ -1142,7 +1142,6 @@ method _blameparent {} { fconfigure $fd \ -blocking 0 \ - -encoding binary \ -translation binary fileevent $fd readable [cb _read_diff_load_commit \ $fd $cparent $new_path $r_orig_line] diff --git a/lib/index.tcl b/lib/index.tcl index 377547034b7d49..7aa09c7728267e 100644 --- a/lib/index.tcl +++ b/lib/index.tcl @@ -78,7 +78,6 @@ proc update_indexinfo {msg path_list after} { -blocking 0 \ -buffering full \ -buffersize 512 \ - -encoding binary \ -translation binary fileevent $fd writable [list \ write_update_indexinfo \ @@ -147,7 +146,6 @@ proc update_index {msg path_list after} { -blocking 0 \ -buffering full \ -buffersize 512 \ - -encoding binary \ -translation binary fileevent $fd writable [list \ write_update_index \ @@ -227,7 +225,6 @@ proc checkout_index {msg path_list after capture_error} { -blocking 0 \ -buffering full \ -buffersize 512 \ - -encoding binary \ -translation binary fileevent $fd writable [list \ write_checkout_index \ diff --git a/lib/mergetool.tcl b/lib/mergetool.tcl index 2c9bb3af403fe4..44be4ed3ffa597 100644 --- a/lib/mergetool.tcl +++ b/lib/mergetool.tcl @@ -90,7 +90,7 @@ proc merge_load_stages {path cont} { set merge_stages_fd [git_read [list ls-files -u -z -- $path]] - fconfigure $merge_stages_fd -blocking 0 -translation binary -encoding binary + fconfigure $merge_stages_fd -blocking 0 -translation binary fileevent $merge_stages_fd readable [list read_merge_stages $merge_stages_fd $cont] } @@ -370,7 +370,7 @@ proc merge_tool_start {cmdline target backup stages} { ui_status [mc "Running merge tool..."] - fconfigure $mtool_fd -blocking 0 -translation binary -encoding binary + fconfigure $mtool_fd -blocking 0 -translation binary fileevent $mtool_fd readable [list read_mtool_output $mtool_fd] } From 40f54f670a01b6ae4f13e0888796948ddce9104c Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Thu, 22 May 2025 13:33:00 -0400 Subject: [PATCH 17/35] git-gui: replace encoding binary with iso8859-1 git-gui currently configures some channels as '-encoding binary' when the channel is not really binary (e.g, the channel is consumed as lines of text). In 8.6, '-encoding binary' is an alias for '-encoding iso8859), but TIP 699 removes this alias for Tcl 9.0. Let's switch to '-encoding iso8859-1' to be compatible across Tcl versions. Signed-off-by: Mark Levedahl --- lib/blame.tcl | 2 +- lib/commit.tcl | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/blame.tcl b/lib/blame.tcl index e51a820b128499..bb67b047eb5583 100644 --- a/lib/blame.tcl +++ b/lib/blame.tcl @@ -985,7 +985,7 @@ method _showcommit {cur_w lno} { set msg {} catch { set fd [git_read [list cat-file commit $cmit]] - fconfigure $fd -encoding binary -translation lf + fconfigure $fd -encoding iso8859-1 -translation lf # By default commits are assumed to be in utf-8 set enc utf-8 while {[gets $fd line] > 0} { diff --git a/lib/commit.tcl b/lib/commit.tcl index d6313e568b2bad..adde7080847c1d 100644 --- a/lib/commit.tcl +++ b/lib/commit.tcl @@ -28,7 +28,7 @@ You are currently in the middle of a merge that has not been fully completed. Y set name "" set email "" set fd [git_read [list cat-file commit $curHEAD]] - fconfigure $fd -encoding binary -translation lf + fconfigure $fd -encoding iso8859-1 -translation lf # By default commits are assumed to be in utf-8 set enc utf-8 while {[gets $fd line] > 0} { @@ -361,7 +361,7 @@ proc commit_committree {fd_wt curHEAD msg_p} { # if {$commit_type eq {normal}} { set fd_ot [git_read [list cat-file commit $PARENT]] - fconfigure $fd_ot -encoding binary -translation lf + fconfigure $fd_ot -encoding iso8859-1 -translation lf set old_tree [gets $fd_ot] close $fd_ot From 07714e220b7ee137f4645ec950383eaaeddf23d5 Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Wed, 21 May 2025 19:18:46 -0400 Subject: [PATCH 18/35] git-gui: do not mix -translation binary and -encoding git-gui has many instances of '-translation binary' and '-encoding $SOMETHING' on the same channel. As eofchar is always null given a prior commit, the net effect of having '-translation binary' in such configuration is only to change how text line endings are handled. For cases where the channel is opened to be consumed via gets, the eol translation is irrelevant because Tcl's gets is documented to recognize any of \n, \r, and \r\n as a line ending. So, keep only the '-encoding $SOMETHING' configuration in these cases, making the configuration more clear. Signed-off-by: Mark Levedahl --- git-gui.sh | 4 ++-- lib/branch.tcl | 4 ++-- lib/browser.tcl | 2 +- lib/choose_rev.tcl | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/git-gui.sh b/git-gui.sh index 07781e7d908f80..63c2f48f91ac12 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -592,7 +592,7 @@ proc git {args} { proc git_redir {cmd redir} { set fd [git_read $cmd $redir] - fconfigure $fd -translation binary -encoding utf-8 + fconfigure $fd -encoding utf-8 set result [string trimright [read $fd] "\n"] close $fd if {$::_trace} { @@ -1004,7 +1004,7 @@ proc _parse_config {arr_name args} { [concat config \ $args \ --null --list]] - fconfigure $fd_rc -translation binary -encoding utf-8 + fconfigure $fd_rc -encoding utf-8 set buf [read $fd_rc] close $fd_rc } diff --git a/lib/branch.tcl b/lib/branch.tcl index 39e0f2dc9864e0..97c9ec1c00f741 100644 --- a/lib/branch.tcl +++ b/lib/branch.tcl @@ -8,7 +8,7 @@ proc load_all_heads {} { set rh_len [expr {[string length $rh] + 1}] set all_heads [list] set fd [git_read [list for-each-ref --format=%(refname) $rh]] - fconfigure $fd -translation binary -encoding utf-8 + fconfigure $fd -encoding utf-8 while {[gets $fd line] > 0} { if {!$some_heads_tracking || ![is_tracking_branch $line]} { lappend all_heads [string range $line $rh_len end] @@ -25,7 +25,7 @@ proc load_all_tags {} { --sort=-taggerdate \ --format=%(refname) \ refs/tags]] - fconfigure $fd -translation binary -encoding utf-8 + fconfigure $fd -encoding utf-8 while {[gets $fd line] > 0} { if {![regsub ^refs/tags/ $line {} name]} continue lappend all_tags $name diff --git a/lib/browser.tcl b/lib/browser.tcl index f53eb952cf3ff4..fe72de025e65da 100644 --- a/lib/browser.tcl +++ b/lib/browser.tcl @@ -195,7 +195,7 @@ method _ls {tree_id {name {}}} { $w conf -state disabled set fd [git_read [list ls-tree -z $tree_id]] - fconfigure $fd -blocking 0 -translation binary -encoding utf-8 + fconfigure $fd -blocking 0 -encoding utf-8 fileevent $fd readable [cb _read $fd] } diff --git a/lib/choose_rev.tcl b/lib/choose_rev.tcl index 7a9e3c83bb9069..4cf6cebac433b1 100644 --- a/lib/choose_rev.tcl +++ b/lib/choose_rev.tcl @@ -570,7 +570,7 @@ method _reflog_last {name} { set last {} if {[catch {set last [file mtime [gitdir $name]]}] && ![catch {set g [safe_open_file [gitdir logs $name] r]}]} { - fconfigure $g -translation binary + fconfigure $g -encoding iso8859-1 while {[gets $g line] >= 0} { if {[regexp {> ([1-9][0-9]*) } $line line when]} { set last $when From 74d9e38a0d5fbbffde1304c3f6d7cbca7022eab3 Mon Sep 17 00:00:00 2001 From: Alexander Shopov Date: Mon, 28 Jul 2025 14:06:26 +0200 Subject: [PATCH 19/35] gitk i18n: Update Bulgarian translation (322t) Signed-off-by: Alexander Shopov --- po/bg.po | 700 +++++++++++++++++++++++++++---------------------------- 1 file changed, 338 insertions(+), 362 deletions(-) diff --git a/po/bg.po b/po/bg.po index 773a04983116aa..0c67bc312f681a 100644 --- a/po/bg.po +++ b/po/bg.po @@ -1,15 +1,15 @@ # Bulgarian translation of gitk po-file. -# Copyright (C) 2014, 2015, 2019, 2020, 2024 Alexander Shopov . +# Copyright (C) 2014, 2015, 2019, 2020, 2024, 2025 Alexander Shopov . # This file is distributed under the same license as the git package. -# Alexander Shopov , 2014, 2015, 2019, 2020, 2024. +# Alexander Shopov , 2014, 2015, 2019, 2020, 2024, 2025. # # msgid "" msgstr "" "Project-Id-Version: gitk master\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-24 11:01+0100\n" -"PO-Revision-Date: 2024-12-24 11:05+0100\n" +"POT-Creation-Date: 2025-07-22 18:34+0200\n" +"PO-Revision-Date: 2025-07-28 13:38+0200\n" "Last-Translator: Alexander Shopov \n" "Language-Team: Bulgarian \n" "Language: bg\n" @@ -18,32 +18,32 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: gitk:139 +#: gitk:352 msgid "Couldn't get list of unmerged files:" msgstr "Списъкът с неслети файлове не може да се получи:" -#: gitk:211 gitk:2430 +#: gitk:423 gitk:2617 msgid "Color words" msgstr "Оцветяване на думите" -#: gitk:216 gitk:2430 gitk:8335 gitk:8368 +#: gitk:426 gitk:2617 gitk:8426 gitk:8459 msgid "Markup words" msgstr "Отбелязване на думите" -#: gitk:323 +#: gitk:533 msgid "Error parsing revisions:" msgstr "Грешка при анализ на версиите:" -#: gitk:389 +#: gitk:588 msgid "Error executing --argscmd command:" msgstr "Грешка при изпълнение на командата с „--argscmd“." -#: gitk:402 +#: gitk:601 msgid "No files selected: --merge specified but no files are unmerged." msgstr "" "Не са избрани файлове — указана е опцията „--merge“, но няма неслети файлове." -#: gitk:405 +#: gitk:604 msgid "" "No files selected: --merge specified but no unmerged files are within file " "limit." @@ -51,326 +51,330 @@ msgstr "" "Не са избрани файлове — указана е опцията „--merge“, но няма неслети файлове " "в ограниченията." -#: gitk:430 gitk:585 +#: gitk:628 gitk:781 msgid "Error executing git log:" msgstr "Грешка при изпълнение на „git log“:" -#: gitk:448 gitk:601 +#: gitk:646 gitk:797 msgid "Reading" msgstr "Прочитане" -#: gitk:508 gitk:4596 +#: gitk:706 gitk:4702 msgid "Reading commits..." msgstr "Прочитане на подаванията…" -#: gitk:511 gitk:1660 gitk:4599 +#: gitk:709 gitk:1857 gitk:4705 msgid "No commits selected" msgstr "Не са избрани подавания" -#: gitk:1468 gitk:4116 gitk:12738 +#: gitk:1665 gitk:4222 gitk:12787 msgid "Command line" msgstr "Команден ред" -#: gitk:1534 +#: gitk:1731 msgid "Can't parse git log output:" msgstr "Изходът от „git log“ не може да се анализира:" -#: gitk:1763 +#: gitk:1960 msgid "No commit information available" msgstr "Липсва информация за подавания" -#: gitk:1930 gitk:1959 gitk:4386 gitk:9875 gitk:11485 gitk:11805 +#: gitk:2126 gitk:2155 gitk:4492 gitk:9967 gitk:11820 msgid "OK" msgstr "Добре" -#: gitk:1961 gitk:4388 gitk:9311 gitk:9390 gitk:9520 gitk:9606 gitk:9877 -#: gitk:11486 gitk:11806 +#: gitk:2157 gitk:4494 gitk:9403 gitk:9480 gitk:9612 gitk:9698 gitk:9969 +#: gitk:11821 msgid "Cancel" msgstr "Отказ" -#: gitk:2114 +#: gitk:2336 msgid "&Update" msgstr "&Обновяване" -#: gitk:2115 +#: gitk:2337 msgid "&Reload" msgstr "&Презареждане" -#: gitk:2116 +#: gitk:2338 msgid "Reread re&ferences" msgstr "Прочитане &наново" -#: gitk:2117 +#: gitk:2339 msgid "&List references" msgstr "&Изброяване на указателите" -#: gitk:2119 +#: gitk:2341 msgid "Start git &gui" msgstr "&Стартиране на „git gui“" -#: gitk:2121 +#: gitk:2343 msgid "&Quit" msgstr "&Спиране на програмата" -#: gitk:2113 +#: gitk:2335 msgid "&File" msgstr "&Файл" -#: gitk:2125 +#: gitk:2347 msgid "&Preferences" msgstr "&Настройки" -#: gitk:2124 +#: gitk:2346 msgid "&Edit" msgstr "&Редактиране" -#: gitk:2129 +#: gitk:2351 msgid "&New view..." msgstr "&Нов изглед…" -#: gitk:2130 +#: gitk:2352 msgid "&Edit view..." msgstr "&Редактиране на изгледа…" -#: gitk:2131 +#: gitk:2353 msgid "&Delete view" msgstr "&Изтриване на изгледа" -#: gitk:2133 +#: gitk:2355 msgid "&All files" msgstr "&Всички файлове" -#: gitk:2128 +#: gitk:2350 msgid "&View" msgstr "&Изглед" -#: gitk:2138 gitk:2148 +#: gitk:2360 gitk:2370 msgid "&About gitk" msgstr "&Относно gitk" -#: gitk:2139 gitk:2153 +#: gitk:2361 gitk:2375 msgid "&Key bindings" msgstr "&Клавишни комбинации" -#: gitk:2137 gitk:2152 +#: gitk:2359 gitk:2374 msgid "&Help" msgstr "Помо&щ" -#: gitk:2230 gitk:8767 +#: gitk:2442 gitk:8859 msgid "Commit ID:" msgstr "Подаване:" -#: gitk:2274 +#: gitk:2478 msgid "Row" msgstr "Ред" -#: gitk:2312 +#: gitk:2504 msgid "Find" msgstr "Търсене" -#: gitk:2340 +#: gitk:2532 msgid "commit" msgstr "подаване" -#: gitk:2344 gitk:2346 gitk:4758 gitk:4781 gitk:4805 gitk:6826 gitk:6898 -#: gitk:6983 +#: gitk:2536 gitk:2538 gitk:4864 gitk:4887 gitk:4911 gitk:6925 gitk:6997 +#: gitk:7082 msgid "containing:" msgstr "съдържащо:" -#: gitk:2347 gitk:3597 gitk:3602 gitk:4834 +#: gitk:2539 gitk:3704 gitk:3709 gitk:4940 msgid "touching paths:" msgstr "в пътищата:" -#: gitk:2348 gitk:4848 +#: gitk:2540 gitk:4954 msgid "adding/removing string:" msgstr "добавящо/премахващо низ" -#: gitk:2349 gitk:4850 +#: gitk:2541 gitk:4956 msgid "changing lines matching:" msgstr "променящо редове напасващи:" -#: gitk:2358 gitk:2360 gitk:4837 +#: gitk:2550 gitk:2552 gitk:4943 msgid "Exact" msgstr "Точно" -#: gitk:2360 gitk:4925 gitk:6794 +#: gitk:2552 gitk:5031 gitk:6893 msgid "IgnCase" msgstr "Без регистър" -#: gitk:2360 gitk:4807 gitk:4923 gitk:6790 +#: gitk:2552 gitk:4913 gitk:5029 gitk:6889 msgid "Regexp" msgstr "Рег. израз" -#: gitk:2362 gitk:2363 gitk:4945 gitk:4975 gitk:4982 gitk:6919 gitk:6987 +#: gitk:2554 gitk:2555 gitk:5051 gitk:5081 gitk:5088 gitk:7018 gitk:7086 msgid "All fields" msgstr "Всички полета" -#: gitk:2363 gitk:4942 gitk:4975 gitk:6857 +#: gitk:2555 gitk:5048 gitk:5081 gitk:6956 msgid "Headline" msgstr "Първи ред" -#: gitk:2364 gitk:4942 gitk:6857 gitk:6987 gitk:7499 +#: gitk:2556 gitk:5048 gitk:6956 gitk:7086 gitk:7600 msgid "Comments" msgstr "Коментари" -#: gitk:2364 gitk:4942 gitk:4947 gitk:4982 gitk:6857 gitk:7434 gitk:8945 -#: gitk:8960 +#: gitk:2556 gitk:5048 gitk:5053 gitk:5088 gitk:6956 gitk:7535 gitk:9038 +#: gitk:9053 msgid "Author" msgstr "Автор" -#: gitk:2364 gitk:4942 gitk:6857 gitk:7436 +#: gitk:2556 gitk:5048 gitk:6956 gitk:7537 msgid "Committer" msgstr "Подаващ" -#: gitk:2398 +#: gitk:2586 msgid "Search" msgstr "Търсене" -#: gitk:2406 +#: gitk:2594 msgid "Diff" msgstr "Разлики" -#: gitk:2408 +#: gitk:2596 msgid "Old version" msgstr "Стара версия" -#: gitk:2410 +#: gitk:2598 msgid "New version" msgstr "Нова версия" -#: gitk:2413 +#: gitk:2601 msgid "Lines of context" msgstr "Контекст в редове" -#: gitk:2423 +#: gitk:2611 msgid "Ignore space change" msgstr "Празните знаци без значение" -#: gitk:2427 gitk:2429 gitk:8069 gitk:8321 +#: gitk:2615 gitk:2616 gitk:8159 gitk:8412 msgid "Line diff" msgstr "Поредови разлики" -#: gitk:2502 +#: gitk:2683 msgid "Patch" msgstr "Кръпка" -#: gitk:2504 +#: gitk:2685 msgid "Tree" msgstr "Дърво" -#: gitk:2674 gitk:2695 +#: gitk:2760 +msgid "Unknown windowing system, cannot bind mouse" +msgstr "Непозната графична система, не може да се установи връзка с мишка" + +#: gitk:2842 gitk:2863 msgid "Diff this -> selected" msgstr "Разлики между това и избраното" -#: gitk:2675 gitk:2696 +#: gitk:2843 gitk:2864 msgid "Diff selected -> this" msgstr "Разлики между избраното и това" -#: gitk:2676 gitk:2697 +#: gitk:2844 gitk:2865 msgid "Make patch" msgstr "Създаване на кръпка" -#: gitk:2677 gitk:9369 +#: gitk:2845 gitk:9459 msgid "Create tag" msgstr "Създаване на етикет" -#: gitk:2678 +#: gitk:2846 msgid "Copy commit reference" msgstr "Копиране на указателя на подаване" -#: gitk:2679 gitk:9500 +#: gitk:2847 gitk:9592 msgid "Write commit to file" msgstr "Запазване на подаването във файл" -#: gitk:2680 +#: gitk:2848 msgid "Create new branch" msgstr "Създаване на нов клон" -#: gitk:2681 +#: gitk:2849 msgid "Cherry-pick this commit" msgstr "Отбиране на това подаване" -#: gitk:2682 +#: gitk:2850 msgid "Reset HEAD branch to here" msgstr "Привеждане на върха на клона към текущото подаване" -#: gitk:2683 +#: gitk:2851 msgid "Mark this commit" msgstr "Отбелязване на това подаване" -#: gitk:2684 +#: gitk:2852 msgid "Return to mark" msgstr "Връщане към отбелязаното подаване" -#: gitk:2685 +#: gitk:2853 msgid "Find descendant of this and mark" msgstr "Откриване и отбелязване на наследниците" -#: gitk:2686 +#: gitk:2854 msgid "Compare with marked commit" msgstr "Сравнение с отбелязаното подаване" -#: gitk:2687 gitk:2698 +#: gitk:2855 gitk:2866 msgid "Diff this -> marked commit" msgstr "Разлики между това и отбелязаното" -#: gitk:2688 gitk:2699 +#: gitk:2856 gitk:2867 msgid "Diff marked commit -> this" msgstr "Разлики между отбелязаното и това" -#: gitk:2689 +#: gitk:2857 msgid "Revert this commit" msgstr "Отмяна на това подаване" -#: gitk:2705 +#: gitk:2873 msgid "Check out this branch" msgstr "Изтегляне на този клон" -#: gitk:2706 +#: gitk:2874 msgid "Rename this branch" msgstr "Преименуване на този клон" -#: gitk:2707 +#: gitk:2875 msgid "Remove this branch" msgstr "Изтриване на този клон" -#: gitk:2708 +#: gitk:2876 msgid "Copy branch name" msgstr "Копиране на името на клона" -#: gitk:2715 +#: gitk:2883 msgid "Highlight this too" msgstr "Отбелязване и на това" -#: gitk:2716 +#: gitk:2884 msgid "Highlight this only" msgstr "Отбелязване само на това" -#: gitk:2717 +#: gitk:2885 msgid "External diff" msgstr "Външна програма за разлики" -#: gitk:2718 +#: gitk:2886 msgid "Blame parent commit" msgstr "Анотиране на родителското подаване" -#: gitk:2719 +#: gitk:2887 msgid "Copy path" msgstr "Копиране на пътя" -#: gitk:2726 +#: gitk:2894 msgid "Show origin of this line" msgstr "Показване на произхода на този ред" -#: gitk:2727 +#: gitk:2895 msgid "Run git gui blame on this line" msgstr "Изпълнение на „git gui blame“ върху този ред" -#: gitk:3081 +#: gitk:3188 msgid "About gitk" msgstr "Относно gitk" -#: gitk:3083 +#: gitk:3190 msgid "" "\n" "Gitk - a commit viewer for git\n" @@ -386,324 +390,324 @@ msgstr "" "\n" "Използвайте и разпространявайте при условията на ОПЛ на ГНУ" -#: gitk:3091 gitk:3158 gitk:10090 +#: gitk:3198 gitk:3265 gitk:10184 msgid "Close" msgstr "Затваряне" -#: gitk:3112 +#: gitk:3219 msgid "Gitk key bindings" msgstr "Клавишни комбинации" -#: gitk:3115 +#: gitk:3222 msgid "Gitk key bindings:" msgstr "Клавишни комбинации:" -#: gitk:3117 +#: gitk:3224 #, tcl-format msgid "<%s-Q>\t\tQuit" msgstr "<%s-Q>\t\tСпиране на програмата" -#: gitk:3118 +#: gitk:3225 #, tcl-format msgid "<%s-W>\t\tClose window" msgstr "<%s-W>\t\tЗатваряне на прозореца" -#: gitk:3119 +#: gitk:3226 msgid "\t\tMove to first commit" msgstr "\t\tКъм първото подаване" -#: gitk:3120 +#: gitk:3227 msgid "\t\tMove to last commit" msgstr "\t\tКъм последното подаване" -#: gitk:3121 +#: gitk:3228 msgid ", p, k\tMove up one commit" msgstr ", p, k\tЕдно подаване нагоре" -#: gitk:3122 +#: gitk:3229 msgid ", n, j\tMove down one commit" msgstr ", n, j\tЕдно подаване надолу" -#: gitk:3123 +#: gitk:3230 msgid ", z, h\tGo back in history list" msgstr ", z, h\tНазад в историята" -#: gitk:3124 +#: gitk:3231 msgid ", x, l\tGo forward in history list" msgstr ", x, l\tНапред в историята" -#: gitk:3125 +#: gitk:3232 #, tcl-format msgid "<%s-n>\tGo to n-th parent of current commit in history list" msgstr "<%s-n>\tКъм n-тия родител на текущото подаване в историята" -#: gitk:3126 +#: gitk:3233 msgid "\tMove up one page in commit list" msgstr "\tСтраница нагоре в списъка с подаванията" -#: gitk:3127 +#: gitk:3234 msgid "\tMove down one page in commit list" msgstr "\tСтраница надолу в списъка с подаванията" -#: gitk:3128 +#: gitk:3235 #, tcl-format msgid "<%s-Home>\tScroll to top of commit list" msgstr "<%s-Home>\tКъм началото на списъка с подаванията" -#: gitk:3129 +#: gitk:3236 #, tcl-format msgid "<%s-End>\tScroll to bottom of commit list" msgstr "<%s-End>\tКъм края на списъка с подаванията" -#: gitk:3130 +#: gitk:3237 #, tcl-format msgid "<%s-Up>\tScroll commit list up one line" msgstr "<%s-Up>\tРед нагоре в списъка с подавания" -#: gitk:3131 +#: gitk:3238 #, tcl-format msgid "<%s-Down>\tScroll commit list down one line" msgstr "<%s-Down>\tРед надолу в списъка с подавания" -#: gitk:3132 +#: gitk:3239 #, tcl-format msgid "<%s-PageUp>\tScroll commit list up one page" msgstr "<%s-PageUp>\tСтраница нагоре в списъка с подавания" -#: gitk:3133 +#: gitk:3240 #, tcl-format msgid "<%s-PageDown>\tScroll commit list down one page" msgstr "<%s-PageDown>\tСтраница надолу в списъка с подавания" -#: gitk:3134 +#: gitk:3241 msgid "\tFind backwards (upwards, later commits)" msgstr "\tТърсене назад (визуално нагоре, исторически — последващи)" -#: gitk:3135 +#: gitk:3242 msgid "\tFind forwards (downwards, earlier commits)" msgstr "" "\tТърсене напред (визуално надолу, исторически — предхождащи)" -#: gitk:3136 +#: gitk:3243 msgid ", b\tScroll diff view up one page" msgstr ", b\tСтраница нагоре в изгледа за разлики" -#: gitk:3137 +#: gitk:3244 msgid "\tScroll diff view up one page" msgstr "\tСтраница надолу в изгледа за разлики" -#: gitk:3138 +#: gitk:3245 msgid "\t\tScroll diff view down one page" msgstr "\t\tСтраница надолу в изгледа за разлики" -#: gitk:3139 +#: gitk:3246 msgid "u\t\tScroll diff view up 18 lines" msgstr "u\t\t18 реда нагоре в изгледа за разлики" -#: gitk:3140 +#: gitk:3247 msgid "d\t\tScroll diff view down 18 lines" msgstr "d\t\t18 реда надолу в изгледа за разлики" -#: gitk:3141 +#: gitk:3248 #, tcl-format msgid "<%s-F>\t\tFind" msgstr "<%s-F>\t\tТърсене" -#: gitk:3142 +#: gitk:3249 #, tcl-format msgid "<%s-G>\t\tMove to next find hit" msgstr "<%s-G>\t\tКъм следващата поява" -#: gitk:3143 +#: gitk:3250 msgid "\tMove to next find hit" msgstr "\tКъм следващата поява" -#: gitk:3144 +#: gitk:3251 msgid "g\t\tGo to commit" msgstr "g\t\tКъм последното подаване" -#: gitk:3145 +#: gitk:3252 msgid "/\t\tFocus the search box" msgstr "/\t\tФокус върху полето за търсене" -#: gitk:3146 +#: gitk:3253 msgid "?\t\tMove to previous find hit" msgstr "?\t\tКъм предишната поява" -#: gitk:3147 +#: gitk:3254 msgid "f\t\tScroll diff view to next file" msgstr "f\t\tСледващ файл в изгледа за разлики" -#: gitk:3148 +#: gitk:3255 #, tcl-format msgid "<%s-S>\t\tSearch for next hit in diff view" msgstr "<%s-S>\t\tТърсене на следващата поява в изгледа за разлики" -#: gitk:3149 +#: gitk:3256 #, tcl-format msgid "<%s-R>\t\tSearch for previous hit in diff view" msgstr "<%s-R>\t\tТърсене на предишната поява в изгледа за разлики" -#: gitk:3150 +#: gitk:3257 #, tcl-format msgid "<%s-KP+>\tIncrease font size" msgstr "<%s-KP+>\tПо-голям размер на шрифта" -#: gitk:3151 +#: gitk:3258 #, tcl-format msgid "<%s-plus>\tIncrease font size" msgstr "<%s-plus>\tПо-голям размер на шрифта" -#: gitk:3152 +#: gitk:3259 #, tcl-format msgid "<%s-KP->\tDecrease font size" msgstr "<%s-KP->\tПо-малък размер на шрифта" -#: gitk:3153 +#: gitk:3260 #, tcl-format msgid "<%s-minus>\tDecrease font size" msgstr "<%s-minus>\tПо-малък размер на шрифта" -#: gitk:3154 +#: gitk:3261 msgid "\t\tUpdate" msgstr "\t\tОбновяване" -#: gitk:3621 gitk:3630 +#: gitk:3728 gitk:3737 #, tcl-format msgid "Error creating temporary directory %s:" msgstr "Грешка при създаването на временната директория „%s“:" -#: gitk:3643 +#: gitk:3750 #, tcl-format msgid "Error getting \"%s\" from %s:" msgstr "Грешка при получаването на „%s“ от %s:" -#: gitk:3706 +#: gitk:3813 msgid "command failed:" msgstr "неуспешно изпълнение на команда:" -#: gitk:3855 +#: gitk:3962 msgid "No such commit" msgstr "Такова подаване няма" -#: gitk:3869 +#: gitk:3976 msgid "git gui blame: command failed:" msgstr "„git gui blame“: неуспешно изпълнение на команда:" -#: gitk:3900 +#: gitk:4007 #, tcl-format msgid "Couldn't read merge head: %s" msgstr "Върхът за сливане не може да се прочете: %s" -#: gitk:3908 +#: gitk:4015 #, tcl-format msgid "Error reading index: %s" msgstr "Грешка при прочитане на индекса: %s" -#: gitk:3933 +#: gitk:4038 #, tcl-format msgid "Couldn't start git blame: %s" msgstr "Командата „git blame“ не може да се стартира: %s" -#: gitk:3936 gitk:6825 +#: gitk:4041 gitk:6924 msgid "Searching" msgstr "Търсене" -#: gitk:3968 +#: gitk:4074 #, tcl-format msgid "Error running git blame: %s" msgstr "Грешка при изпълнението на „git blame“: %s" -#: gitk:3996 +#: gitk:4102 #, tcl-format msgid "That line comes from commit %s, which is not in this view" msgstr "Този ред идва от подаването %s, което не е в изгледа" -#: gitk:4010 +#: gitk:4116 msgid "External diff viewer failed:" msgstr "Неуспешно изпълнение на външната програма за разлики:" -#: gitk:4114 +#: gitk:4220 msgid "All files" msgstr "Всички файлове" -#: gitk:4138 +#: gitk:4244 msgid "View" msgstr "Изглед" -#: gitk:4141 +#: gitk:4247 msgid "Gitk view definition" msgstr "Дефиниция на изглед в Gitk" -#: gitk:4145 +#: gitk:4251 msgid "Remember this view" msgstr "Запазване на този изглед" -#: gitk:4146 +#: gitk:4252 msgid "References (space separated list):" msgstr "Указатели (списък с разделител интервал):" -#: gitk:4147 +#: gitk:4253 msgid "Branches & tags:" msgstr "Клони и етикети:" -#: gitk:4148 +#: gitk:4254 msgid "All refs" msgstr "Всички указатели" -#: gitk:4149 +#: gitk:4255 msgid "All (local) branches" msgstr "Всички (локални) клони" -#: gitk:4150 +#: gitk:4256 msgid "All tags" msgstr "Всички етикети" -#: gitk:4151 +#: gitk:4257 msgid "All remote-tracking branches" msgstr "Всички следящи клони" -#: gitk:4152 +#: gitk:4258 msgid "Commit Info (regular expressions):" msgstr "Информация за подаване (рег. изр.):" -#: gitk:4153 +#: gitk:4259 msgid "Author:" msgstr "Автор:" -#: gitk:4154 +#: gitk:4260 msgid "Committer:" msgstr "Подал:" -#: gitk:4155 +#: gitk:4261 msgid "Commit Message:" msgstr "Съобщение при подаване:" -#: gitk:4156 +#: gitk:4262 msgid "Matches all Commit Info criteria" msgstr "Съвпадение по всички характеристики на подаването" -#: gitk:4157 +#: gitk:4263 msgid "Matches no Commit Info criteria" msgstr "Не съвпада по никоя от характеристиките на подаването" -#: gitk:4158 +#: gitk:4264 msgid "Changes to Files:" msgstr "Промени по файловете:" -#: gitk:4159 +#: gitk:4265 msgid "Fixed String" msgstr "Дословен низ" -#: gitk:4160 +#: gitk:4266 msgid "Regular Expression" msgstr "Регулярен израз" -#: gitk:4161 +#: gitk:4267 msgid "Search string:" msgstr "Низ за търсене:" -#: gitk:4162 +#: gitk:4268 msgid "" "Commit Dates (\"2 weeks ago\", \"2009-03-17 15:27:38\", \"March 17, 2009 " "15:27:38\"):" @@ -711,208 +715,208 @@ msgstr "" "Дата на подаване („2 weeks ago“ (преди 2 седмици), „2009-03-17 15:27:38“, " "„March 17, 2009 15:27:38“):" -#: gitk:4163 +#: gitk:4269 msgid "Since:" msgstr "От:" -#: gitk:4164 +#: gitk:4270 msgid "Until:" msgstr "До:" -#: gitk:4165 +#: gitk:4271 msgid "Limit and/or skip a number of revisions (positive integer):" msgstr "" "Ограничаване и/или прескачане на определен брой версии (неотрицателно цяло " "число):" -#: gitk:4166 +#: gitk:4272 msgid "Number to show:" msgstr "Брой показани:" -#: gitk:4167 +#: gitk:4273 msgid "Number to skip:" msgstr "Брой прескочени:" -#: gitk:4168 +#: gitk:4274 msgid "Miscellaneous options:" msgstr "Разни:" -#: gitk:4169 +#: gitk:4275 msgid "Strictly sort by date" msgstr "Подреждане по дата" -#: gitk:4170 +#: gitk:4276 msgid "Mark branch sides" msgstr "Отбелязване на страните по клона" -#: gitk:4171 +#: gitk:4277 msgid "Limit to first parent" msgstr "Само първия родител" -#: gitk:4172 +#: gitk:4278 msgid "Simple history" msgstr "Опростена история" -#: gitk:4173 +#: gitk:4279 msgid "Additional arguments to git log:" msgstr "Допълнителни аргументи към „git log“:" -#: gitk:4174 +#: gitk:4280 msgid "Enter files and directories to include, one per line:" msgstr "Въведете файловете и директориите за включване, по елемент на ред" -#: gitk:4175 +#: gitk:4281 msgid "Command to generate more commits to include:" msgstr "" "Команда за генерирането на допълнителни подавания, които да се включат:" -#: gitk:4299 +#: gitk:4405 msgid "Gitk: edit view" msgstr "Gitk: редактиране на изглед" -#: gitk:4307 +#: gitk:4413 msgid "-- criteria for selecting revisions" msgstr "— критерии за избор на версии" -#: gitk:4312 +#: gitk:4418 msgid "View Name" msgstr "Име на изглед" -#: gitk:4387 +#: gitk:4493 msgid "Apply (F5)" msgstr "Прилагане (F5)" -#: gitk:4425 +#: gitk:4531 msgid "Error in commit selection arguments:" msgstr "Грешка в аргументите за избор на подавания:" -#: gitk:4480 gitk:4533 gitk:4995 gitk:5009 gitk:6279 gitk:12679 gitk:12680 +#: gitk:4586 gitk:4639 gitk:5101 gitk:5115 gitk:6384 gitk:12724 gitk:12725 msgid "None" msgstr "Няма" -#: gitk:5092 gitk:5097 +#: gitk:5198 gitk:5203 msgid "Descendant" msgstr "Наследник" -#: gitk:5093 +#: gitk:5199 msgid "Not descendant" msgstr "Не е наследник" -#: gitk:5100 gitk:5105 +#: gitk:5206 gitk:5211 msgid "Ancestor" msgstr "Предшественик" -#: gitk:5101 +#: gitk:5207 msgid "Not ancestor" msgstr "Не е предшественик" -#: gitk:5395 +#: gitk:5500 msgid "Local changes checked in to index but not committed" msgstr "Локални промени добавени към индекса, но неподадени" -#: gitk:5431 +#: gitk:5536 msgid "Local uncommitted changes, not checked in to index" msgstr "Локални промени извън индекса" -#: gitk:7179 +#: gitk:7280 msgid "Error starting web browser:" msgstr "Грешка при стартирането на уеб браузър:" -#: gitk:7240 +#: gitk:7341 msgid "and many more" msgstr "и още много" -#: gitk:7243 +#: gitk:7344 msgid "many" msgstr "много" -#: gitk:7438 +#: gitk:7539 msgid "Tags:" msgstr "Етикети:" -#: gitk:7455 gitk:7461 gitk:8940 +#: gitk:7556 gitk:7562 gitk:9033 msgid "Parent" msgstr "Родител" -#: gitk:7466 +#: gitk:7567 msgid "Child" msgstr "Дете" -#: gitk:7475 +#: gitk:7576 msgid "Branch" msgstr "Клон" -#: gitk:7478 +#: gitk:7579 msgid "Follows" msgstr "Следва" -#: gitk:7481 +#: gitk:7582 msgid "Precedes" msgstr "Предшества" -#: gitk:8076 +#: gitk:8166 #, tcl-format msgid "Error getting diffs: %s" msgstr "Грешка при получаването на разликите: %s" -#: gitk:8765 +#: gitk:8857 msgid "Goto:" msgstr "Към ред:" -#: gitk:8786 +#: gitk:8879 #, tcl-format msgid "Short commit ID %s is ambiguous" msgstr "Съкратената контролна сума %s не е еднозначна" -#: gitk:8793 +#: gitk:8886 #, tcl-format msgid "Revision %s is not known" msgstr "Непозната версия %s" -#: gitk:8803 +#: gitk:8896 #, tcl-format msgid "Commit ID %s is not known" msgstr "Непозната контролна сума %s" -#: gitk:8805 +#: gitk:8898 #, tcl-format msgid "Revision %s is not in the current view" msgstr "Версия %s не е в текущия изглед" -#: gitk:8947 gitk:8962 +#: gitk:9040 gitk:9055 msgid "Date" msgstr "Дата" -#: gitk:8950 +#: gitk:9043 msgid "Children" msgstr "Деца" -#: gitk:9013 +#: gitk:9106 #, tcl-format msgid "Reset %s branch to here" msgstr "Зануляване на клона „%s“ към текущото подаване" -#: gitk:9015 +#: gitk:9108 msgid "Detached head: can't reset" msgstr "Несвързан връх: невъзможно зануляване" -#: gitk:9120 gitk:9126 +#: gitk:9211 gitk:9217 msgid "Skipping merge commit " msgstr "Пропускане на подаването на сливането" -#: gitk:9135 gitk:9140 +#: gitk:9226 gitk:9231 msgid "Error getting patch ID for " msgstr "Грешка при получаването на идентификатора на " -#: gitk:9136 gitk:9141 +#: gitk:9227 gitk:9232 msgid " - stopping\n" msgstr " — спиране\n" -#: gitk:9146 gitk:9149 gitk:9157 gitk:9171 gitk:9180 +#: gitk:9237 gitk:9240 gitk:9248 gitk:9262 gitk:9271 msgid "Commit " msgstr "Подаване" -#: gitk:9150 +#: gitk:9241 msgid "" " is the same patch as\n" " " @@ -920,7 +924,7 @@ msgstr "" " е същата кръпка като\n" " " -#: gitk:9158 +#: gitk:9249 msgid "" " differs from\n" " " @@ -928,7 +932,7 @@ msgstr "" " се различава от\n" " " -#: gitk:9160 +#: gitk:9251 msgid "" "Diff of commits:\n" "\n" @@ -936,147 +940,147 @@ msgstr "" "Разлика между подаванията:\n" "\n" -#: gitk:9172 gitk:9181 +#: gitk:9263 gitk:9272 #, tcl-format msgid " has %s children - stopping\n" msgstr " има %s деца — спиране\n" -#: gitk:9200 +#: gitk:9291 #, tcl-format msgid "Error writing commit to file: %s" msgstr "Грешка при запазването на подаването във файл: %s" -#: gitk:9206 +#: gitk:9297 #, tcl-format msgid "Error diffing commits: %s" msgstr "Грешка при изчисляването на разликите между подаванията: %s" -#: gitk:9252 +#: gitk:9343 msgid "Top" msgstr "Най-горе" -#: gitk:9253 +#: gitk:9344 msgid "From" msgstr "От" -#: gitk:9258 +#: gitk:9349 msgid "To" msgstr "До" -#: gitk:9282 +#: gitk:9374 msgid "Generate patch" msgstr "Генериране на кръпка" -#: gitk:9284 +#: gitk:9376 msgid "From:" msgstr "От:" -#: gitk:9293 +#: gitk:9385 msgid "To:" msgstr "До:" -#: gitk:9302 +#: gitk:9394 msgid "Reverse" msgstr "Обръщане" -#: gitk:9304 gitk:9514 +#: gitk:9396 gitk:9606 msgid "Output file:" msgstr "Запазване във файла:" -#: gitk:9310 +#: gitk:9402 msgid "Generate" msgstr "Генериране" -#: gitk:9348 +#: gitk:9437 msgid "Error creating patch:" msgstr "Грешка при създаването на кръпка:" -#: gitk:9371 gitk:9502 gitk:9590 +#: gitk:9461 gitk:9594 gitk:9682 msgid "ID:" msgstr "Идентификатор:" -#: gitk:9380 +#: gitk:9470 msgid "Tag name:" msgstr "Име на етикет:" -#: gitk:9383 +#: gitk:9473 msgid "Tag message is optional" msgstr "Съобщението за етикет е незадължително" -#: gitk:9385 +#: gitk:9475 msgid "Tag message:" msgstr "Съобщение за етикет:" -#: gitk:9389 gitk:9560 +#: gitk:9479 gitk:9652 msgid "Create" msgstr "Създаване" -#: gitk:9407 +#: gitk:9497 msgid "No tag name specified" msgstr "Липсва име на етикет" -#: gitk:9411 +#: gitk:9501 #, tcl-format msgid "Tag \"%s\" already exists" msgstr "Етикетът „%s“ вече съществува" -#: gitk:9421 +#: gitk:9511 msgid "Error creating tag:" msgstr "Грешка при създаването на етикет:" -#: gitk:9511 +#: gitk:9603 msgid "Command:" msgstr "Команда:" -#: gitk:9519 +#: gitk:9611 msgid "Write" msgstr "Запазване" -#: gitk:9537 +#: gitk:9629 msgid "Error writing commit:" msgstr "Грешка при запазването на подаването:" -#: gitk:9559 +#: gitk:9651 msgid "Create branch" msgstr "Създаване на клон" -#: gitk:9575 +#: gitk:9666 #, tcl-format msgid "Rename branch %s" msgstr "Преименуване на клона „%s“" -#: gitk:9576 +#: gitk:9667 msgid "Rename" msgstr "Преименуване" -#: gitk:9600 +#: gitk:9692 msgid "Name:" msgstr "Име:" -#: gitk:9624 +#: gitk:9716 msgid "Please specify a name for the new branch" msgstr "Укажете име за новия клон" -#: gitk:9629 +#: gitk:9721 #, tcl-format msgid "Branch '%s' already exists. Overwrite?" msgstr "Клонът „%s“ вече съществува. Да се презапише ли?" -#: gitk:9673 +#: gitk:9765 msgid "Please specify a new name for the branch" msgstr "Укажете ново име за клона" -#: gitk:9736 +#: gitk:9828 #, tcl-format msgid "Commit %s is already included in branch %s -- really re-apply it?" msgstr "" "Подаването „%s“ вече е включено в клона „%s“ — да се приложи ли отново?" -#: gitk:9741 +#: gitk:9833 msgid "Cherry-picking" msgstr "Отбиране" -#: gitk:9750 +#: gitk:9842 #, tcl-format msgid "" "Cherry-pick failed because of local changes to file '%s'.\n" @@ -1085,7 +1089,7 @@ msgstr "" "Неуспешно отбиране, защото във файла „%s“ има локални промени.\n" "Подайте, занулете или ги скатайте и пробвайте отново." -#: gitk:9756 +#: gitk:9848 msgid "" "Cherry-pick failed because of merge conflict.\n" "Do you wish to run git citool to resolve it?" @@ -1093,20 +1097,20 @@ msgstr "" "Неуспешно отбиране поради конфликти при сливане.\n" "Искате ли да ги коригирате чрез „git citool“?" -#: gitk:9772 gitk:9830 +#: gitk:9864 gitk:9922 msgid "No changes committed" msgstr "Не са подадени промени" -#: gitk:9799 +#: gitk:9891 #, tcl-format msgid "Commit %s is not included in branch %s -- really revert it?" msgstr "Подаването „%s“ не е включено в клона „%s“. Да се отменени ли?" -#: gitk:9804 +#: gitk:9896 msgid "Reverting" msgstr "Отмяна" -#: gitk:9812 +#: gitk:9904 #, tcl-format msgid "" "Revert failed because of local changes to the following files:%s Please " @@ -1115,7 +1119,7 @@ msgstr "" "Неуспешна отмяна, защото във файла „%s“ има локални промени.\n" "Подайте, занулете или ги скатайте и пробвайте отново." -#: gitk:9816 +#: gitk:9908 msgid "" "Revert failed because of merge conflict.\n" " Do you wish to run git citool to resolve it?" @@ -1123,28 +1127,28 @@ msgstr "" "Неуспешно отмяна поради конфликти при сливане.\n" "Искате ли да ги коригирате чрез „git citool“?" -#: gitk:9859 +#: gitk:9951 msgid "Confirm reset" msgstr "Потвърждаване на зануляването" -#: gitk:9861 +#: gitk:9953 #, tcl-format msgid "Reset branch %s to %s?" msgstr "Да се занули ли клонът „%s“ към „%s“?" -#: gitk:9863 +#: gitk:9955 msgid "Reset type:" msgstr "Вид зануляване:" -#: gitk:9866 +#: gitk:9958 msgid "Soft: Leave working tree and index untouched" msgstr "Слабо: работното дърво и индекса остават същите" -#: gitk:9869 +#: gitk:9961 msgid "Mixed: Leave working tree untouched, reset index" msgstr "Смесено: работното дърво остава същото, индексът се занулява" -#: gitk:9872 +#: gitk:9964 msgid "" "Hard: Reset working tree and index\n" "(discard ALL local changes)" @@ -1152,24 +1156,24 @@ msgstr "" "Силно: зануляване и на работното дърво, и на индекса\n" "(ВСИЧКИ локални промени ще се загубят безвъзвратно)" -#: gitk:9889 +#: gitk:9981 msgid "Resetting" msgstr "Зануляване" -#: gitk:9962 +#: gitk:10054 #, tcl-format msgid "A local branch named %s exists already" msgstr "Вече съществува локален клон „%s“." -#: gitk:9970 +#: gitk:10061 msgid "Checking out" msgstr "Изтегляне" -#: gitk:10029 +#: gitk:10120 msgid "Cannot delete the currently checked-out branch" msgstr "Текущо изтегленият клон не може да се изтрие" -#: gitk:10035 +#: gitk:10126 #, tcl-format msgid "" "The commits on branch %s aren't on any other branch.\n" @@ -1178,16 +1182,20 @@ msgstr "" "Подаванията на клона „%s“ не са на никой друг клон.\n" "Наистина ли искате да изтриете клона „%s“?" -#: gitk:10066 +#: gitk:10157 #, tcl-format msgid "Tags and heads: %s" msgstr "Етикети и върхове: %s" -#: gitk:10083 +#: gitk:10174 msgid "Filter" msgstr "Филтриране" -#: gitk:10390 +#: gitk:10181 +msgid "Sort refs by type" +msgstr "Подредба на указателите по вид" + +#: gitk:10513 msgid "" "Error reading commit topology information; branch and preceding/following " "tag information will be incomplete." @@ -1195,253 +1203,221 @@ msgstr "" "Грешка при прочитането на топологията на подаванията. Информацията за клона " "и предшестващите/следващите етикети ще е непълна." -#: gitk:11367 +#: gitk:11490 msgid "Tag" msgstr "Етикет" -#: gitk:11371 +#: gitk:11494 msgid "Id" msgstr "Идентификатор" -#: gitk:11454 -msgid "Gitk font chooser" -msgstr "Избор на шрифт за Gitk" - -#: gitk:11471 -msgid "B" -msgstr "Ч" - -#: gitk:11474 -msgid "I" -msgstr "К" - -#: gitk:11593 +#: gitk:11635 msgid "Commit list display options" msgstr "Настройки на списъка с подавания" -#: gitk:11596 +#: gitk:11638 msgid "Maximum graph width (lines)" msgstr "Максимална широчина на графа (в редове)" -#: gitk:11600 +#: gitk:11642 #, no-tcl-format msgid "Maximum graph width (% of pane)" msgstr "Максимална широчина на графа (% от панела)" -#: gitk:11603 +#: gitk:11645 msgid "Show local changes" msgstr "Показване на локалните промени" -#: gitk:11606 +#: gitk:11648 msgid "Hide remote refs" msgstr "Скриване на отдалечените указатели" -#: gitk:11610 +#: gitk:11652 msgid "Copy commit ID to clipboard" msgstr "Копиране на контролната сума към буфера за обмен" -#: gitk:11614 +#: gitk:11656 msgid "Copy commit ID to X11 selection" msgstr "Копиране на контролната сума в селекцията на X11" -#: gitk:11619 +#: gitk:11662 msgid "Length of commit ID to copy" msgstr "Дължина на контролната сума, която се копира" -#: gitk:11622 +#: gitk:11664 +msgid "Wheel scrolling multiplier" +msgstr "Множител за колелцето на мишката" + +#: gitk:11668 msgid "Diff display options" msgstr "Настройки на показването на разликите" -#: gitk:11624 +#: gitk:11670 msgid "Tab spacing" msgstr "Широчина на табулатора" -#: gitk:11628 +#: gitk:11674 msgid "Wrap comment text" msgstr "Пренасяне на думите в коментарите" -#: gitk:11633 +#: gitk:11678 msgid "Wrap other text" msgstr "Пренасяне на другия текст" -#: gitk:11638 +#: gitk:11682 msgid "Display nearby tags/heads" msgstr "Извеждане на близките етикети и върхове" -#: gitk:11641 +#: gitk:11685 msgid "Maximum # tags/heads to show" msgstr "Максимален брой етикети/върхове за показване" -#: gitk:11644 +#: gitk:11688 msgid "Limit diffs to listed paths" msgstr "Разлика само в избраните пътища" -#: gitk:11647 +#: gitk:11691 msgid "Support per-file encodings" msgstr "Поддръжка на различни кодирания за всеки файл" -#: gitk:11653 gitk:11820 +#: gitk:11697 gitk:11835 msgid "External diff tool" msgstr "Външен инструмент за разлики" -#: gitk:11654 +#: gitk:11698 msgid "Choose..." msgstr "Избор…" -#: gitk:11661 +#: gitk:11705 msgid "Web browser" msgstr "Уеб браузър" -#: gitk:11666 -msgid "General options" -msgstr "Общи настройки" - -#: gitk:11669 -msgid "Use themed widgets" -msgstr "Използване на тема за графичните обекти" - -#: gitk:11671 -msgid "(change requires restart)" -msgstr "(промяната изисква рестартиране на Gitk)" - -#: gitk:11673 -msgid "(currently unavailable)" -msgstr "(в момента недостъпно)" - -#: gitk:11685 +#: gitk:11719 msgid "Colors: press to choose" msgstr "Цветове: избира се с натискане" -#: gitk:11688 +#: gitk:11722 msgid "Interface" msgstr "Интерфейс" -#: gitk:11689 +#: gitk:11723 msgid "interface" msgstr "интерфейс" -#: gitk:11692 +#: gitk:11726 msgid "Background" msgstr "Фон" -#: gitk:11693 gitk:11735 +#: gitk:11727 gitk:11769 msgid "background" msgstr "фон" -#: gitk:11696 +#: gitk:11730 msgid "Foreground" msgstr "Знаци" -#: gitk:11697 +#: gitk:11731 msgid "foreground" msgstr "знаци" -#: gitk:11700 +#: gitk:11734 msgid "Diff: old lines" msgstr "Разлика: стари редове" -#: gitk:11701 +#: gitk:11735 msgid "diff old lines" msgstr "разлика, стари редове" -#: gitk:11705 +#: gitk:11739 msgid "Diff: old lines bg" msgstr "Разлика: фон на стари редове" -#: gitk:11707 +#: gitk:11741 msgid "diff old lines bg" msgstr "разлика, фон на стари редове" -#: gitk:11711 +#: gitk:11745 msgid "Diff: new lines" msgstr "Разлика: нови редове" -#: gitk:11712 +#: gitk:11746 msgid "diff new lines" msgstr "разлика, нови редове" -#: gitk:11716 +#: gitk:11750 msgid "Diff: new lines bg" msgstr "Разлика: фон на нови редове" -#: gitk:11718 +#: gitk:11752 msgid "diff new lines bg" msgstr "разлика, фон на нови редове" -#: gitk:11722 +#: gitk:11756 msgid "Diff: hunk header" msgstr "Разлика: начало на парче" -#: gitk:11724 +#: gitk:11758 msgid "diff hunk header" msgstr "разлика, начало на парче" -#: gitk:11728 +#: gitk:11762 msgid "Marked line bg" msgstr "Фон на отбелязан ред" -#: gitk:11730 +#: gitk:11764 msgid "marked line background" msgstr "фон на отбелязан ред" -#: gitk:11734 +#: gitk:11768 msgid "Select bg" msgstr "Избор на фон" -#: gitk:11743 +#: gitk:11776 msgid "Fonts: press to choose" msgstr "Шрифтове: избира се с натискане" -#: gitk:11745 +#: gitk:11778 msgid "Main font" msgstr "Основен шрифт" -#: gitk:11746 +#: gitk:11779 msgid "Diff display font" msgstr "Шрифт за разликите" -#: gitk:11747 +#: gitk:11780 msgid "User interface font" msgstr "Шрифт на интерфейса" -#: gitk:11769 +#: gitk:11798 msgid "Gitk preferences" msgstr "Настройки на Gitk" -#: gitk:11778 +#: gitk:11803 msgid "General" msgstr "Общи" -#: gitk:11779 +#: gitk:11804 msgid "Colors" msgstr "Цветове" -#: gitk:11780 +#: gitk:11805 msgid "Fonts" msgstr "Шрифтове" -#: gitk:11830 +#: gitk:11845 #, tcl-format msgid "Gitk: choose color for %s" msgstr "Gitk: избор на цвят на „%s“" -#: gitk:12350 -msgid "" -"Sorry, gitk cannot run with this version of Tcl/Tk.\n" -" Gitk requires at least Tcl/Tk 8.4." -msgstr "" -"Тази версия на Tcl/Tk не се поддържа от Gitk.\n" -" Необходима ви е поне Tcl/Tk 8.4." - -#: gitk:12571 +#: gitk:12633 msgid "Cannot find a git repository here." msgstr "Тук липсва хранилище на Git." -#: gitk:12618 +#: gitk:12680 #, tcl-format msgid "Ambiguous argument '%s': both revision and filename" msgstr "Нееднозначен аргумент „%s“: има и такава версия, и такъв файл" -#: gitk:12630 +#: gitk:12692 msgid "Bad arguments to gitk:" msgstr "Неправилни аргументи на gitk:" From 79be55fa576aad404cb9846913627ef6556f4a28 Mon Sep 17 00:00:00 2001 From: Alexander Shopov Date: Tue, 29 Jul 2025 19:50:36 +0200 Subject: [PATCH 20/35] gitk i18n: Remove the locations within the Bulgarian translation This makes sending diffs via mail list easier and brings the po-file in line with git po-file. Signed-off-by: Alexander Shopov --- po/bg.po | 325 ------------------------------------------------------- 1 file changed, 325 deletions(-) diff --git a/po/bg.po b/po/bg.po index 0c67bc312f681a..d1e7d92425bd77 100644 --- a/po/bg.po +++ b/po/bg.po @@ -18,32 +18,25 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: gitk:352 msgid "Couldn't get list of unmerged files:" msgstr "Списъкът с неслети файлове не може да се получи:" -#: gitk:423 gitk:2617 msgid "Color words" msgstr "Оцветяване на думите" -#: gitk:426 gitk:2617 gitk:8426 gitk:8459 msgid "Markup words" msgstr "Отбелязване на думите" -#: gitk:533 msgid "Error parsing revisions:" msgstr "Грешка при анализ на версиите:" -#: gitk:588 msgid "Error executing --argscmd command:" msgstr "Грешка при изпълнение на командата с „--argscmd“." -#: gitk:601 msgid "No files selected: --merge specified but no files are unmerged." msgstr "" "Не са избрани файлове — указана е опцията „--merge“, но няма неслети файлове." -#: gitk:604 msgid "" "No files selected: --merge specified but no unmerged files are within file " "limit." @@ -51,330 +44,246 @@ msgstr "" "Не са избрани файлове — указана е опцията „--merge“, но няма неслети файлове " "в ограниченията." -#: gitk:628 gitk:781 msgid "Error executing git log:" msgstr "Грешка при изпълнение на „git log“:" -#: gitk:646 gitk:797 msgid "Reading" msgstr "Прочитане" -#: gitk:706 gitk:4702 msgid "Reading commits..." msgstr "Прочитане на подаванията…" -#: gitk:709 gitk:1857 gitk:4705 msgid "No commits selected" msgstr "Не са избрани подавания" -#: gitk:1665 gitk:4222 gitk:12787 msgid "Command line" msgstr "Команден ред" -#: gitk:1731 msgid "Can't parse git log output:" msgstr "Изходът от „git log“ не може да се анализира:" -#: gitk:1960 msgid "No commit information available" msgstr "Липсва информация за подавания" -#: gitk:2126 gitk:2155 gitk:4492 gitk:9967 gitk:11820 msgid "OK" msgstr "Добре" -#: gitk:2157 gitk:4494 gitk:9403 gitk:9480 gitk:9612 gitk:9698 gitk:9969 -#: gitk:11821 msgid "Cancel" msgstr "Отказ" -#: gitk:2336 msgid "&Update" msgstr "&Обновяване" -#: gitk:2337 msgid "&Reload" msgstr "&Презареждане" -#: gitk:2338 msgid "Reread re&ferences" msgstr "Прочитане &наново" -#: gitk:2339 msgid "&List references" msgstr "&Изброяване на указателите" -#: gitk:2341 msgid "Start git &gui" msgstr "&Стартиране на „git gui“" -#: gitk:2343 msgid "&Quit" msgstr "&Спиране на програмата" -#: gitk:2335 msgid "&File" msgstr "&Файл" -#: gitk:2347 msgid "&Preferences" msgstr "&Настройки" -#: gitk:2346 msgid "&Edit" msgstr "&Редактиране" -#: gitk:2351 msgid "&New view..." msgstr "&Нов изглед…" -#: gitk:2352 msgid "&Edit view..." msgstr "&Редактиране на изгледа…" -#: gitk:2353 msgid "&Delete view" msgstr "&Изтриване на изгледа" -#: gitk:2355 msgid "&All files" msgstr "&Всички файлове" -#: gitk:2350 msgid "&View" msgstr "&Изглед" -#: gitk:2360 gitk:2370 msgid "&About gitk" msgstr "&Относно gitk" -#: gitk:2361 gitk:2375 msgid "&Key bindings" msgstr "&Клавишни комбинации" -#: gitk:2359 gitk:2374 msgid "&Help" msgstr "Помо&щ" -#: gitk:2442 gitk:8859 msgid "Commit ID:" msgstr "Подаване:" -#: gitk:2478 msgid "Row" msgstr "Ред" -#: gitk:2504 msgid "Find" msgstr "Търсене" -#: gitk:2532 msgid "commit" msgstr "подаване" -#: gitk:2536 gitk:2538 gitk:4864 gitk:4887 gitk:4911 gitk:6925 gitk:6997 -#: gitk:7082 msgid "containing:" msgstr "съдържащо:" -#: gitk:2539 gitk:3704 gitk:3709 gitk:4940 msgid "touching paths:" msgstr "в пътищата:" -#: gitk:2540 gitk:4954 msgid "adding/removing string:" msgstr "добавящо/премахващо низ" -#: gitk:2541 gitk:4956 msgid "changing lines matching:" msgstr "променящо редове напасващи:" -#: gitk:2550 gitk:2552 gitk:4943 msgid "Exact" msgstr "Точно" -#: gitk:2552 gitk:5031 gitk:6893 msgid "IgnCase" msgstr "Без регистър" -#: gitk:2552 gitk:4913 gitk:5029 gitk:6889 msgid "Regexp" msgstr "Рег. израз" -#: gitk:2554 gitk:2555 gitk:5051 gitk:5081 gitk:5088 gitk:7018 gitk:7086 msgid "All fields" msgstr "Всички полета" -#: gitk:2555 gitk:5048 gitk:5081 gitk:6956 msgid "Headline" msgstr "Първи ред" -#: gitk:2556 gitk:5048 gitk:6956 gitk:7086 gitk:7600 msgid "Comments" msgstr "Коментари" -#: gitk:2556 gitk:5048 gitk:5053 gitk:5088 gitk:6956 gitk:7535 gitk:9038 -#: gitk:9053 msgid "Author" msgstr "Автор" -#: gitk:2556 gitk:5048 gitk:6956 gitk:7537 msgid "Committer" msgstr "Подаващ" -#: gitk:2586 msgid "Search" msgstr "Търсене" -#: gitk:2594 msgid "Diff" msgstr "Разлики" -#: gitk:2596 msgid "Old version" msgstr "Стара версия" -#: gitk:2598 msgid "New version" msgstr "Нова версия" -#: gitk:2601 msgid "Lines of context" msgstr "Контекст в редове" -#: gitk:2611 msgid "Ignore space change" msgstr "Празните знаци без значение" -#: gitk:2615 gitk:2616 gitk:8159 gitk:8412 msgid "Line diff" msgstr "Поредови разлики" -#: gitk:2683 msgid "Patch" msgstr "Кръпка" -#: gitk:2685 msgid "Tree" msgstr "Дърво" -#: gitk:2760 msgid "Unknown windowing system, cannot bind mouse" msgstr "Непозната графична система, не може да се установи връзка с мишка" -#: gitk:2842 gitk:2863 msgid "Diff this -> selected" msgstr "Разлики между това и избраното" -#: gitk:2843 gitk:2864 msgid "Diff selected -> this" msgstr "Разлики между избраното и това" -#: gitk:2844 gitk:2865 msgid "Make patch" msgstr "Създаване на кръпка" -#: gitk:2845 gitk:9459 msgid "Create tag" msgstr "Създаване на етикет" -#: gitk:2846 msgid "Copy commit reference" msgstr "Копиране на указателя на подаване" -#: gitk:2847 gitk:9592 msgid "Write commit to file" msgstr "Запазване на подаването във файл" -#: gitk:2848 msgid "Create new branch" msgstr "Създаване на нов клон" -#: gitk:2849 msgid "Cherry-pick this commit" msgstr "Отбиране на това подаване" -#: gitk:2850 msgid "Reset HEAD branch to here" msgstr "Привеждане на върха на клона към текущото подаване" -#: gitk:2851 msgid "Mark this commit" msgstr "Отбелязване на това подаване" -#: gitk:2852 msgid "Return to mark" msgstr "Връщане към отбелязаното подаване" -#: gitk:2853 msgid "Find descendant of this and mark" msgstr "Откриване и отбелязване на наследниците" -#: gitk:2854 msgid "Compare with marked commit" msgstr "Сравнение с отбелязаното подаване" -#: gitk:2855 gitk:2866 msgid "Diff this -> marked commit" msgstr "Разлики между това и отбелязаното" -#: gitk:2856 gitk:2867 msgid "Diff marked commit -> this" msgstr "Разлики между отбелязаното и това" -#: gitk:2857 msgid "Revert this commit" msgstr "Отмяна на това подаване" -#: gitk:2873 msgid "Check out this branch" msgstr "Изтегляне на този клон" -#: gitk:2874 msgid "Rename this branch" msgstr "Преименуване на този клон" -#: gitk:2875 msgid "Remove this branch" msgstr "Изтриване на този клон" -#: gitk:2876 msgid "Copy branch name" msgstr "Копиране на името на клона" -#: gitk:2883 msgid "Highlight this too" msgstr "Отбелязване и на това" -#: gitk:2884 msgid "Highlight this only" msgstr "Отбелязване само на това" -#: gitk:2885 msgid "External diff" msgstr "Външна програма за разлики" -#: gitk:2886 msgid "Blame parent commit" msgstr "Анотиране на родителското подаване" -#: gitk:2887 msgid "Copy path" msgstr "Копиране на пътя" -#: gitk:2894 msgid "Show origin of this line" msgstr "Показване на произхода на този ред" -#: gitk:2895 msgid "Run git gui blame on this line" msgstr "Изпълнение на „git gui blame“ върху този ред" -#: gitk:3188 msgid "About gitk" msgstr "Относно gitk" -#: gitk:3190 msgid "" "\n" "Gitk - a commit viewer for git\n" @@ -390,324 +299,250 @@ msgstr "" "\n" "Използвайте и разпространявайте при условията на ОПЛ на ГНУ" -#: gitk:3198 gitk:3265 gitk:10184 msgid "Close" msgstr "Затваряне" -#: gitk:3219 msgid "Gitk key bindings" msgstr "Клавишни комбинации" -#: gitk:3222 msgid "Gitk key bindings:" msgstr "Клавишни комбинации:" -#: gitk:3224 #, tcl-format msgid "<%s-Q>\t\tQuit" msgstr "<%s-Q>\t\tСпиране на програмата" -#: gitk:3225 #, tcl-format msgid "<%s-W>\t\tClose window" msgstr "<%s-W>\t\tЗатваряне на прозореца" -#: gitk:3226 msgid "\t\tMove to first commit" msgstr "\t\tКъм първото подаване" -#: gitk:3227 msgid "\t\tMove to last commit" msgstr "\t\tКъм последното подаване" -#: gitk:3228 msgid ", p, k\tMove up one commit" msgstr ", p, k\tЕдно подаване нагоре" -#: gitk:3229 msgid ", n, j\tMove down one commit" msgstr ", n, j\tЕдно подаване надолу" -#: gitk:3230 msgid ", z, h\tGo back in history list" msgstr ", z, h\tНазад в историята" -#: gitk:3231 msgid ", x, l\tGo forward in history list" msgstr ", x, l\tНапред в историята" -#: gitk:3232 #, tcl-format msgid "<%s-n>\tGo to n-th parent of current commit in history list" msgstr "<%s-n>\tКъм n-тия родител на текущото подаване в историята" -#: gitk:3233 msgid "\tMove up one page in commit list" msgstr "\tСтраница нагоре в списъка с подаванията" -#: gitk:3234 msgid "\tMove down one page in commit list" msgstr "\tСтраница надолу в списъка с подаванията" -#: gitk:3235 #, tcl-format msgid "<%s-Home>\tScroll to top of commit list" msgstr "<%s-Home>\tКъм началото на списъка с подаванията" -#: gitk:3236 #, tcl-format msgid "<%s-End>\tScroll to bottom of commit list" msgstr "<%s-End>\tКъм края на списъка с подаванията" -#: gitk:3237 #, tcl-format msgid "<%s-Up>\tScroll commit list up one line" msgstr "<%s-Up>\tРед нагоре в списъка с подавания" -#: gitk:3238 #, tcl-format msgid "<%s-Down>\tScroll commit list down one line" msgstr "<%s-Down>\tРед надолу в списъка с подавания" -#: gitk:3239 #, tcl-format msgid "<%s-PageUp>\tScroll commit list up one page" msgstr "<%s-PageUp>\tСтраница нагоре в списъка с подавания" -#: gitk:3240 #, tcl-format msgid "<%s-PageDown>\tScroll commit list down one page" msgstr "<%s-PageDown>\tСтраница надолу в списъка с подавания" -#: gitk:3241 msgid "\tFind backwards (upwards, later commits)" msgstr "\tТърсене назад (визуално нагоре, исторически — последващи)" -#: gitk:3242 msgid "\tFind forwards (downwards, earlier commits)" msgstr "" "\tТърсене напред (визуално надолу, исторически — предхождащи)" -#: gitk:3243 msgid ", b\tScroll diff view up one page" msgstr ", b\tСтраница нагоре в изгледа за разлики" -#: gitk:3244 msgid "\tScroll diff view up one page" msgstr "\tСтраница надолу в изгледа за разлики" -#: gitk:3245 msgid "\t\tScroll diff view down one page" msgstr "\t\tСтраница надолу в изгледа за разлики" -#: gitk:3246 msgid "u\t\tScroll diff view up 18 lines" msgstr "u\t\t18 реда нагоре в изгледа за разлики" -#: gitk:3247 msgid "d\t\tScroll diff view down 18 lines" msgstr "d\t\t18 реда надолу в изгледа за разлики" -#: gitk:3248 #, tcl-format msgid "<%s-F>\t\tFind" msgstr "<%s-F>\t\tТърсене" -#: gitk:3249 #, tcl-format msgid "<%s-G>\t\tMove to next find hit" msgstr "<%s-G>\t\tКъм следващата поява" -#: gitk:3250 msgid "\tMove to next find hit" msgstr "\tКъм следващата поява" -#: gitk:3251 msgid "g\t\tGo to commit" msgstr "g\t\tКъм последното подаване" -#: gitk:3252 msgid "/\t\tFocus the search box" msgstr "/\t\tФокус върху полето за търсене" -#: gitk:3253 msgid "?\t\tMove to previous find hit" msgstr "?\t\tКъм предишната поява" -#: gitk:3254 msgid "f\t\tScroll diff view to next file" msgstr "f\t\tСледващ файл в изгледа за разлики" -#: gitk:3255 #, tcl-format msgid "<%s-S>\t\tSearch for next hit in diff view" msgstr "<%s-S>\t\tТърсене на следващата поява в изгледа за разлики" -#: gitk:3256 #, tcl-format msgid "<%s-R>\t\tSearch for previous hit in diff view" msgstr "<%s-R>\t\tТърсене на предишната поява в изгледа за разлики" -#: gitk:3257 #, tcl-format msgid "<%s-KP+>\tIncrease font size" msgstr "<%s-KP+>\tПо-голям размер на шрифта" -#: gitk:3258 #, tcl-format msgid "<%s-plus>\tIncrease font size" msgstr "<%s-plus>\tПо-голям размер на шрифта" -#: gitk:3259 #, tcl-format msgid "<%s-KP->\tDecrease font size" msgstr "<%s-KP->\tПо-малък размер на шрифта" -#: gitk:3260 #, tcl-format msgid "<%s-minus>\tDecrease font size" msgstr "<%s-minus>\tПо-малък размер на шрифта" -#: gitk:3261 msgid "\t\tUpdate" msgstr "\t\tОбновяване" -#: gitk:3728 gitk:3737 #, tcl-format msgid "Error creating temporary directory %s:" msgstr "Грешка при създаването на временната директория „%s“:" -#: gitk:3750 #, tcl-format msgid "Error getting \"%s\" from %s:" msgstr "Грешка при получаването на „%s“ от %s:" -#: gitk:3813 msgid "command failed:" msgstr "неуспешно изпълнение на команда:" -#: gitk:3962 msgid "No such commit" msgstr "Такова подаване няма" -#: gitk:3976 msgid "git gui blame: command failed:" msgstr "„git gui blame“: неуспешно изпълнение на команда:" -#: gitk:4007 #, tcl-format msgid "Couldn't read merge head: %s" msgstr "Върхът за сливане не може да се прочете: %s" -#: gitk:4015 #, tcl-format msgid "Error reading index: %s" msgstr "Грешка при прочитане на индекса: %s" -#: gitk:4038 #, tcl-format msgid "Couldn't start git blame: %s" msgstr "Командата „git blame“ не може да се стартира: %s" -#: gitk:4041 gitk:6924 msgid "Searching" msgstr "Търсене" -#: gitk:4074 #, tcl-format msgid "Error running git blame: %s" msgstr "Грешка при изпълнението на „git blame“: %s" -#: gitk:4102 #, tcl-format msgid "That line comes from commit %s, which is not in this view" msgstr "Този ред идва от подаването %s, което не е в изгледа" -#: gitk:4116 msgid "External diff viewer failed:" msgstr "Неуспешно изпълнение на външната програма за разлики:" -#: gitk:4220 msgid "All files" msgstr "Всички файлове" -#: gitk:4244 msgid "View" msgstr "Изглед" -#: gitk:4247 msgid "Gitk view definition" msgstr "Дефиниция на изглед в Gitk" -#: gitk:4251 msgid "Remember this view" msgstr "Запазване на този изглед" -#: gitk:4252 msgid "References (space separated list):" msgstr "Указатели (списък с разделител интервал):" -#: gitk:4253 msgid "Branches & tags:" msgstr "Клони и етикети:" -#: gitk:4254 msgid "All refs" msgstr "Всички указатели" -#: gitk:4255 msgid "All (local) branches" msgstr "Всички (локални) клони" -#: gitk:4256 msgid "All tags" msgstr "Всички етикети" -#: gitk:4257 msgid "All remote-tracking branches" msgstr "Всички следящи клони" -#: gitk:4258 msgid "Commit Info (regular expressions):" msgstr "Информация за подаване (рег. изр.):" -#: gitk:4259 msgid "Author:" msgstr "Автор:" -#: gitk:4260 msgid "Committer:" msgstr "Подал:" -#: gitk:4261 msgid "Commit Message:" msgstr "Съобщение при подаване:" -#: gitk:4262 msgid "Matches all Commit Info criteria" msgstr "Съвпадение по всички характеристики на подаването" -#: gitk:4263 msgid "Matches no Commit Info criteria" msgstr "Не съвпада по никоя от характеристиките на подаването" -#: gitk:4264 msgid "Changes to Files:" msgstr "Промени по файловете:" -#: gitk:4265 msgid "Fixed String" msgstr "Дословен низ" -#: gitk:4266 msgid "Regular Expression" msgstr "Регулярен израз" -#: gitk:4267 msgid "Search string:" msgstr "Низ за търсене:" -#: gitk:4268 msgid "" "Commit Dates (\"2 weeks ago\", \"2009-03-17 15:27:38\", \"March 17, 2009 " "15:27:38\"):" @@ -715,208 +550,159 @@ msgstr "" "Дата на подаване („2 weeks ago“ (преди 2 седмици), „2009-03-17 15:27:38“, " "„March 17, 2009 15:27:38“):" -#: gitk:4269 msgid "Since:" msgstr "От:" -#: gitk:4270 msgid "Until:" msgstr "До:" -#: gitk:4271 msgid "Limit and/or skip a number of revisions (positive integer):" msgstr "" "Ограничаване и/или прескачане на определен брой версии (неотрицателно цяло " "число):" -#: gitk:4272 msgid "Number to show:" msgstr "Брой показани:" -#: gitk:4273 msgid "Number to skip:" msgstr "Брой прескочени:" -#: gitk:4274 msgid "Miscellaneous options:" msgstr "Разни:" -#: gitk:4275 msgid "Strictly sort by date" msgstr "Подреждане по дата" -#: gitk:4276 msgid "Mark branch sides" msgstr "Отбелязване на страните по клона" -#: gitk:4277 msgid "Limit to first parent" msgstr "Само първия родител" -#: gitk:4278 msgid "Simple history" msgstr "Опростена история" -#: gitk:4279 msgid "Additional arguments to git log:" msgstr "Допълнителни аргументи към „git log“:" -#: gitk:4280 msgid "Enter files and directories to include, one per line:" msgstr "Въведете файловете и директориите за включване, по елемент на ред" -#: gitk:4281 msgid "Command to generate more commits to include:" msgstr "" "Команда за генерирането на допълнителни подавания, които да се включат:" -#: gitk:4405 msgid "Gitk: edit view" msgstr "Gitk: редактиране на изглед" -#: gitk:4413 msgid "-- criteria for selecting revisions" msgstr "— критерии за избор на версии" -#: gitk:4418 msgid "View Name" msgstr "Име на изглед" -#: gitk:4493 msgid "Apply (F5)" msgstr "Прилагане (F5)" -#: gitk:4531 msgid "Error in commit selection arguments:" msgstr "Грешка в аргументите за избор на подавания:" -#: gitk:4586 gitk:4639 gitk:5101 gitk:5115 gitk:6384 gitk:12724 gitk:12725 msgid "None" msgstr "Няма" -#: gitk:5198 gitk:5203 msgid "Descendant" msgstr "Наследник" -#: gitk:5199 msgid "Not descendant" msgstr "Не е наследник" -#: gitk:5206 gitk:5211 msgid "Ancestor" msgstr "Предшественик" -#: gitk:5207 msgid "Not ancestor" msgstr "Не е предшественик" -#: gitk:5500 msgid "Local changes checked in to index but not committed" msgstr "Локални промени добавени към индекса, но неподадени" -#: gitk:5536 msgid "Local uncommitted changes, not checked in to index" msgstr "Локални промени извън индекса" -#: gitk:7280 msgid "Error starting web browser:" msgstr "Грешка при стартирането на уеб браузър:" -#: gitk:7341 msgid "and many more" msgstr "и още много" -#: gitk:7344 msgid "many" msgstr "много" -#: gitk:7539 msgid "Tags:" msgstr "Етикети:" -#: gitk:7556 gitk:7562 gitk:9033 msgid "Parent" msgstr "Родител" -#: gitk:7567 msgid "Child" msgstr "Дете" -#: gitk:7576 msgid "Branch" msgstr "Клон" -#: gitk:7579 msgid "Follows" msgstr "Следва" -#: gitk:7582 msgid "Precedes" msgstr "Предшества" -#: gitk:8166 #, tcl-format msgid "Error getting diffs: %s" msgstr "Грешка при получаването на разликите: %s" -#: gitk:8857 msgid "Goto:" msgstr "Към ред:" -#: gitk:8879 #, tcl-format msgid "Short commit ID %s is ambiguous" msgstr "Съкратената контролна сума %s не е еднозначна" -#: gitk:8886 #, tcl-format msgid "Revision %s is not known" msgstr "Непозната версия %s" -#: gitk:8896 #, tcl-format msgid "Commit ID %s is not known" msgstr "Непозната контролна сума %s" -#: gitk:8898 #, tcl-format msgid "Revision %s is not in the current view" msgstr "Версия %s не е в текущия изглед" -#: gitk:9040 gitk:9055 msgid "Date" msgstr "Дата" -#: gitk:9043 msgid "Children" msgstr "Деца" -#: gitk:9106 #, tcl-format msgid "Reset %s branch to here" msgstr "Зануляване на клона „%s“ към текущото подаване" -#: gitk:9108 msgid "Detached head: can't reset" msgstr "Несвързан връх: невъзможно зануляване" -#: gitk:9211 gitk:9217 msgid "Skipping merge commit " msgstr "Пропускане на подаването на сливането" -#: gitk:9226 gitk:9231 msgid "Error getting patch ID for " msgstr "Грешка при получаването на идентификатора на " -#: gitk:9227 gitk:9232 msgid " - stopping\n" msgstr " — спиране\n" -#: gitk:9237 gitk:9240 gitk:9248 gitk:9262 gitk:9271 msgid "Commit " msgstr "Подаване" -#: gitk:9241 msgid "" " is the same patch as\n" " " @@ -924,7 +710,6 @@ msgstr "" " е същата кръпка като\n" " " -#: gitk:9249 msgid "" " differs from\n" " " @@ -932,7 +717,6 @@ msgstr "" " се различава от\n" " " -#: gitk:9251 msgid "" "Diff of commits:\n" "\n" @@ -940,147 +724,113 @@ msgstr "" "Разлика между подаванията:\n" "\n" -#: gitk:9263 gitk:9272 #, tcl-format msgid " has %s children - stopping\n" msgstr " има %s деца — спиране\n" -#: gitk:9291 #, tcl-format msgid "Error writing commit to file: %s" msgstr "Грешка при запазването на подаването във файл: %s" -#: gitk:9297 #, tcl-format msgid "Error diffing commits: %s" msgstr "Грешка при изчисляването на разликите между подаванията: %s" -#: gitk:9343 msgid "Top" msgstr "Най-горе" -#: gitk:9344 msgid "From" msgstr "От" -#: gitk:9349 msgid "To" msgstr "До" -#: gitk:9374 msgid "Generate patch" msgstr "Генериране на кръпка" -#: gitk:9376 msgid "From:" msgstr "От:" -#: gitk:9385 msgid "To:" msgstr "До:" -#: gitk:9394 msgid "Reverse" msgstr "Обръщане" -#: gitk:9396 gitk:9606 msgid "Output file:" msgstr "Запазване във файла:" -#: gitk:9402 msgid "Generate" msgstr "Генериране" -#: gitk:9437 msgid "Error creating patch:" msgstr "Грешка при създаването на кръпка:" -#: gitk:9461 gitk:9594 gitk:9682 msgid "ID:" msgstr "Идентификатор:" -#: gitk:9470 msgid "Tag name:" msgstr "Име на етикет:" -#: gitk:9473 msgid "Tag message is optional" msgstr "Съобщението за етикет е незадължително" -#: gitk:9475 msgid "Tag message:" msgstr "Съобщение за етикет:" -#: gitk:9479 gitk:9652 msgid "Create" msgstr "Създаване" -#: gitk:9497 msgid "No tag name specified" msgstr "Липсва име на етикет" -#: gitk:9501 #, tcl-format msgid "Tag \"%s\" already exists" msgstr "Етикетът „%s“ вече съществува" -#: gitk:9511 msgid "Error creating tag:" msgstr "Грешка при създаването на етикет:" -#: gitk:9603 msgid "Command:" msgstr "Команда:" -#: gitk:9611 msgid "Write" msgstr "Запазване" -#: gitk:9629 msgid "Error writing commit:" msgstr "Грешка при запазването на подаването:" -#: gitk:9651 msgid "Create branch" msgstr "Създаване на клон" -#: gitk:9666 #, tcl-format msgid "Rename branch %s" msgstr "Преименуване на клона „%s“" -#: gitk:9667 msgid "Rename" msgstr "Преименуване" -#: gitk:9692 msgid "Name:" msgstr "Име:" -#: gitk:9716 msgid "Please specify a name for the new branch" msgstr "Укажете име за новия клон" -#: gitk:9721 #, tcl-format msgid "Branch '%s' already exists. Overwrite?" msgstr "Клонът „%s“ вече съществува. Да се презапише ли?" -#: gitk:9765 msgid "Please specify a new name for the branch" msgstr "Укажете ново име за клона" -#: gitk:9828 #, tcl-format msgid "Commit %s is already included in branch %s -- really re-apply it?" msgstr "" "Подаването „%s“ вече е включено в клона „%s“ — да се приложи ли отново?" -#: gitk:9833 msgid "Cherry-picking" msgstr "Отбиране" -#: gitk:9842 #, tcl-format msgid "" "Cherry-pick failed because of local changes to file '%s'.\n" @@ -1089,7 +839,6 @@ msgstr "" "Неуспешно отбиране, защото във файла „%s“ има локални промени.\n" "Подайте, занулете или ги скатайте и пробвайте отново." -#: gitk:9848 msgid "" "Cherry-pick failed because of merge conflict.\n" "Do you wish to run git citool to resolve it?" @@ -1097,20 +846,16 @@ msgstr "" "Неуспешно отбиране поради конфликти при сливане.\n" "Искате ли да ги коригирате чрез „git citool“?" -#: gitk:9864 gitk:9922 msgid "No changes committed" msgstr "Не са подадени промени" -#: gitk:9891 #, tcl-format msgid "Commit %s is not included in branch %s -- really revert it?" msgstr "Подаването „%s“ не е включено в клона „%s“. Да се отменени ли?" -#: gitk:9896 msgid "Reverting" msgstr "Отмяна" -#: gitk:9904 #, tcl-format msgid "" "Revert failed because of local changes to the following files:%s Please " @@ -1119,7 +864,6 @@ msgstr "" "Неуспешна отмяна, защото във файла „%s“ има локални промени.\n" "Подайте, занулете или ги скатайте и пробвайте отново." -#: gitk:9908 msgid "" "Revert failed because of merge conflict.\n" " Do you wish to run git citool to resolve it?" @@ -1127,28 +871,22 @@ msgstr "" "Неуспешно отмяна поради конфликти при сливане.\n" "Искате ли да ги коригирате чрез „git citool“?" -#: gitk:9951 msgid "Confirm reset" msgstr "Потвърждаване на зануляването" -#: gitk:9953 #, tcl-format msgid "Reset branch %s to %s?" msgstr "Да се занули ли клонът „%s“ към „%s“?" -#: gitk:9955 msgid "Reset type:" msgstr "Вид зануляване:" -#: gitk:9958 msgid "Soft: Leave working tree and index untouched" msgstr "Слабо: работното дърво и индекса остават същите" -#: gitk:9961 msgid "Mixed: Leave working tree untouched, reset index" msgstr "Смесено: работното дърво остава същото, индексът се занулява" -#: gitk:9964 msgid "" "Hard: Reset working tree and index\n" "(discard ALL local changes)" @@ -1156,24 +894,19 @@ msgstr "" "Силно: зануляване и на работното дърво, и на индекса\n" "(ВСИЧКИ локални промени ще се загубят безвъзвратно)" -#: gitk:9981 msgid "Resetting" msgstr "Зануляване" -#: gitk:10054 #, tcl-format msgid "A local branch named %s exists already" msgstr "Вече съществува локален клон „%s“." -#: gitk:10061 msgid "Checking out" msgstr "Изтегляне" -#: gitk:10120 msgid "Cannot delete the currently checked-out branch" msgstr "Текущо изтегленият клон не може да се изтрие" -#: gitk:10126 #, tcl-format msgid "" "The commits on branch %s aren't on any other branch.\n" @@ -1182,20 +915,16 @@ msgstr "" "Подаванията на клона „%s“ не са на никой друг клон.\n" "Наистина ли искате да изтриете клона „%s“?" -#: gitk:10157 #, tcl-format msgid "Tags and heads: %s" msgstr "Етикети и върхове: %s" -#: gitk:10174 msgid "Filter" msgstr "Филтриране" -#: gitk:10181 msgid "Sort refs by type" msgstr "Подредба на указателите по вид" -#: gitk:10513 msgid "" "Error reading commit topology information; branch and preceding/following " "tag information will be incomplete." @@ -1203,221 +932,167 @@ msgstr "" "Грешка при прочитането на топологията на подаванията. Информацията за клона " "и предшестващите/следващите етикети ще е непълна." -#: gitk:11490 msgid "Tag" msgstr "Етикет" -#: gitk:11494 msgid "Id" msgstr "Идентификатор" -#: gitk:11635 msgid "Commit list display options" msgstr "Настройки на списъка с подавания" -#: gitk:11638 msgid "Maximum graph width (lines)" msgstr "Максимална широчина на графа (в редове)" -#: gitk:11642 #, no-tcl-format msgid "Maximum graph width (% of pane)" msgstr "Максимална широчина на графа (% от панела)" -#: gitk:11645 msgid "Show local changes" msgstr "Показване на локалните промени" -#: gitk:11648 msgid "Hide remote refs" msgstr "Скриване на отдалечените указатели" -#: gitk:11652 msgid "Copy commit ID to clipboard" msgstr "Копиране на контролната сума към буфера за обмен" -#: gitk:11656 msgid "Copy commit ID to X11 selection" msgstr "Копиране на контролната сума в селекцията на X11" -#: gitk:11662 msgid "Length of commit ID to copy" msgstr "Дължина на контролната сума, която се копира" -#: gitk:11664 msgid "Wheel scrolling multiplier" msgstr "Множител за колелцето на мишката" -#: gitk:11668 msgid "Diff display options" msgstr "Настройки на показването на разликите" -#: gitk:11670 msgid "Tab spacing" msgstr "Широчина на табулатора" -#: gitk:11674 msgid "Wrap comment text" msgstr "Пренасяне на думите в коментарите" -#: gitk:11678 msgid "Wrap other text" msgstr "Пренасяне на другия текст" -#: gitk:11682 msgid "Display nearby tags/heads" msgstr "Извеждане на близките етикети и върхове" -#: gitk:11685 msgid "Maximum # tags/heads to show" msgstr "Максимален брой етикети/върхове за показване" -#: gitk:11688 msgid "Limit diffs to listed paths" msgstr "Разлика само в избраните пътища" -#: gitk:11691 msgid "Support per-file encodings" msgstr "Поддръжка на различни кодирания за всеки файл" -#: gitk:11697 gitk:11835 msgid "External diff tool" msgstr "Външен инструмент за разлики" -#: gitk:11698 msgid "Choose..." msgstr "Избор…" -#: gitk:11705 msgid "Web browser" msgstr "Уеб браузър" -#: gitk:11719 msgid "Colors: press to choose" msgstr "Цветове: избира се с натискане" -#: gitk:11722 msgid "Interface" msgstr "Интерфейс" -#: gitk:11723 msgid "interface" msgstr "интерфейс" -#: gitk:11726 msgid "Background" msgstr "Фон" -#: gitk:11727 gitk:11769 msgid "background" msgstr "фон" -#: gitk:11730 msgid "Foreground" msgstr "Знаци" -#: gitk:11731 msgid "foreground" msgstr "знаци" -#: gitk:11734 msgid "Diff: old lines" msgstr "Разлика: стари редове" -#: gitk:11735 msgid "diff old lines" msgstr "разлика, стари редове" -#: gitk:11739 msgid "Diff: old lines bg" msgstr "Разлика: фон на стари редове" -#: gitk:11741 msgid "diff old lines bg" msgstr "разлика, фон на стари редове" -#: gitk:11745 msgid "Diff: new lines" msgstr "Разлика: нови редове" -#: gitk:11746 msgid "diff new lines" msgstr "разлика, нови редове" -#: gitk:11750 msgid "Diff: new lines bg" msgstr "Разлика: фон на нови редове" -#: gitk:11752 msgid "diff new lines bg" msgstr "разлика, фон на нови редове" -#: gitk:11756 msgid "Diff: hunk header" msgstr "Разлика: начало на парче" -#: gitk:11758 msgid "diff hunk header" msgstr "разлика, начало на парче" -#: gitk:11762 msgid "Marked line bg" msgstr "Фон на отбелязан ред" -#: gitk:11764 msgid "marked line background" msgstr "фон на отбелязан ред" -#: gitk:11768 msgid "Select bg" msgstr "Избор на фон" -#: gitk:11776 msgid "Fonts: press to choose" msgstr "Шрифтове: избира се с натискане" -#: gitk:11778 msgid "Main font" msgstr "Основен шрифт" -#: gitk:11779 msgid "Diff display font" msgstr "Шрифт за разликите" -#: gitk:11780 msgid "User interface font" msgstr "Шрифт на интерфейса" -#: gitk:11798 msgid "Gitk preferences" msgstr "Настройки на Gitk" -#: gitk:11803 msgid "General" msgstr "Общи" -#: gitk:11804 msgid "Colors" msgstr "Цветове" -#: gitk:11805 msgid "Fonts" msgstr "Шрифтове" -#: gitk:11845 #, tcl-format msgid "Gitk: choose color for %s" msgstr "Gitk: избор на цвят на „%s“" -#: gitk:12633 msgid "Cannot find a git repository here." msgstr "Тук липсва хранилище на Git." -#: gitk:12680 #, tcl-format msgid "Ambiguous argument '%s': both revision and filename" msgstr "Нееднозначен аргумент „%s“: има и такава версия, и такъв файл" -#: gitk:12692 msgid "Bad arguments to gitk:" msgstr "Неправилни аргументи на gitk:" From dfd9b38809519bad72dbe6833143c5409165840b Mon Sep 17 00:00:00 2001 From: Alexander Shopov Date: Mon, 28 Jul 2025 13:20:01 +0200 Subject: [PATCH 21/35] git-gui i18n: Update Bulgarian translation (557t) Signed-off-by: Alexander Shopov --- po/bg.po | 913 ++++++++++++++++++++++++------------------------------- 1 file changed, 399 insertions(+), 514 deletions(-) diff --git a/po/bg.po b/po/bg.po index 70ab2b438ab6d5..b252c8c3f37564 100644 --- a/po/bg.po +++ b/po/bg.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: git-gui master\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-04-20 09:27+0200\n" -"PO-Revision-Date: 2025-05-29 13:37+0200\n" +"POT-Creation-Date: 2025-07-22 17:37+0200\n" +"PO-Revision-Date: 2025-07-28 11:56+0200\n" "Last-Translator: Alexander Shopov \n" "Language-Team: Bulgarian \n" "Language: bg\n" @@ -18,88 +18,77 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: git-gui.sh:861 +#: git-gui.sh:819 #, tcl-format msgid "Invalid font specified in %s:" msgstr "Указан е неправилен шрифт в „%s“:" -#: git-gui.sh:924 +#: git-gui.sh:873 msgid "Main Font" msgstr "Основен шрифт" -#: git-gui.sh:925 +#: git-gui.sh:874 msgid "Diff/Console Font" msgstr "Шрифт за разликите/конзолата" -#: git-gui.sh:940 git-gui.sh:954 git-gui.sh:967 git-gui.sh:1057 git-gui.sh:1076 -#: git-gui.sh:3217 +#: git-gui.sh:889 git-gui.sh:905 git-gui.sh:919 git-gui.sh:948 git-gui.sh:964 +#: git-gui.sh:3061 msgid "git-gui: fatal error" msgstr "git-gui: фатална грешка" -#: git-gui.sh:941 +#: git-gui.sh:890 msgid "Cannot find git in PATH." msgstr "Командата git липсва в пътя (PATH)." -#: git-gui.sh:968 +#: git-gui.sh:920 msgid "Cannot parse Git version string:" msgstr "Низът с версията на Git не може да се анализира:" -#: git-gui.sh:993 -#, tcl-format -msgid "" -"Git version cannot be determined.\n" -"\n" -"%s claims it is version '%s'.\n" -"\n" -"%s requires at least Git 1.5.0 or later.\n" -"\n" -"Assume '%s' is version 1.5.0?\n" -msgstr "" -"Версията на Git не може да се определи.\n" -"\n" -"Версията на „%s“ изглежда, че е „%s“.\n" -"\n" -"„%s“ изисква Git, версия поне 1.5.0.\n" -"\n" -"Да се приеме ли, че „%s“ е версия „1.5.0“?\n" +#: git-gui.sh:941 +msgid "Insufficient git version, require: " +msgstr "Прекалено ниска версия на git, необходима е поне: " + +#: git-gui.sh:942 +msgid "git returned:" +msgstr "git върна:" -#: git-gui.sh:1287 +#: git-gui.sh:1164 msgid "Git directory not found:" msgstr "Директорията на Git не е открита:" -#: git-gui.sh:1317 +#: git-gui.sh:1181 msgid "Cannot move to top of working directory:" msgstr "Не може да се премине към родителската директория." -#: git-gui.sh:1325 +#: git-gui.sh:1189 msgid "Cannot use bare repository:" msgstr "Голо хранилище не може да се използва:" -#: git-gui.sh:1333 +#: git-gui.sh:1197 msgid "No working directory" msgstr "Работната директория липсва" -#: git-gui.sh:1507 lib/checkout_op.tcl:306 +#: git-gui.sh:1371 lib/checkout_op.tcl:306 msgid "Refreshing file status..." msgstr "Обновяване на състоянието на файла…" -#: git-gui.sh:1551 +#: git-gui.sh:1404 msgid "Scanning for modified files ..." msgstr "Проверка за променени файлове…" -#: git-gui.sh:1635 +#: git-gui.sh:1484 msgid "Calling prepare-commit-msg hook..." msgstr "Куката „prepare-commit-msg“ се изпълнява в момента…" -#: git-gui.sh:1652 +#: git-gui.sh:1501 msgid "Commit declined by prepare-commit-msg hook." msgstr "Подаването е отхвърлено от куката „prepare-commit-msg“." -#: git-gui.sh:1810 lib/browser.tcl:252 +#: git-gui.sh:1659 lib/browser.tcl:250 msgid "Ready." msgstr "Готово." -#: git-gui.sh:1974 +#: git-gui.sh:1822 #, tcl-format msgid "" "Display limit (gui.maxfilesdisplayed = %s) reached, not showing all %s files." @@ -108,473 +97,473 @@ msgstr "" "извеждане(gui.maxfilesdisplayed = %s), съответно не са показани всички %s " "файла." -#: git-gui.sh:2097 +#: git-gui.sh:1945 msgid "Unmodified" msgstr "Непроменен" -#: git-gui.sh:2099 +#: git-gui.sh:1947 msgid "Modified, not staged" msgstr "Променен, но не е в индекса" -#: git-gui.sh:2100 git-gui.sh:2112 +#: git-gui.sh:1948 git-gui.sh:1960 msgid "Staged for commit" msgstr "В индекса за подаване" -#: git-gui.sh:2101 git-gui.sh:2113 +#: git-gui.sh:1949 git-gui.sh:1961 msgid "Portions staged for commit" msgstr "Части са в индекса за подаване" -#: git-gui.sh:2102 git-gui.sh:2114 +#: git-gui.sh:1950 git-gui.sh:1962 msgid "Staged for commit, missing" msgstr "В индекса за подаване, но липсва" -#: git-gui.sh:2104 +#: git-gui.sh:1952 msgid "File type changed, not staged" msgstr "Видът на файла е сменен, но не е в индекса" -#: git-gui.sh:2105 git-gui.sh:2106 +#: git-gui.sh:1953 git-gui.sh:1954 msgid "File type changed, old type staged for commit" msgstr "Видът на файла е сменен, но новият вид не е в индекса" -#: git-gui.sh:2107 +#: git-gui.sh:1955 msgid "File type changed, staged" msgstr "Видът на файла е сменен и е в индекса" -#: git-gui.sh:2108 +#: git-gui.sh:1956 msgid "File type change staged, modification not staged" msgstr "Видът на файла е сменен в индекса, но не и съдържанието" -#: git-gui.sh:2109 +#: git-gui.sh:1957 msgid "File type change staged, file missing" msgstr "Видът на файла е сменен в индекса, но файлът липсва" -#: git-gui.sh:2111 +#: git-gui.sh:1959 msgid "Untracked, not staged" msgstr "Неследен" -#: git-gui.sh:2116 +#: git-gui.sh:1964 msgid "Missing" msgstr "Липсващ" -#: git-gui.sh:2117 +#: git-gui.sh:1965 msgid "Staged for removal" msgstr "В индекса за изтриване" -#: git-gui.sh:2118 +#: git-gui.sh:1966 msgid "Staged for removal, still present" msgstr "В индекса за изтриване, но още го има" -#: git-gui.sh:2120 git-gui.sh:2121 git-gui.sh:2122 git-gui.sh:2123 -#: git-gui.sh:2124 git-gui.sh:2125 +#: git-gui.sh:1968 git-gui.sh:1969 git-gui.sh:1970 git-gui.sh:1971 +#: git-gui.sh:1972 git-gui.sh:1973 msgid "Requires merge resolution" msgstr "Изисква коригиране при сливане" -#: git-gui.sh:2170 +#: git-gui.sh:2018 msgid "Couldn't find gitk in PATH" msgstr "Командата „gitk“ липсва в пътищата, определени от променливата PATH." -#: git-gui.sh:2217 git-gui.sh:2253 +#: git-gui.sh:2065 git-gui.sh:2101 #, tcl-format msgid "Starting %s... please wait..." msgstr "Стартиране на „%s“…, изчакайте…" -#: git-gui.sh:2232 +#: git-gui.sh:2080 msgid "Couldn't find git gui in PATH" msgstr "" "Командата „git gui“ липсва в пътищата, определени от променливата PATH." -#: git-gui.sh:2735 lib/choose_repository.tcl:53 +#: git-gui.sh:2580 lib/choose_repository.tcl:43 msgid "Repository" msgstr "Хранилище" -#: git-gui.sh:2736 +#: git-gui.sh:2581 msgid "Edit" msgstr "Редактиране" -#: git-gui.sh:2738 lib/choose_rev.tcl:567 +#: git-gui.sh:2583 lib/choose_rev.tcl:557 msgid "Branch" msgstr "Клон" -#: git-gui.sh:2741 lib/choose_rev.tcl:554 +#: git-gui.sh:2586 lib/choose_rev.tcl:544 msgid "Commit@@noun" msgstr "Подаване" -#: git-gui.sh:2744 lib/merge.tcl:127 lib/merge.tcl:174 +#: git-gui.sh:2589 lib/merge.tcl:118 lib/merge.tcl:165 msgid "Merge" msgstr "Сливане" -#: git-gui.sh:2745 lib/choose_rev.tcl:563 +#: git-gui.sh:2590 lib/choose_rev.tcl:553 msgid "Remote" msgstr "Отдалечено хранилище" -#: git-gui.sh:2748 +#: git-gui.sh:2593 msgid "Tools" msgstr "Команди" -#: git-gui.sh:2757 +#: git-gui.sh:2602 msgid "Explore Working Copy" msgstr "Разглеждане на работното копие" -#: git-gui.sh:2772 +#: git-gui.sh:2615 msgid "Git Bash" msgstr "Bash за Git" -#: git-gui.sh:2781 +#: git-gui.sh:2625 msgid "Browse Current Branch's Files" msgstr "Разглеждане на файловете в текущия клон" -#: git-gui.sh:2785 +#: git-gui.sh:2629 msgid "Browse Branch Files..." msgstr "Разглеждане на текущия клон…" -#: git-gui.sh:2790 +#: git-gui.sh:2634 msgid "Visualize Current Branch's History" msgstr "Визуализация на историята на текущия клон" -#: git-gui.sh:2794 +#: git-gui.sh:2638 msgid "Visualize All Branch History" msgstr "Визуализация на историята на всички клонове" -#: git-gui.sh:2801 +#: git-gui.sh:2645 #, tcl-format msgid "Browse %s's Files" msgstr "Разглеждане на файловете в „%s“" -#: git-gui.sh:2803 +#: git-gui.sh:2647 #, tcl-format msgid "Visualize %s's History" msgstr "Визуализация на историята на „%s“" -#: git-gui.sh:2808 lib/database.tcl:40 +#: git-gui.sh:2652 lib/database.tcl:39 msgid "Database Statistics" msgstr "Статистика на базата от данни" -#: git-gui.sh:2811 lib/database.tcl:33 +#: git-gui.sh:2655 lib/database.tcl:32 msgid "Compress Database" msgstr "Компресиране на базата от данни" -#: git-gui.sh:2814 +#: git-gui.sh:2658 msgid "Verify Database" msgstr "Проверка на базата от данни" -#: git-gui.sh:2821 git-gui.sh:2825 git-gui.sh:2829 +#: git-gui.sh:2665 git-gui.sh:2669 git-gui.sh:2673 msgid "Create Desktop Icon" msgstr "Добавяне на икона на работния плот" -#: git-gui.sh:2837 lib/choose_repository.tcl:206 lib/choose_repository.tcl:214 +#: git-gui.sh:2681 lib/choose_repository.tcl:196 lib/choose_repository.tcl:204 msgid "Quit" msgstr "Спиране на програмата" -#: git-gui.sh:2845 +#: git-gui.sh:2689 msgid "Undo" msgstr "Отмяна" -#: git-gui.sh:2848 +#: git-gui.sh:2692 msgid "Redo" msgstr "Повторение" -#: git-gui.sh:2852 git-gui.sh:3477 +#: git-gui.sh:2696 git-gui.sh:3297 msgid "Cut" msgstr "Отрязване" -#: git-gui.sh:2855 git-gui.sh:3480 git-gui.sh:3556 git-gui.sh:3651 +#: git-gui.sh:2699 git-gui.sh:3300 git-gui.sh:3376 git-gui.sh:3471 #: lib/console.tcl:69 msgid "Copy" msgstr "Копиране" -#: git-gui.sh:2858 git-gui.sh:3483 +#: git-gui.sh:2702 git-gui.sh:3303 msgid "Paste" msgstr "Поставяне" -#: git-gui.sh:2861 git-gui.sh:3486 lib/branch_delete.tcl:28 +#: git-gui.sh:2705 git-gui.sh:3306 lib/branch_delete.tcl:28 #: lib/remote_branch_delete.tcl:39 msgid "Delete" msgstr "Изтриване" -#: git-gui.sh:2865 git-gui.sh:3490 git-gui.sh:3655 lib/console.tcl:71 +#: git-gui.sh:2709 git-gui.sh:3310 git-gui.sh:3475 lib/console.tcl:71 msgid "Select All" msgstr "Избиране на всичко" -#: git-gui.sh:2874 +#: git-gui.sh:2718 msgid "Create..." msgstr "Създаване…" -#: git-gui.sh:2880 +#: git-gui.sh:2724 msgid "Checkout..." msgstr "Изтегляне…" -#: git-gui.sh:2886 +#: git-gui.sh:2730 msgid "Rename..." msgstr "Преименуване…" -#: git-gui.sh:2891 +#: git-gui.sh:2735 msgid "Delete..." msgstr "Изтриване…" -#: git-gui.sh:2896 +#: git-gui.sh:2740 msgid "Reset..." msgstr "Отмяна на промените…" -#: git-gui.sh:2906 +#: git-gui.sh:2750 msgid "Done" msgstr "Готово" -#: git-gui.sh:2908 +#: git-gui.sh:2752 msgid "Commit@@verb" msgstr "Подаване" -#: git-gui.sh:2917 git-gui.sh:3416 +#: git-gui.sh:2761 git-gui.sh:3236 msgid "Amend Last Commit" msgstr "Поправяне на последното подаване" -#: git-gui.sh:2927 git-gui.sh:3377 lib/remote_branch_delete.tcl:101 +#: git-gui.sh:2771 git-gui.sh:3197 lib/remote_branch_delete.tcl:97 msgid "Rescan" msgstr "Обновяване" -#: git-gui.sh:2933 +#: git-gui.sh:2777 msgid "Stage To Commit" msgstr "Към индекса за подаване" -#: git-gui.sh:2939 +#: git-gui.sh:2783 msgid "Stage Changed Files To Commit" msgstr "Всички променени файлове към индекса за подаване" -#: git-gui.sh:2945 +#: git-gui.sh:2789 msgid "Unstage From Commit" msgstr "Изваждане от индекса за подаване" -#: git-gui.sh:2951 lib/index.tcl:521 +#: git-gui.sh:2795 lib/index.tcl:519 msgid "Revert Changes" msgstr "Връщане на оригинала" -#: git-gui.sh:2959 git-gui.sh:3718 git-gui.sh:3749 +#: git-gui.sh:2803 git-gui.sh:3538 git-gui.sh:3569 msgid "Show Less Context" msgstr "По-малко контекст" -#: git-gui.sh:2963 git-gui.sh:3722 git-gui.sh:3753 +#: git-gui.sh:2807 git-gui.sh:3542 git-gui.sh:3573 msgid "Show More Context" msgstr "Повече контекст" -#: git-gui.sh:2970 git-gui.sh:3390 git-gui.sh:3501 +#: git-gui.sh:2814 git-gui.sh:3210 git-gui.sh:3321 msgid "Sign Off" msgstr "Подписване" -#: git-gui.sh:2986 +#: git-gui.sh:2830 msgid "Local Merge..." msgstr "Локално сливане…" -#: git-gui.sh:2991 +#: git-gui.sh:2835 msgid "Abort Merge..." msgstr "Преустановяване на сливане…" -#: git-gui.sh:3003 git-gui.sh:3031 +#: git-gui.sh:2847 git-gui.sh:2875 msgid "Add..." msgstr "Добавяне…" -#: git-gui.sh:3007 +#: git-gui.sh:2851 msgid "Push..." msgstr "Изтласкване…" -#: git-gui.sh:3011 +#: git-gui.sh:2855 msgid "Delete Branch..." msgstr "Изтриване на клон…" -#: git-gui.sh:3021 git-gui.sh:3684 +#: git-gui.sh:2865 git-gui.sh:3504 msgid "Options..." msgstr "Опции…" -#: git-gui.sh:3032 +#: git-gui.sh:2876 msgid "Remove..." msgstr "Премахване…" -#: git-gui.sh:3041 lib/choose_repository.tcl:67 +#: git-gui.sh:2885 lib/choose_repository.tcl:57 msgid "Help" msgstr "Помощ" -#: git-gui.sh:3045 git-gui.sh:3049 lib/about.tcl:14 -#: lib/choose_repository.tcl:61 lib/choose_repository.tcl:70 +#: git-gui.sh:2889 git-gui.sh:2893 lib/about.tcl:14 +#: lib/choose_repository.tcl:51 lib/choose_repository.tcl:60 #, tcl-format msgid "About %s" msgstr "Относно „%s“" -#: git-gui.sh:3069 +#: git-gui.sh:2913 msgid "Online Documentation" msgstr "Документация в Интернет" -#: git-gui.sh:3072 lib/choose_repository.tcl:64 lib/choose_repository.tcl:73 +#: git-gui.sh:2916 lib/choose_repository.tcl:54 lib/choose_repository.tcl:63 msgid "Show SSH Key" msgstr "Показване на ключа за SSH" -#: git-gui.sh:3102 git-gui.sh:3234 +#: git-gui.sh:2946 git-gui.sh:3078 msgid "usage:" msgstr "употреба:" -#: git-gui.sh:3106 git-gui.sh:3238 +#: git-gui.sh:2950 git-gui.sh:3082 msgid "Usage" msgstr "Употреба" -#: git-gui.sh:3187 lib/blame.tcl:576 +#: git-gui.sh:3031 lib/blame.tcl:578 msgid "Error" msgstr "Грешка" -#: git-gui.sh:3218 +#: git-gui.sh:3062 #, tcl-format msgid "fatal: cannot stat path %s: No such file or directory" msgstr "ФАТАЛНА ГРЕШКА: пътят „%s“ липсва: такъв файл или директория няма" -#: git-gui.sh:3251 +#: git-gui.sh:3094 msgid "Current Branch:" msgstr "Текущ клон:" -#: git-gui.sh:3276 +#: git-gui.sh:3115 msgid "Unstaged Changes" msgstr "Промени извън индекса" -#: git-gui.sh:3298 +#: git-gui.sh:3137 msgid "Staged Changes (Will Commit)" msgstr "Промени в индекса (за подаване)" -#: git-gui.sh:3383 +#: git-gui.sh:3203 msgid "Stage Changed" msgstr "Индексът е променен" -#: git-gui.sh:3402 lib/transport.tcl:137 +#: git-gui.sh:3222 lib/transport.tcl:137 msgid "Push" msgstr "Изтласкване" -#: git-gui.sh:3429 +#: git-gui.sh:3249 msgid "Initial Commit Message:" msgstr "Първоначално съобщение при подаване:" -#: git-gui.sh:3430 +#: git-gui.sh:3250 msgid "Amended Commit Message:" msgstr "Поправено съобщение при подаване:" -#: git-gui.sh:3431 +#: git-gui.sh:3251 msgid "Amended Initial Commit Message:" msgstr "Поправено първоначално съобщение при подаване:" -#: git-gui.sh:3432 +#: git-gui.sh:3252 msgid "Amended Merge Commit Message:" msgstr "Поправено съобщение при подаване със сливане:" -#: git-gui.sh:3433 +#: git-gui.sh:3253 msgid "Merge Commit Message:" msgstr "Съобщение при подаване със сливане:" -#: git-gui.sh:3434 +#: git-gui.sh:3254 msgid "Commit Message:" msgstr "Съобщение при подаване:" -#: git-gui.sh:3493 git-gui.sh:3659 lib/console.tcl:73 +#: git-gui.sh:3313 git-gui.sh:3479 lib/console.tcl:73 msgid "Copy All" msgstr "Копиране на всичко" -#: git-gui.sh:3517 lib/blame.tcl:106 +#: git-gui.sh:3337 lib/blame.tcl:106 msgid "File:" msgstr "Файл:" -#: git-gui.sh:3565 lib/choose_repository.tcl:1054 +#: git-gui.sh:3385 lib/choose_repository.tcl:659 msgid "Open" msgstr "Отваряне" -#: git-gui.sh:3647 +#: git-gui.sh:3467 msgid "Refresh" msgstr "Обновяване" -#: git-gui.sh:3668 +#: git-gui.sh:3488 msgid "Decrease Font Size" msgstr "По-дребен шрифт" -#: git-gui.sh:3672 +#: git-gui.sh:3492 msgid "Increase Font Size" msgstr "По-едър шрифт" -#: git-gui.sh:3680 lib/blame.tcl:296 +#: git-gui.sh:3500 lib/blame.tcl:295 msgid "Encoding" msgstr "Кодиране" -#: git-gui.sh:3691 +#: git-gui.sh:3511 msgid "Apply/Reverse Hunk" msgstr "Прилагане/връщане на парче" -#: git-gui.sh:3696 +#: git-gui.sh:3516 msgid "Apply/Reverse Line" msgstr "Прилагане/връщане на ред" -#: git-gui.sh:3702 git-gui.sh:3812 git-gui.sh:3823 +#: git-gui.sh:3522 git-gui.sh:3632 git-gui.sh:3643 msgid "Revert Hunk" msgstr "Връщане на парче" -#: git-gui.sh:3707 git-gui.sh:3819 git-gui.sh:3830 +#: git-gui.sh:3527 git-gui.sh:3639 git-gui.sh:3650 msgid "Revert Line" msgstr "Връщане на ред" -#: git-gui.sh:3712 git-gui.sh:3809 +#: git-gui.sh:3532 git-gui.sh:3629 msgid "Undo Last Revert" msgstr "Отмяна на последното връщане" -#: git-gui.sh:3731 +#: git-gui.sh:3551 msgid "Run Merge Tool" msgstr "Изпълнение на програмата за сливане" -#: git-gui.sh:3736 +#: git-gui.sh:3556 msgid "Use Remote Version" msgstr "Версия от отдалеченото хранилище" -#: git-gui.sh:3740 +#: git-gui.sh:3560 msgid "Use Local Version" msgstr "Локална версия" -#: git-gui.sh:3744 +#: git-gui.sh:3564 msgid "Revert To Base" msgstr "Връщане към родителската версия" -#: git-gui.sh:3762 +#: git-gui.sh:3582 msgid "Visualize These Changes In The Submodule" msgstr "Визуализиране на промените в подмодула" -#: git-gui.sh:3766 +#: git-gui.sh:3586 msgid "Visualize Current Branch History In The Submodule" msgstr "Визуализация на историята на текущия клон в историята за подмодула" -#: git-gui.sh:3770 +#: git-gui.sh:3590 msgid "Visualize All Branch History In The Submodule" msgstr "Визуализация на историята на всички клони в историята за подмодула" -#: git-gui.sh:3775 +#: git-gui.sh:3595 msgid "Start git gui In The Submodule" msgstr "Стартиране на „git gui“ за подмодула" -#: git-gui.sh:3811 +#: git-gui.sh:3631 msgid "Unstage Hunk From Commit" msgstr "Изваждане на парчето от подаването" -#: git-gui.sh:3815 +#: git-gui.sh:3635 msgid "Unstage Lines From Commit" msgstr "Изваждане на редовете от подаването" -#: git-gui.sh:3816 git-gui.sh:3827 +#: git-gui.sh:3636 git-gui.sh:3647 msgid "Revert Lines" msgstr "Връщане на редовете" -#: git-gui.sh:3818 +#: git-gui.sh:3638 msgid "Unstage Line From Commit" msgstr "Изваждане на реда от подаването" -#: git-gui.sh:3822 +#: git-gui.sh:3642 msgid "Stage Hunk For Commit" msgstr "Добавяне на парчето за подаване" -#: git-gui.sh:3826 +#: git-gui.sh:3646 msgid "Stage Lines For Commit" msgstr "Добавяне на редовете за подаване" -#: git-gui.sh:3829 +#: git-gui.sh:3649 msgid "Stage Line For Commit" msgstr "Добавяне на реда за подаване" -#: git-gui.sh:3879 +#: git-gui.sh:3699 msgid "Initializing..." msgstr "Инициализиране…" @@ -591,27 +580,27 @@ msgstr "%s (%s): Преглед на файлове" msgid "Commit:" msgstr "Подаване:" -#: lib/blame.tcl:282 +#: lib/blame.tcl:281 msgid "Copy Commit" msgstr "Копиране на подаване" -#: lib/blame.tcl:286 +#: lib/blame.tcl:285 msgid "Find Text..." msgstr "Търсене на текст…" -#: lib/blame.tcl:290 +#: lib/blame.tcl:289 msgid "Goto Line..." msgstr "Към ред…" -#: lib/blame.tcl:299 +#: lib/blame.tcl:298 msgid "Do Full Copy Detection" msgstr "Пълно търсене на копиране" -#: lib/blame.tcl:303 +#: lib/blame.tcl:302 msgid "Show History Context" msgstr "Показване на контекста от историята" -#: lib/blame.tcl:306 +#: lib/blame.tcl:305 msgid "Blame Parent Commit" msgstr "Анотиране на родителското подаване" @@ -620,112 +609,112 @@ msgstr "Анотиране на родителското подаване" msgid "Reading %s..." msgstr "Чете се „%s“…" -#: lib/blame.tcl:597 +#: lib/blame.tcl:599 msgid "Loading copy/move tracking annotations..." msgstr "Зареждане на анотациите за проследяване на копирането/преместването…" -#: lib/blame.tcl:614 +#: lib/blame.tcl:616 msgid "lines annotated" msgstr "реда анотирани" -#: lib/blame.tcl:816 +#: lib/blame.tcl:817 msgid "Loading original location annotations..." msgstr "Зареждане на анотациите за първоначалното местоположение…" -#: lib/blame.tcl:819 +#: lib/blame.tcl:820 msgid "Annotation complete." msgstr "Анотирането завърши." -#: lib/blame.tcl:850 +#: lib/blame.tcl:851 msgid "Busy" msgstr "Операцията не е завършила" -#: lib/blame.tcl:851 +#: lib/blame.tcl:852 msgid "Annotation process is already running." msgstr "В момента тече процес на анотиране." -#: lib/blame.tcl:890 +#: lib/blame.tcl:889 msgid "Running thorough copy detection..." msgstr "Изпълнява се цялостен процес на откриване на копиране…" -#: lib/blame.tcl:958 +#: lib/blame.tcl:957 msgid "Loading annotation..." msgstr "Зареждане на анотации…" -#: lib/blame.tcl:1011 +#: lib/blame.tcl:1010 msgid "Author:" msgstr "Автор:" -#: lib/blame.tcl:1015 +#: lib/blame.tcl:1014 msgid "Committer:" msgstr "Подал:" -#: lib/blame.tcl:1020 +#: lib/blame.tcl:1019 msgid "Original File:" msgstr "Първоначален файл:" -#: lib/blame.tcl:1068 +#: lib/blame.tcl:1067 msgid "Cannot find HEAD commit:" msgstr "Подаването за връх „HEAD“ не може да се открие:" -#: lib/blame.tcl:1123 +#: lib/blame.tcl:1122 msgid "Cannot find parent commit:" msgstr "Родителското подаване не може да се открие" -#: lib/blame.tcl:1138 +#: lib/blame.tcl:1137 msgid "Unable to display parent" msgstr "Родителят не може да се покаже" -#: lib/blame.tcl:1139 lib/diff.tcl:334 +#: lib/blame.tcl:1138 lib/diff.tcl:319 msgid "Error loading diff:" msgstr "Грешка при зареждане на разлика:" -#: lib/blame.tcl:1280 +#: lib/blame.tcl:1279 msgid "Originally By:" msgstr "Първоначално от:" -#: lib/blame.tcl:1286 +#: lib/blame.tcl:1285 msgid "In File:" msgstr "Във файл:" -#: lib/blame.tcl:1291 +#: lib/blame.tcl:1290 msgid "Copied Or Moved Here By:" msgstr "Копирано или преместено тук от:" -#: lib/branch_checkout.tcl:16 +#: lib/branch_checkout.tcl:15 #, tcl-format msgid "%s (%s): Checkout Branch" msgstr "%s (%s): Клон за изтегляне" -#: lib/branch_checkout.tcl:21 +#: lib/branch_checkout.tcl:20 msgid "Checkout Branch" msgstr "Клон за изтегляне" -#: lib/branch_checkout.tcl:26 +#: lib/branch_checkout.tcl:25 msgid "Checkout" msgstr "Изтегляне" -#: lib/branch_checkout.tcl:30 lib/branch_create.tcl:37 lib/branch_delete.tcl:34 -#: lib/branch_rename.tcl:32 lib/browser.tcl:292 lib/checkout_op.tcl:580 -#: lib/choose_font.tcl:45 lib/merge.tcl:178 lib/option.tcl:127 +#: lib/branch_checkout.tcl:29 lib/branch_create.tcl:37 lib/branch_delete.tcl:34 +#: lib/branch_rename.tcl:32 lib/browser.tcl:289 lib/checkout_op.tcl:571 +#: lib/choose_font.tcl:44 lib/merge.tcl:169 lib/option.tcl:127 #: lib/remote_add.tcl:34 lib/remote_branch_delete.tcl:43 lib/tools_dlg.tcl:41 #: lib/tools_dlg.tcl:202 lib/tools_dlg.tcl:345 lib/transport.tcl:141 msgid "Cancel" msgstr "Отказване" -#: lib/branch_checkout.tcl:35 lib/browser.tcl:297 lib/tools_dlg.tcl:321 +#: lib/branch_checkout.tcl:34 lib/browser.tcl:294 lib/tools_dlg.tcl:321 msgid "Revision" msgstr "Версия" -#: lib/branch_checkout.tcl:39 lib/branch_create.tcl:69 lib/option.tcl:310 +#: lib/branch_checkout.tcl:38 lib/branch_create.tcl:67 lib/option.tcl:298 msgid "Options" msgstr "Опции" -#: lib/branch_checkout.tcl:42 lib/branch_create.tcl:92 +#: lib/branch_checkout.tcl:41 lib/branch_create.tcl:90 msgid "Fetch Tracking Branch" msgstr "Изтегляне на промените от следения клон" -#: lib/branch_checkout.tcl:47 +#: lib/branch_checkout.tcl:46 msgid "Detach From Local Branch" msgstr "Изтриване от локалния клон" @@ -738,7 +727,7 @@ msgstr "%s (%s): Създаване на клон" msgid "Create New Branch" msgstr "Създаване на нов клон" -#: lib/branch_create.tcl:33 lib/choose_repository.tcl:386 +#: lib/branch_create.tcl:33 lib/choose_repository.tcl:353 msgid "Create" msgstr "Създаване" @@ -750,48 +739,48 @@ msgstr "Име на клона" msgid "Name:" msgstr "Име:" -#: lib/branch_create.tcl:57 +#: lib/branch_create.tcl:56 msgid "Match Tracking Branch Name" msgstr "Съвпадане по името на следения клон" -#: lib/branch_create.tcl:66 +#: lib/branch_create.tcl:64 msgid "Starting Revision" msgstr "Начална версия" -#: lib/branch_create.tcl:72 +#: lib/branch_create.tcl:70 msgid "Update Existing Branch:" msgstr "Обновяване на съществуващ клон:" -#: lib/branch_create.tcl:75 +#: lib/branch_create.tcl:73 msgid "No" msgstr "Не" -#: lib/branch_create.tcl:80 +#: lib/branch_create.tcl:78 msgid "Fast Forward Only" msgstr "Само тривиално превъртащо сливане" -#: lib/branch_create.tcl:85 lib/checkout_op.tcl:572 +#: lib/branch_create.tcl:83 lib/checkout_op.tcl:563 msgid "Reset" msgstr "Отначало" -#: lib/branch_create.tcl:97 +#: lib/branch_create.tcl:95 msgid "Checkout After Creation" msgstr "Преминаване към клона след създаването му" -#: lib/branch_create.tcl:132 +#: lib/branch_create.tcl:130 msgid "Please select a tracking branch." msgstr "Изберете клон за следени." -#: lib/branch_create.tcl:141 +#: lib/branch_create.tcl:139 #, tcl-format msgid "Tracking branch %s is not a branch in the remote repository." msgstr "Следящият клон — „%s“, не съществува в отдалеченото хранилище." -#: lib/branch_create.tcl:154 lib/branch_rename.tcl:92 +#: lib/branch_create.tcl:152 lib/branch_rename.tcl:88 msgid "Please supply a branch name." msgstr "Дайте име на клона." -#: lib/branch_create.tcl:165 lib/branch_rename.tcl:112 +#: lib/branch_create.tcl:163 lib/branch_rename.tcl:108 #, tcl-format msgid "'%s' is not an acceptable branch name." msgstr "„%s“ не може да се използва за име на клон." @@ -813,7 +802,7 @@ msgstr "Локални клони" msgid "Delete Only If Merged Into" msgstr "Изтриване, само ако промените са слети и другаде" -#: lib/branch_delete.tcl:53 lib/remote_branch_delete.tcl:120 +#: lib/branch_delete.tcl:53 lib/remote_branch_delete.tcl:116 msgid "Always (Do not perform merge checks)" msgstr "Винаги (без проверка за сливане)" @@ -822,7 +811,7 @@ msgstr "Винаги (без проверка за сливане)" msgid "The following branches are not completely merged into %s:" msgstr "Не всички промени в клоните са слети в „%s“:" -#: lib/branch_delete.tcl:115 lib/remote_branch_delete.tcl:218 +#: lib/branch_delete.tcl:115 lib/remote_branch_delete.tcl:214 msgid "" "Recovering deleted branches is difficult.\n" "\n" @@ -863,20 +852,20 @@ msgstr "Преименуване" msgid "Branch:" msgstr "Клон:" -#: lib/branch_rename.tcl:46 +#: lib/branch_rename.tcl:42 msgid "New Name:" msgstr "Ново име:" -#: lib/branch_rename.tcl:81 +#: lib/branch_rename.tcl:77 msgid "Please select a branch to rename." msgstr "Изберете клон за преименуване." -#: lib/branch_rename.tcl:102 lib/checkout_op.tcl:202 +#: lib/branch_rename.tcl:98 lib/checkout_op.tcl:202 #, tcl-format msgid "Branch '%s' already exists." msgstr "Клонът „%s“ вече съществува." -#: lib/branch_rename.tcl:123 +#: lib/branch_rename.tcl:119 #, tcl-format msgid "Failed to rename '%s'." msgstr "Неуспешно преименуване на „%s“." @@ -890,27 +879,27 @@ msgstr "Стартиране…" msgid "%s (%s): File Browser" msgstr "%s (%s): Файлов браузър" -#: lib/browser.tcl:132 lib/browser.tcl:149 +#: lib/browser.tcl:130 lib/browser.tcl:147 #, tcl-format msgid "Loading %s..." msgstr "Зареждане на „%s“…" -#: lib/browser.tcl:193 +#: lib/browser.tcl:191 msgid "[Up To Parent]" msgstr "[Към родителя]" -#: lib/browser.tcl:275 +#: lib/browser.tcl:272 #, tcl-format msgid "%s (%s): Browse Branch Files" msgstr "%s (%s): Разглеждане на файловете в клона" -#: lib/browser.tcl:282 +#: lib/browser.tcl:279 msgid "Browse Branch Files" msgstr "Разглеждане на файловете в клона" -#: lib/browser.tcl:288 lib/choose_repository.tcl:401 -#: lib/choose_repository.tcl:488 lib/choose_repository.tcl:497 -#: lib/choose_repository.tcl:1069 +#: lib/browser.tcl:285 lib/choose_repository.tcl:368 +#: lib/choose_repository.tcl:454 lib/choose_repository.tcl:463 +#: lib/choose_repository.tcl:674 msgid "Browse" msgstr "Разглеждане" @@ -924,8 +913,8 @@ msgstr "Доставяне на „%s“ от „%s“" msgid "fatal: Cannot resolve %s" msgstr "фатална грешка: „%s“ не може да се открие" -#: lib/checkout_op.tcl:146 lib/console.tcl:81 lib/database.tcl:30 -#: lib/sshkey.tcl:58 +#: lib/checkout_op.tcl:146 lib/console.tcl:81 lib/database.tcl:29 +#: lib/sshkey.tcl:55 msgid "Close" msgstr "Затваряне" @@ -992,22 +981,22 @@ msgstr "Работната директория се привежда към „ msgid "files checked out" msgstr "файла са изтеглени" -#: lib/checkout_op.tcl:377 +#: lib/checkout_op.tcl:378 #, tcl-format msgid "Aborted checkout of '%s' (file level merging is required)." msgstr "" "Преустановяване на изтеглянето на „%s“ (необходимо е пофайлово сливане)." -#: lib/checkout_op.tcl:378 +#: lib/checkout_op.tcl:379 msgid "File level merge required." msgstr "Необходимо е пофайлово сливане." -#: lib/checkout_op.tcl:382 +#: lib/checkout_op.tcl:383 #, tcl-format msgid "Staying on branch '%s'." msgstr "Оставане върху клона „%s“." -#: lib/checkout_op.tcl:453 +#: lib/checkout_op.tcl:454 msgid "" "You are no longer on a local branch.\n" "\n" @@ -1018,31 +1007,31 @@ msgstr "" "\n" "Ако искате да сте на клон, създайте базиран на „Това несвързано изтегляне“." -#: lib/checkout_op.tcl:504 lib/checkout_op.tcl:508 +#: lib/checkout_op.tcl:505 lib/checkout_op.tcl:509 #, tcl-format msgid "Checked out '%s'." msgstr "„%s“ е изтеглен." -#: lib/checkout_op.tcl:536 +#: lib/checkout_op.tcl:527 #, tcl-format msgid "Resetting '%s' to '%s' will lose the following commits:" msgstr "" "Зануляването на „%s“ към „%s“ ще доведе до загубването на следните подавания:" -#: lib/checkout_op.tcl:558 +#: lib/checkout_op.tcl:549 msgid "Recovering lost commits may not be easy." msgstr "Възстановяването на загубените подавания може да е трудно." -#: lib/checkout_op.tcl:563 +#: lib/checkout_op.tcl:554 #, tcl-format msgid "Reset '%s'?" msgstr "Зануляване на „%s“?" -#: lib/checkout_op.tcl:568 lib/merge.tcl:170 lib/tools_dlg.tcl:336 +#: lib/checkout_op.tcl:559 lib/merge.tcl:161 lib/tools_dlg.tcl:336 msgid "Visualize" msgstr "Визуализация" -#: lib/checkout_op.tcl:636 +#: lib/checkout_op.tcl:627 #, tcl-format msgid "" "Failed to set current branch.\n" @@ -1060,23 +1049,23 @@ msgstr "" "Това състояние е аварийно и не трябва да се случва. Програмата „%s“ ще " "преустанови работа." -#: lib/choose_font.tcl:41 +#: lib/choose_font.tcl:40 msgid "Select" msgstr "Избор" -#: lib/choose_font.tcl:55 +#: lib/choose_font.tcl:54 msgid "Font Family" msgstr "Шрифт" -#: lib/choose_font.tcl:76 +#: lib/choose_font.tcl:75 msgid "Font Size" msgstr "Размер" -#: lib/choose_font.tcl:93 +#: lib/choose_font.tcl:92 msgid "Font Example" msgstr "Мостра" -#: lib/choose_font.tcl:105 +#: lib/choose_font.tcl:104 msgid "" "This is example text.\n" "If you like this text, it can be your font." @@ -1084,243 +1073,135 @@ msgstr "" "Това е примерен текст.\n" "Ако ви харесва как изглежда, изберете шрифта." -#: lib/choose_repository.tcl:45 +#: lib/choose_repository.tcl:35 msgid "Git Gui" msgstr "ГПИ на Git" -#: lib/choose_repository.tcl:104 lib/choose_repository.tcl:391 +#: lib/choose_repository.tcl:94 lib/choose_repository.tcl:358 msgid "Create New Repository" msgstr "Създаване на ново хранилище" -#: lib/choose_repository.tcl:110 +#: lib/choose_repository.tcl:100 msgid "New..." msgstr "Ново…" -#: lib/choose_repository.tcl:117 lib/choose_repository.tcl:475 +#: lib/choose_repository.tcl:107 lib/choose_repository.tcl:441 msgid "Clone Existing Repository" msgstr "Клониране на съществуващо хранилище" -#: lib/choose_repository.tcl:128 +#: lib/choose_repository.tcl:118 msgid "Clone..." msgstr "Клониране…" -#: lib/choose_repository.tcl:135 lib/choose_repository.tcl:1059 +#: lib/choose_repository.tcl:125 lib/choose_repository.tcl:664 msgid "Open Existing Repository" msgstr "Отваряне на съществуващо хранилище" -#: lib/choose_repository.tcl:141 +#: lib/choose_repository.tcl:131 msgid "Open..." msgstr "Отваряне…" -#: lib/choose_repository.tcl:154 +#: lib/choose_repository.tcl:144 msgid "Recent Repositories" msgstr "Скоро ползвани" -#: lib/choose_repository.tcl:164 +#: lib/choose_repository.tcl:154 msgid "Open Recent Repository:" msgstr "Отваряне на хранилище ползвано наскоро:" -#: lib/choose_repository.tcl:328 lib/choose_repository.tcl:335 -#: lib/choose_repository.tcl:342 +#: lib/choose_repository.tcl:317 lib/choose_repository.tcl:324 #, tcl-format msgid "Failed to create repository %s:" msgstr "Неуспешно създаване на хранилището „%s“:" -#: lib/choose_repository.tcl:396 +#: lib/choose_repository.tcl:363 msgid "Directory:" msgstr "Директория:" -#: lib/choose_repository.tcl:426 lib/choose_repository.tcl:552 -#: lib/choose_repository.tcl:1093 +#: lib/choose_repository.tcl:393 lib/choose_repository.tcl:518 +#: lib/choose_repository.tcl:698 msgid "Git Repository" msgstr "Хранилище на Git" -#: lib/choose_repository.tcl:451 +#: lib/choose_repository.tcl:418 #, tcl-format msgid "Directory %s already exists." msgstr "Вече съществува директория „%s“." -#: lib/choose_repository.tcl:455 +#: lib/choose_repository.tcl:422 #, tcl-format msgid "File %s already exists." msgstr "Вече съществува файл „%s“." -#: lib/choose_repository.tcl:470 +#: lib/choose_repository.tcl:436 msgid "Clone" msgstr "Клониране" -#: lib/choose_repository.tcl:483 +#: lib/choose_repository.tcl:449 msgid "Source Location:" msgstr "Адрес на източника:" -#: lib/choose_repository.tcl:492 +#: lib/choose_repository.tcl:458 msgid "Target Directory:" msgstr "Целева директория:" -#: lib/choose_repository.tcl:502 +#: lib/choose_repository.tcl:468 msgid "Clone Type:" msgstr "Вид клониране:" -#: lib/choose_repository.tcl:507 +#: lib/choose_repository.tcl:473 msgid "Standard (Fast, Semi-Redundant, Hardlinks)" msgstr "Стандартно (бързо, частично споделяне на файлове, твърди връзки)" -#: lib/choose_repository.tcl:512 +#: lib/choose_repository.tcl:478 msgid "Full Copy (Slower, Redundant Backup)" msgstr "Пълно (бавно, пълноценно резервно копие)" -#: lib/choose_repository.tcl:517 +#: lib/choose_repository.tcl:483 msgid "Shared (Fastest, Not Recommended, No Backup)" msgstr "Споделено (най-бързо, не се препоръчва, не прави резервно копие)" -#: lib/choose_repository.tcl:524 +#: lib/choose_repository.tcl:490 msgid "Recursively clone submodules too" msgstr "Рекурсивно клониране и на подмодулите" -#: lib/choose_repository.tcl:558 lib/choose_repository.tcl:605 -#: lib/choose_repository.tcl:744 lib/choose_repository.tcl:818 -#: lib/choose_repository.tcl:1099 lib/choose_repository.tcl:1107 +#: lib/choose_repository.tcl:524 lib/choose_repository.tcl:704 +#: lib/choose_repository.tcl:712 #, tcl-format msgid "Not a Git repository: %s" msgstr "Това не е хранилище на Git: %s" -#: lib/choose_repository.tcl:594 +#: lib/choose_repository.tcl:571 +msgid "Hardlinks are unavailable. Falling back to copying." +msgstr "Не се поддържат твърди връзки. Преминава се към копиране." + +#: lib/choose_repository.tcl:579 msgid "Standard only available for local repository." msgstr "Само локални хранилища може да се клонират стандартно" -#: lib/choose_repository.tcl:598 +#: lib/choose_repository.tcl:583 msgid "Shared only available for local repository." msgstr "Само локални хранилища може да се клонират споделено" -#: lib/choose_repository.tcl:613 +#: lib/choose_repository.tcl:590 #, tcl-format msgid "Location %s already exists." msgstr "Местоположението „%s“ вече съществува." -#: lib/choose_repository.tcl:624 -msgid "Failed to configure origin" -msgstr "Неуспешно настройване на хранилището-източник" - -#: lib/choose_repository.tcl:636 -msgid "Counting objects" -msgstr "Преброяване на обекти" - -#: lib/choose_repository.tcl:637 -msgid "buckets" -msgstr "клетки" - -#: lib/choose_repository.tcl:657 -#, tcl-format -msgid "Unable to copy objects/info/alternates: %s" -msgstr "Обектите/Информацията/Синонимите не може да се копират: %s" - -#: lib/choose_repository.tcl:694 -#, tcl-format -msgid "Nothing to clone from %s." -msgstr "Няма какво да се клонира от „%s“." - -#: lib/choose_repository.tcl:696 lib/choose_repository.tcl:916 -#: lib/choose_repository.tcl:928 -msgid "The 'master' branch has not been initialized." -msgstr "Основният клон — „master“ не е инициализиран." - -#: lib/choose_repository.tcl:709 -msgid "Hardlinks are unavailable. Falling back to copying." -msgstr "Не се поддържат твърди връзки. Преминава се към копиране." - -#: lib/choose_repository.tcl:723 +#: lib/choose_repository.tcl:613 #, tcl-format msgid "Cloning from %s" msgstr "Клониране на „%s“" -#: lib/choose_repository.tcl:754 -msgid "Copying objects" -msgstr "Копиране на обекти" - -#: lib/choose_repository.tcl:755 -msgid "KiB" -msgstr "KiB" - -#: lib/choose_repository.tcl:779 -#, tcl-format -msgid "Unable to copy object: %s" -msgstr "Неуспешно копиране на обект: %s" - -#: lib/choose_repository.tcl:791 -msgid "Linking objects" -msgstr "Създаване на връзки към обектите" - -#: lib/choose_repository.tcl:792 -msgid "objects" -msgstr "обекти" - -#: lib/choose_repository.tcl:800 -#, tcl-format -msgid "Unable to hardlink object: %s" -msgstr "Неуспешно създаване на твърда връзка към обект: %s" - -#: lib/choose_repository.tcl:857 -msgid "Cannot fetch branches and objects. See console output for details." -msgstr "" -"Клоните и обектите не може да се изтеглят. За повече информация погледнете " -"изхода на конзолата." - -#: lib/choose_repository.tcl:868 -msgid "Cannot fetch tags. See console output for details." -msgstr "" -"Етикетите не може да се изтеглят. За повече информация погледнете изхода на " -"конзолата." - -#: lib/choose_repository.tcl:892 -msgid "Cannot determine HEAD. See console output for details." -msgstr "" -"Върхът „HEAD“ не може да се определи. За повече информация погледнете изхода " -"на конзолата." - -#: lib/choose_repository.tcl:901 -#, tcl-format -msgid "Unable to cleanup %s" -msgstr "„%s“ не може да се изчисти" - -#: lib/choose_repository.tcl:907 +#: lib/choose_repository.tcl:619 lib/choose_repository.tcl:625 msgid "Clone failed." msgstr "Неуспешно клониране." -#: lib/choose_repository.tcl:914 -msgid "No default branch obtained." -msgstr "Не е получен клон по подразбиране." - -#: lib/choose_repository.tcl:925 -#, tcl-format -msgid "Cannot resolve %s as a commit." -msgstr "Няма подаване отговарящо на „%s“." - -#: lib/choose_repository.tcl:952 -msgid "Creating working directory" -msgstr "Създаване на работната директория" - -#: lib/choose_repository.tcl:953 lib/index.tcl:77 lib/index.tcl:146 -#: lib/index.tcl:220 lib/index.tcl:589 -msgid "files" -msgstr "файлове" - -#: lib/choose_repository.tcl:982 -msgid "Initial file checkout failed." -msgstr "Неуспешно първоначално изтегляне." - -#: lib/choose_repository.tcl:1026 -msgid "Cloning submodules" -msgstr "Клониране на подмодули" - -#: lib/choose_repository.tcl:1041 -msgid "Cannot clone submodules." -msgstr "Подмодулите не може да се клонират." - -#: lib/choose_repository.tcl:1064 +#: lib/choose_repository.tcl:669 msgid "Repository:" msgstr "Хранилище:" -#: lib/choose_repository.tcl:1113 +#: lib/choose_repository.tcl:718 #, tcl-format msgid "Failed to open repository %s:" msgstr "Неуспешно отваряне на хранилището „%s“:" @@ -1329,40 +1210,40 @@ msgstr "Неуспешно отваряне на хранилището „%s“ msgid "This Detached Checkout" msgstr "Това несвързано изтегляне" -#: lib/choose_rev.tcl:60 +#: lib/choose_rev.tcl:59 msgid "Revision Expression:" msgstr "Израз за версия:" -#: lib/choose_rev.tcl:72 +#: lib/choose_rev.tcl:71 msgid "Local Branch" msgstr "Локален клон" -#: lib/choose_rev.tcl:77 +#: lib/choose_rev.tcl:76 msgid "Tracking Branch" msgstr "Следящ клон" -#: lib/choose_rev.tcl:82 lib/choose_rev.tcl:544 +#: lib/choose_rev.tcl:81 lib/choose_rev.tcl:534 msgid "Tag" msgstr "Етикет" -#: lib/choose_rev.tcl:321 +#: lib/choose_rev.tcl:312 #, tcl-format msgid "Invalid revision: %s" msgstr "Неправилна версия: %s" -#: lib/choose_rev.tcl:342 +#: lib/choose_rev.tcl:333 msgid "No revision selected." msgstr "Не е избрана версия." -#: lib/choose_rev.tcl:350 +#: lib/choose_rev.tcl:341 msgid "Revision expression is empty." msgstr "Изразът за версия е празен." -#: lib/choose_rev.tcl:537 +#: lib/choose_rev.tcl:527 msgid "Updated" msgstr "Обновен" -#: lib/choose_rev.tcl:565 +#: lib/choose_rev.tcl:555 msgid "URL" msgstr "Адрес" @@ -1459,7 +1340,7 @@ msgstr "" "\n" "Трябва да добавите поне един файл към индекса, за да подадете.\n" -#: lib/commit.tcl:224 +#: lib/commit.tcl:222 msgid "" "Please supply a commit message.\n" "\n" @@ -1477,15 +1358,15 @@ msgstr "" "● Втори ред: празен.\n" "● Останалите редове: опишете защо се налага тази промяна.\n" -#: lib/commit.tcl:255 +#: lib/commit.tcl:253 msgid "Calling pre-commit hook..." msgstr "Изпълняване на куката преди подаване…" -#: lib/commit.tcl:270 +#: lib/commit.tcl:268 msgid "Commit declined by pre-commit hook." msgstr "Подаването е отхвърлено от куката преди подаване." -#: lib/commit.tcl:289 +#: lib/commit.tcl:287 msgid "" "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 lose your " @@ -1501,32 +1382,32 @@ msgstr "" " \n" "Сигурни ли сте, че искате да извършите текущото подаване?" -#: lib/commit.tcl:310 +#: lib/commit.tcl:308 msgid "Calling commit-msg hook..." msgstr "Изпълняване на куката за съобщението при подаване…" -#: lib/commit.tcl:325 +#: lib/commit.tcl:323 msgid "Commit declined by commit-msg hook." msgstr "Подаването е отхвърлено от куката за съобщението при подаване." -#: lib/commit.tcl:338 +#: lib/commit.tcl:336 msgid "Committing changes..." msgstr "Подаване на промените…" -#: lib/commit.tcl:355 +#: lib/commit.tcl:354 msgid "write-tree failed:" msgstr "неуспешно запазване на дървото (write-tree):" -#: lib/commit.tcl:356 lib/commit.tcl:406 lib/commit.tcl:433 +#: lib/commit.tcl:355 lib/commit.tcl:405 lib/commit.tcl:432 msgid "Commit failed." msgstr "Неуспешно подаване." -#: lib/commit.tcl:373 +#: lib/commit.tcl:372 #, tcl-format msgid "Commit %s appears to be corrupt" msgstr "Подаването „%s“ изглежда повредено" -#: lib/commit.tcl:378 +#: lib/commit.tcl:377 msgid "" "No changes to commit.\n" "\n" @@ -1541,19 +1422,19 @@ msgstr "" "\n" "Автоматично ще започне нова проверка.\n" -#: lib/commit.tcl:385 +#: lib/commit.tcl:384 msgid "No changes to commit." msgstr "Няма промени за подаване." -#: lib/commit.tcl:405 +#: lib/commit.tcl:404 msgid "commit-tree failed:" msgstr "неуспешно подаване на дървото (commit-tree):" -#: lib/commit.tcl:432 +#: lib/commit.tcl:431 msgid "update-ref failed:" msgstr "неуспешно обновяване на указателите (update-ref):" -#: lib/commit.tcl:526 +#: lib/commit.tcl:525 #, tcl-format msgid "Created commit %s: %s" msgstr "Успешно подаване %s: %s" @@ -1562,62 +1443,62 @@ msgstr "Успешно подаване %s: %s" msgid "Working... please wait..." msgstr "В момента се извършва действие, изчакайте…" -#: lib/console.tcl:186 +#: lib/console.tcl:185 msgid "Success" msgstr "Успех" -#: lib/console.tcl:200 +#: lib/console.tcl:199 msgid "Error: Command Failed" msgstr "Грешка: неуспешно изпълнение на команда" -#: lib/database.tcl:42 +#: lib/database.tcl:41 msgid "Number of loose objects" msgstr "Брой непакетирани обекти" -#: lib/database.tcl:43 +#: lib/database.tcl:42 msgid "Disk space used by loose objects" msgstr "Дисково пространство заето от непакетирани обекти" -#: lib/database.tcl:44 +#: lib/database.tcl:43 msgid "Number of packed objects" msgstr "Брой пакетирани обекти" -#: lib/database.tcl:45 +#: lib/database.tcl:44 msgid "Number of packs" msgstr "Брой пакети" -#: lib/database.tcl:46 +#: lib/database.tcl:45 msgid "Disk space used by packed objects" msgstr "Дисково пространство заето от пакетирани обекти" -#: lib/database.tcl:47 +#: lib/database.tcl:46 msgid "Packed objects waiting for pruning" msgstr "Пакетирани обекти за окастряне" -#: lib/database.tcl:48 +#: lib/database.tcl:47 msgid "Garbage files" msgstr "Файлове за боклука" -#: lib/database.tcl:57 lib/option.tcl:182 lib/option.tcl:197 lib/option.tcl:220 -#: lib/option.tcl:282 +#: lib/database.tcl:56 lib/option.tcl:182 lib/option.tcl:197 lib/option.tcl:220 +#: lib/option.tcl:270 #, tcl-format msgid "%s:" msgstr "%s:" -#: lib/database.tcl:66 +#: lib/database.tcl:65 #, tcl-format msgid "%s (%s): Database Statistics" msgstr "%s (%s): Статистика на базата от данни" -#: lib/database.tcl:72 +#: lib/database.tcl:71 msgid "Compressing the object database" msgstr "Компресиране на базата с данни за обектите" -#: lib/database.tcl:83 +#: lib/database.tcl:82 msgid "Verifying the object database with fsck-objects" msgstr "Проверка на базата с данни за обектите с програмата „fsck-objects“" -#: lib/database.tcl:107 +#: lib/database.tcl:106 #, tcl-format msgid "" "This repository currently has approximately %i loose objects.\n" @@ -1639,7 +1520,7 @@ msgstr "" msgid "Invalid date from Git: %s" msgstr "Неправилни данни от Git: %s" -#: lib/diff.tcl:74 +#: lib/diff.tcl:72 msgid "" "* No differences detected; stage the file to de-list it from Unstaged " "Changes.\n" @@ -1647,16 +1528,16 @@ msgstr "" "● Няма разлики. Добавете файла към индекса, за да се извади от промените " "извън индекса.\n" -#: lib/diff.tcl:75 +#: lib/diff.tcl:73 msgid "* Click to find other files that may have the same state.\n" msgstr "● Натиснете, за да потърсите други файлове в това състояние.\n" -#: lib/diff.tcl:106 +#: lib/diff.tcl:104 #, tcl-format msgid "Loading diff of %s..." msgstr "Зареждане на разликите в „%s“…" -#: lib/diff.tcl:132 +#: lib/diff.tcl:130 msgid "" "LOCAL: deleted\n" "REMOTE:\n" @@ -1664,7 +1545,7 @@ msgstr "" "ЛОКАЛНО: изтрит\n" "ОТДАЛЕЧЕНО:\n" -#: lib/diff.tcl:137 +#: lib/diff.tcl:135 msgid "" "REMOTE: deleted\n" "LOCAL:\n" @@ -1672,32 +1553,32 @@ msgstr "" "ОТДАЛЕЧЕНО: изтрит\n" "ЛОКАЛНО:\n" -#: lib/diff.tcl:144 +#: lib/diff.tcl:142 msgid "LOCAL:\n" msgstr "ЛОКАЛНО:\n" -#: lib/diff.tcl:147 +#: lib/diff.tcl:145 msgid "REMOTE:\n" msgstr "ОТДАЛЕЧЕНО:\n" -#: lib/diff.tcl:209 lib/diff.tcl:333 +#: lib/diff.tcl:207 lib/diff.tcl:318 #, tcl-format msgid "Unable to display %s" msgstr "Файлът „%s“ не може да се покаже" -#: lib/diff.tcl:210 +#: lib/diff.tcl:208 msgid "Error loading file:" msgstr "Грешка при зареждане на файл:" -#: lib/diff.tcl:216 +#: lib/diff.tcl:214 msgid "Git Repository (subproject)" msgstr "Хранилище на Git (подмодул)" -#: lib/diff.tcl:228 +#: lib/diff.tcl:226 msgid "* Binary file (not showing content)." msgstr "● Двоичен файл (съдържанието не се показва)." -#: lib/diff.tcl:233 +#: lib/diff.tcl:231 #, tcl-format msgid "" "* Untracked file is %d bytes.\n" @@ -1706,7 +1587,7 @@ msgstr "" "● Неследеният файл е %d байта.\n" "● Показват се само първите %d байта.\n" -#: lib/diff.tcl:239 +#: lib/diff.tcl:237 #, tcl-format msgid "" "\n" @@ -1717,31 +1598,31 @@ msgstr "" "● Неследеният файл е отрязан дотук от програмата „%s“.\n" "● Използвайте външен редактор, за да видите целия файл.\n" -#: lib/diff.tcl:569 +#: lib/diff.tcl:554 msgid "Failed to unstage selected hunk." msgstr "Избраното парче не може да се извади от индекса." -#: lib/diff.tcl:577 +#: lib/diff.tcl:562 msgid "Failed to revert selected hunk." msgstr "Избраното парче не може да се върне." -#: lib/diff.tcl:580 +#: lib/diff.tcl:565 msgid "Failed to stage selected hunk." msgstr "Избраното парче не може да се добави към индекса." -#: lib/diff.tcl:673 +#: lib/diff.tcl:658 msgid "Failed to unstage selected line." msgstr "Избраният ред не може да се извади от индекса." -#: lib/diff.tcl:682 +#: lib/diff.tcl:667 msgid "Failed to revert selected line." msgstr "Избраният ред не може да се върне." -#: lib/diff.tcl:686 +#: lib/diff.tcl:671 msgid "Failed to stage selected line." msgstr "Избраният ред не може да се добави към индекса." -#: lib/diff.tcl:875 +#: lib/diff.tcl:860 msgid "Failed to undo last revert." msgstr "Неуспешна отмяна на последното връщане." @@ -1768,16 +1649,16 @@ msgstr "%s: грешка" msgid "%s: warning" msgstr "%s: предупреждение" -#: lib/error.tcl:80 +#: lib/error.tcl:79 #, tcl-format msgid "%s hook failed:" msgstr "%s: грешка от куката" -#: lib/error.tcl:96 +#: lib/error.tcl:95 msgid "You must correct the above errors before committing." msgstr "Преди да можете да подадете, коригирайте горните грешки." -#: lib/error.tcl:116 +#: lib/error.tcl:115 #, tcl-format msgid "%s (%s): error" msgstr "%s (%s): грешка" @@ -1786,11 +1667,11 @@ msgstr "%s (%s): грешка" msgid "Unable to unlock the index." msgstr "Индексът не може да се отключи." -#: lib/index.tcl:30 +#: lib/index.tcl:28 msgid "Index Error" msgstr "Грешка в индекса" -#: lib/index.tcl:32 +#: lib/index.tcl:30 msgid "" "Updating the Git index failed. A rescan will be automatically started to " "resynchronize git-gui." @@ -1798,115 +1679,119 @@ msgstr "" "Неуспешно обновяване на индекса на Git. Автоматично ще започне нова проверка " "за синхронизирането на git-gui." -#: lib/index.tcl:43 +#: lib/index.tcl:41 msgid "Continue" msgstr "Продължаване" -#: lib/index.tcl:46 +#: lib/index.tcl:44 msgid "Unlock Index" msgstr "Отключване на индекса" -#: lib/index.tcl:326 +#: lib/index.tcl:75 lib/index.tcl:144 lib/index.tcl:218 lib/index.tcl:587 +msgid "files" +msgstr "файлове" + +#: lib/index.tcl:324 msgid "Unstaging selected files from commit" msgstr "Изваждане на избраните файлове от подаването" -#: lib/index.tcl:330 +#: lib/index.tcl:328 #, tcl-format msgid "Unstaging %s from commit" msgstr "Изваждане на „%s“ от подаването" -#: lib/index.tcl:369 +#: lib/index.tcl:367 msgid "Ready to commit." msgstr "Готовност за подаване." -#: lib/index.tcl:378 +#: lib/index.tcl:376 msgid "Adding selected files" msgstr "Добавяне на избраните файлове" -#: lib/index.tcl:382 +#: lib/index.tcl:380 #, tcl-format msgid "Adding %s" msgstr "Добавяне на „%s“" -#: lib/index.tcl:412 +#: lib/index.tcl:410 #, tcl-format msgid "Stage %d untracked files?" msgstr "Да се добавят ли %d неследени файла към индекса?" -#: lib/index.tcl:420 +#: lib/index.tcl:418 msgid "Adding all changed files" msgstr "Добавяне на всички променени файлове" -#: lib/index.tcl:503 +#: lib/index.tcl:501 #, tcl-format msgid "Revert changes in file %s?" msgstr "Да се махнат ли промените във файла „%s“?" -#: lib/index.tcl:508 +#: lib/index.tcl:506 #, tcl-format msgid "Revert changes in these %i files?" msgstr "Да се махнат ли промените в тези %i файла?" -#: lib/index.tcl:517 +#: lib/index.tcl:515 msgid "Any unstaged changes will be permanently lost by the revert." msgstr "" "Всички промени, които не са били добавени в индекса, ще се загубят " "безвъзвратно." -#: lib/index.tcl:520 lib/index.tcl:564 +#: lib/index.tcl:518 lib/index.tcl:562 msgid "Do Nothing" msgstr "Нищо да не се прави" -#: lib/index.tcl:546 +#: lib/index.tcl:544 #, tcl-format msgid "Delete untracked file %s?" msgstr "Да се изтрие ли неследеният файл „%s“?" -#: lib/index.tcl:551 +#: lib/index.tcl:549 #, tcl-format msgid "Delete these %i untracked files?" msgstr "Да се изтрият ли тези %d неследени файла?" -#: lib/index.tcl:561 +#: lib/index.tcl:559 msgid "Files will be permanently deleted." msgstr "Файловете ще се изтрият окончателно." -#: lib/index.tcl:565 +#: lib/index.tcl:563 msgid "Delete Files" msgstr "Изтриване на файлове" -#: lib/index.tcl:588 +#: lib/index.tcl:586 msgid "Deleting" msgstr "Изтриване" -#: lib/index.tcl:667 +#: lib/index.tcl:665 msgid "Encountered errors deleting files:\n" msgstr "Грешки при изтриване на файловете:\n" -#: lib/index.tcl:676 +#: lib/index.tcl:674 #, tcl-format msgid "None of the %d selected files could be deleted." msgstr "Никой от избраните %d файла не бе изтрит." -#: lib/index.tcl:681 +#: lib/index.tcl:679 #, tcl-format msgid "%d of the %d selected files could not be deleted." msgstr "%d от избраните %d файла не бяха изтрити." -#: lib/index.tcl:728 +#: lib/index.tcl:726 msgid "Reverting selected files" msgstr "Махане на промените в избраните файлове" -#: lib/index.tcl:732 +#: lib/index.tcl:730 #, tcl-format msgid "Reverting %s" msgstr "Махане на промените в „%s“" -#: lib/line.tcl:17 +#: lib/line.tcl:16 msgid "Goto Line:" msgstr "Към ред:" -#: lib/line.tcl:23 +#: lib/line.tcl:22 msgid "Go" msgstr "Към" @@ -1978,34 +1863,34 @@ msgstr "" msgid "%s of %s" msgstr "%s от общо %s" -#: lib/merge.tcl:126 +#: lib/merge.tcl:117 #, tcl-format msgid "Merging %s and %s..." msgstr "Сливане на „%s“ и „%s“…" -#: lib/merge.tcl:137 +#: lib/merge.tcl:128 msgid "Merge completed successfully." msgstr "Сливането завърши успешно." -#: lib/merge.tcl:139 +#: lib/merge.tcl:130 msgid "Merge failed. Conflict resolution is required." msgstr "Неуспешно сливане — има конфликти за коригиране." -#: lib/merge.tcl:156 +#: lib/merge.tcl:147 #, tcl-format msgid "%s (%s): Merge" msgstr "%s (%s): Сливане" -#: lib/merge.tcl:164 +#: lib/merge.tcl:155 #, tcl-format msgid "Merge Into %s" msgstr "Сливане в „%s“" -#: lib/merge.tcl:183 +#: lib/merge.tcl:174 msgid "Revision To Merge" msgstr "Версия за сливане" -#: lib/merge.tcl:218 +#: lib/merge.tcl:209 msgid "" "Cannot abort while amending.\n" "\n" @@ -2015,7 +1900,7 @@ msgstr "" "\n" "Трябва да завършите поправката на това подаване.\n" -#: lib/merge.tcl:228 +#: lib/merge.tcl:219 msgid "" "Abort merge?\n" "\n" @@ -2029,7 +1914,7 @@ msgstr "" "\n" "Наистина ли да се преустанови сливането?" -#: lib/merge.tcl:234 +#: lib/merge.tcl:225 msgid "" "Reset changes?\n" "\n" @@ -2043,19 +1928,19 @@ msgstr "" "\n" "Наистина ли да се занулят промените?" -#: lib/merge.tcl:246 +#: lib/merge.tcl:237 msgid "Aborting" msgstr "Преустановяване" -#: lib/merge.tcl:247 +#: lib/merge.tcl:238 msgid "files reset" msgstr "файла със занулени промени" -#: lib/merge.tcl:277 +#: lib/merge.tcl:268 msgid "Abort failed." msgstr "Неуспешно преустановяване." -#: lib/merge.tcl:279 +#: lib/merge.tcl:270 msgid "Abort completed. Ready." msgstr "Успешно преустановяване. Готовност за следващо действие." @@ -2293,28 +2178,28 @@ msgstr "Ширина на табулацията" msgid "Change" msgstr "Смяна" -#: lib/option.tcl:254 +#: lib/option.tcl:248 msgid "Spelling Dictionary:" msgstr "Правописен речник:" -#: lib/option.tcl:284 +#: lib/option.tcl:272 msgid "Change Font" msgstr "Смяна на шрифта" -#: lib/option.tcl:288 +#: lib/option.tcl:276 #, tcl-format msgid "Choose %s" msgstr "Избор на „%s“" -#: lib/option.tcl:294 +#: lib/option.tcl:282 msgid "pt." msgstr "тчк." -#: lib/option.tcl:308 +#: lib/option.tcl:296 msgid "Preferences" msgstr "Настройки" -#: lib/option.tcl:345 +#: lib/option.tcl:333 msgid "Failed to completely save options:" msgstr "Неуспешно запазване на настройките:" @@ -2412,27 +2297,27 @@ msgstr "От хранилище" msgid "Remote:" msgstr "Отдалечено хранилище:" -#: lib/remote_branch_delete.tcl:72 lib/transport.tcl:187 +#: lib/remote_branch_delete.tcl:68 lib/transport.tcl:183 msgid "Arbitrary Location:" msgstr "Произволно местоположение:" -#: lib/remote_branch_delete.tcl:88 +#: lib/remote_branch_delete.tcl:84 msgid "Branches" msgstr "Клони" -#: lib/remote_branch_delete.tcl:110 +#: lib/remote_branch_delete.tcl:106 msgid "Delete Only If" msgstr "Изтриване, само ако" -#: lib/remote_branch_delete.tcl:112 +#: lib/remote_branch_delete.tcl:108 msgid "Merged Into:" msgstr "Слят в:" -#: lib/remote_branch_delete.tcl:153 +#: lib/remote_branch_delete.tcl:149 msgid "A branch is required for 'Merged Into'." msgstr "За данните „Слят в“ е необходимо да зададете клон." -#: lib/remote_branch_delete.tcl:185 +#: lib/remote_branch_delete.tcl:181 #, tcl-format msgid "" "The following branches are not completely merged into %s:\n" @@ -2443,7 +2328,7 @@ msgstr "" "\n" " ● %s" -#: lib/remote_branch_delete.tcl:190 +#: lib/remote_branch_delete.tcl:186 #, tcl-format msgid "" "One or more of the merge tests failed because you have not fetched the " @@ -2452,20 +2337,20 @@ msgstr "" "Поне една от пробите за сливане е неуспешна, защото не сте доставили всички " "необходими подавания. Пробвайте първо да доставите подаванията от „%s“." -#: lib/remote_branch_delete.tcl:208 +#: lib/remote_branch_delete.tcl:204 msgid "Please select one or more branches to delete." msgstr "Изберете поне един клон за изтриване." -#: lib/remote_branch_delete.tcl:227 +#: lib/remote_branch_delete.tcl:223 #, tcl-format msgid "Deleting branches from %s" msgstr "Изтриване на клони от „%s“" -#: lib/remote_branch_delete.tcl:300 +#: lib/remote_branch_delete.tcl:296 msgid "No repository selected." msgstr "Не е избрано хранилище." -#: lib/remote_branch_delete.tcl:305 +#: lib/remote_branch_delete.tcl:301 #, tcl-format msgid "Scanning %s..." msgstr "Претърсване на „%s“…" @@ -2486,27 +2371,27 @@ msgstr "Окастряне от" msgid "Fetch from" msgstr "Доставяне от" -#: lib/remote.tcl:249 lib/remote.tcl:253 lib/remote.tcl:258 lib/remote.tcl:264 +#: lib/remote.tcl:247 lib/remote.tcl:251 lib/remote.tcl:256 lib/remote.tcl:262 msgid "All" msgstr "Всички" -#: lib/search.tcl:48 +#: lib/search.tcl:47 msgid "Find:" msgstr "Търсене:" -#: lib/search.tcl:50 +#: lib/search.tcl:49 msgid "Next" msgstr "Следваща поява" -#: lib/search.tcl:51 +#: lib/search.tcl:50 msgid "Prev" msgstr "Предишна поява" -#: lib/search.tcl:52 +#: lib/search.tcl:51 msgid "RegExp" msgstr "РегИзр" -#: lib/search.tcl:54 +#: lib/search.tcl:53 msgid "Case" msgstr "Главни/Малки" @@ -2573,19 +2458,19 @@ msgstr "Открит е публичен ключ в „%s“" msgid "Generate Key" msgstr "Генериране на ключ" -#: lib/sshkey.tcl:61 +#: lib/sshkey.tcl:58 msgid "Copy To Clipboard" msgstr "Копиране към системния буфер" -#: lib/sshkey.tcl:75 +#: lib/sshkey.tcl:72 msgid "Your OpenSSH Public Key" msgstr "Публичният ви ключ за OpenSSH" -#: lib/sshkey.tcl:83 +#: lib/sshkey.tcl:80 msgid "Generating..." msgstr "Генериране…" -#: lib/sshkey.tcl:89 +#: lib/sshkey.tcl:87 #, tcl-format msgid "" "Could not start ssh-keygen:\n" @@ -2596,20 +2481,20 @@ msgstr "" "\n" "%s" -#: lib/sshkey.tcl:116 +#: lib/sshkey.tcl:114 msgid "Generation failed." msgstr "Неуспешно генериране." -#: lib/sshkey.tcl:123 +#: lib/sshkey.tcl:121 msgid "Generation succeeded, but no keys found." msgstr "Генерирането завърши успешно, а не са намерени ключове." -#: lib/sshkey.tcl:126 +#: lib/sshkey.tcl:124 #, tcl-format msgid "Your key is in: %s" msgstr "Ключът ви е в „%s“" -#: lib/status_bar.tcl:263 +#: lib/status_bar.tcl:258 #, tcl-format msgid "%s ... %*i of %*i %s (%3i%%)" msgstr "%s… %*i от общо %*i %s (%3i%%)" @@ -2739,12 +2624,12 @@ msgstr "Команда: %s" msgid "Running: %s" msgstr "Изпълнение: %s" -#: lib/tools.tcl:158 +#: lib/tools.tcl:157 #, tcl-format msgid "Tool completed successfully: %s" msgstr "Командата завърши успешно: %s" -#: lib/tools.tcl:160 +#: lib/tools.tcl:159 #, tcl-format msgid "Tool failed: %s" msgstr "Командата върна грешка: %s" @@ -2809,24 +2694,24 @@ msgstr "Клони-източници" msgid "Destination Repository" msgstr "Целево хранилище" -#: lib/transport.tcl:205 +#: lib/transport.tcl:201 msgid "Transfer Options" msgstr "Настройки при пренасянето" -#: lib/transport.tcl:207 +#: lib/transport.tcl:203 msgid "Force overwrite existing branch (may discard changes)" msgstr "" "Изрично презаписване на съществуващ клон (някои промени може да се загубят)" -#: lib/transport.tcl:211 +#: lib/transport.tcl:207 msgid "Use thin pack (for slow network connections)" msgstr "Максимална компресия (за бавни мрежови връзки)" -#: lib/transport.tcl:215 +#: lib/transport.tcl:211 msgid "Include tags" msgstr "Включване на етикетите" -#: lib/transport.tcl:229 +#: lib/transport.tcl:225 #, tcl-format msgid "%s (%s): Push" msgstr "%s (%s): Изтласкване" From 8fd50a4a28dbb8a190bee3c3b03b7ac062426b45 Mon Sep 17 00:00:00 2001 From: Alexander Shopov Date: Tue, 29 Jul 2025 20:09:45 +0200 Subject: [PATCH 22/35] git-gui i18n: Remove the locations within the Bulgarian translation This makes sending diffs via mail list easier and brings the po-file in line with git po-file. Signed-off-by: Alexander Shopov --- po/bg.po | 573 ------------------------------------------------------- 1 file changed, 573 deletions(-) diff --git a/po/bg.po b/po/bg.po index b252c8c3f37564..21f5bd54e9f3cd 100644 --- a/po/bg.po +++ b/po/bg.po @@ -18,77 +18,58 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: git-gui.sh:819 #, tcl-format msgid "Invalid font specified in %s:" msgstr "Указан е неправилен шрифт в „%s“:" -#: git-gui.sh:873 msgid "Main Font" msgstr "Основен шрифт" -#: git-gui.sh:874 msgid "Diff/Console Font" msgstr "Шрифт за разликите/конзолата" -#: git-gui.sh:889 git-gui.sh:905 git-gui.sh:919 git-gui.sh:948 git-gui.sh:964 -#: git-gui.sh:3061 msgid "git-gui: fatal error" msgstr "git-gui: фатална грешка" -#: git-gui.sh:890 msgid "Cannot find git in PATH." msgstr "Командата git липсва в пътя (PATH)." -#: git-gui.sh:920 msgid "Cannot parse Git version string:" msgstr "Низът с версията на Git не може да се анализира:" -#: git-gui.sh:941 msgid "Insufficient git version, require: " msgstr "Прекалено ниска версия на git, необходима е поне: " -#: git-gui.sh:942 msgid "git returned:" msgstr "git върна:" -#: git-gui.sh:1164 msgid "Git directory not found:" msgstr "Директорията на Git не е открита:" -#: git-gui.sh:1181 msgid "Cannot move to top of working directory:" msgstr "Не може да се премине към родителската директория." -#: git-gui.sh:1189 msgid "Cannot use bare repository:" msgstr "Голо хранилище не може да се използва:" -#: git-gui.sh:1197 msgid "No working directory" msgstr "Работната директория липсва" -#: git-gui.sh:1371 lib/checkout_op.tcl:306 msgid "Refreshing file status..." msgstr "Обновяване на състоянието на файла…" -#: git-gui.sh:1404 msgid "Scanning for modified files ..." msgstr "Проверка за променени файлове…" -#: git-gui.sh:1484 msgid "Calling prepare-commit-msg hook..." msgstr "Куката „prepare-commit-msg“ се изпълнява в момента…" -#: git-gui.sh:1501 msgid "Commit declined by prepare-commit-msg hook." msgstr "Подаването е отхвърлено от куката „prepare-commit-msg“." -#: git-gui.sh:1659 lib/browser.tcl:250 msgid "Ready." msgstr "Готово." -#: git-gui.sh:1822 #, tcl-format msgid "" "Display limit (gui.maxfilesdisplayed = %s) reached, not showing all %s files." @@ -97,721 +78,539 @@ msgstr "" "извеждане(gui.maxfilesdisplayed = %s), съответно не са показани всички %s " "файла." -#: git-gui.sh:1945 msgid "Unmodified" msgstr "Непроменен" -#: git-gui.sh:1947 msgid "Modified, not staged" msgstr "Променен, но не е в индекса" -#: git-gui.sh:1948 git-gui.sh:1960 msgid "Staged for commit" msgstr "В индекса за подаване" -#: git-gui.sh:1949 git-gui.sh:1961 msgid "Portions staged for commit" msgstr "Части са в индекса за подаване" -#: git-gui.sh:1950 git-gui.sh:1962 msgid "Staged for commit, missing" msgstr "В индекса за подаване, но липсва" -#: git-gui.sh:1952 msgid "File type changed, not staged" msgstr "Видът на файла е сменен, но не е в индекса" -#: git-gui.sh:1953 git-gui.sh:1954 msgid "File type changed, old type staged for commit" msgstr "Видът на файла е сменен, но новият вид не е в индекса" -#: git-gui.sh:1955 msgid "File type changed, staged" msgstr "Видът на файла е сменен и е в индекса" -#: git-gui.sh:1956 msgid "File type change staged, modification not staged" msgstr "Видът на файла е сменен в индекса, но не и съдържанието" -#: git-gui.sh:1957 msgid "File type change staged, file missing" msgstr "Видът на файла е сменен в индекса, но файлът липсва" -#: git-gui.sh:1959 msgid "Untracked, not staged" msgstr "Неследен" -#: git-gui.sh:1964 msgid "Missing" msgstr "Липсващ" -#: git-gui.sh:1965 msgid "Staged for removal" msgstr "В индекса за изтриване" -#: git-gui.sh:1966 msgid "Staged for removal, still present" msgstr "В индекса за изтриване, но още го има" -#: git-gui.sh:1968 git-gui.sh:1969 git-gui.sh:1970 git-gui.sh:1971 -#: git-gui.sh:1972 git-gui.sh:1973 msgid "Requires merge resolution" msgstr "Изисква коригиране при сливане" -#: git-gui.sh:2018 msgid "Couldn't find gitk in PATH" msgstr "Командата „gitk“ липсва в пътищата, определени от променливата PATH." -#: git-gui.sh:2065 git-gui.sh:2101 #, tcl-format msgid "Starting %s... please wait..." msgstr "Стартиране на „%s“…, изчакайте…" -#: git-gui.sh:2080 msgid "Couldn't find git gui in PATH" msgstr "" "Командата „git gui“ липсва в пътищата, определени от променливата PATH." -#: git-gui.sh:2580 lib/choose_repository.tcl:43 msgid "Repository" msgstr "Хранилище" -#: git-gui.sh:2581 msgid "Edit" msgstr "Редактиране" -#: git-gui.sh:2583 lib/choose_rev.tcl:557 msgid "Branch" msgstr "Клон" -#: git-gui.sh:2586 lib/choose_rev.tcl:544 msgid "Commit@@noun" msgstr "Подаване" -#: git-gui.sh:2589 lib/merge.tcl:118 lib/merge.tcl:165 msgid "Merge" msgstr "Сливане" -#: git-gui.sh:2590 lib/choose_rev.tcl:553 msgid "Remote" msgstr "Отдалечено хранилище" -#: git-gui.sh:2593 msgid "Tools" msgstr "Команди" -#: git-gui.sh:2602 msgid "Explore Working Copy" msgstr "Разглеждане на работното копие" -#: git-gui.sh:2615 msgid "Git Bash" msgstr "Bash за Git" -#: git-gui.sh:2625 msgid "Browse Current Branch's Files" msgstr "Разглеждане на файловете в текущия клон" -#: git-gui.sh:2629 msgid "Browse Branch Files..." msgstr "Разглеждане на текущия клон…" -#: git-gui.sh:2634 msgid "Visualize Current Branch's History" msgstr "Визуализация на историята на текущия клон" -#: git-gui.sh:2638 msgid "Visualize All Branch History" msgstr "Визуализация на историята на всички клонове" -#: git-gui.sh:2645 #, tcl-format msgid "Browse %s's Files" msgstr "Разглеждане на файловете в „%s“" -#: git-gui.sh:2647 #, tcl-format msgid "Visualize %s's History" msgstr "Визуализация на историята на „%s“" -#: git-gui.sh:2652 lib/database.tcl:39 msgid "Database Statistics" msgstr "Статистика на базата от данни" -#: git-gui.sh:2655 lib/database.tcl:32 msgid "Compress Database" msgstr "Компресиране на базата от данни" -#: git-gui.sh:2658 msgid "Verify Database" msgstr "Проверка на базата от данни" -#: git-gui.sh:2665 git-gui.sh:2669 git-gui.sh:2673 msgid "Create Desktop Icon" msgstr "Добавяне на икона на работния плот" -#: git-gui.sh:2681 lib/choose_repository.tcl:196 lib/choose_repository.tcl:204 msgid "Quit" msgstr "Спиране на програмата" -#: git-gui.sh:2689 msgid "Undo" msgstr "Отмяна" -#: git-gui.sh:2692 msgid "Redo" msgstr "Повторение" -#: git-gui.sh:2696 git-gui.sh:3297 msgid "Cut" msgstr "Отрязване" -#: git-gui.sh:2699 git-gui.sh:3300 git-gui.sh:3376 git-gui.sh:3471 -#: lib/console.tcl:69 msgid "Copy" msgstr "Копиране" -#: git-gui.sh:2702 git-gui.sh:3303 msgid "Paste" msgstr "Поставяне" -#: git-gui.sh:2705 git-gui.sh:3306 lib/branch_delete.tcl:28 -#: lib/remote_branch_delete.tcl:39 msgid "Delete" msgstr "Изтриване" -#: git-gui.sh:2709 git-gui.sh:3310 git-gui.sh:3475 lib/console.tcl:71 msgid "Select All" msgstr "Избиране на всичко" -#: git-gui.sh:2718 msgid "Create..." msgstr "Създаване…" -#: git-gui.sh:2724 msgid "Checkout..." msgstr "Изтегляне…" -#: git-gui.sh:2730 msgid "Rename..." msgstr "Преименуване…" -#: git-gui.sh:2735 msgid "Delete..." msgstr "Изтриване…" -#: git-gui.sh:2740 msgid "Reset..." msgstr "Отмяна на промените…" -#: git-gui.sh:2750 msgid "Done" msgstr "Готово" -#: git-gui.sh:2752 msgid "Commit@@verb" msgstr "Подаване" -#: git-gui.sh:2761 git-gui.sh:3236 msgid "Amend Last Commit" msgstr "Поправяне на последното подаване" -#: git-gui.sh:2771 git-gui.sh:3197 lib/remote_branch_delete.tcl:97 msgid "Rescan" msgstr "Обновяване" -#: git-gui.sh:2777 msgid "Stage To Commit" msgstr "Към индекса за подаване" -#: git-gui.sh:2783 msgid "Stage Changed Files To Commit" msgstr "Всички променени файлове към индекса за подаване" -#: git-gui.sh:2789 msgid "Unstage From Commit" msgstr "Изваждане от индекса за подаване" -#: git-gui.sh:2795 lib/index.tcl:519 msgid "Revert Changes" msgstr "Връщане на оригинала" -#: git-gui.sh:2803 git-gui.sh:3538 git-gui.sh:3569 msgid "Show Less Context" msgstr "По-малко контекст" -#: git-gui.sh:2807 git-gui.sh:3542 git-gui.sh:3573 msgid "Show More Context" msgstr "Повече контекст" -#: git-gui.sh:2814 git-gui.sh:3210 git-gui.sh:3321 msgid "Sign Off" msgstr "Подписване" -#: git-gui.sh:2830 msgid "Local Merge..." msgstr "Локално сливане…" -#: git-gui.sh:2835 msgid "Abort Merge..." msgstr "Преустановяване на сливане…" -#: git-gui.sh:2847 git-gui.sh:2875 msgid "Add..." msgstr "Добавяне…" -#: git-gui.sh:2851 msgid "Push..." msgstr "Изтласкване…" -#: git-gui.sh:2855 msgid "Delete Branch..." msgstr "Изтриване на клон…" -#: git-gui.sh:2865 git-gui.sh:3504 msgid "Options..." msgstr "Опции…" -#: git-gui.sh:2876 msgid "Remove..." msgstr "Премахване…" -#: git-gui.sh:2885 lib/choose_repository.tcl:57 msgid "Help" msgstr "Помощ" -#: git-gui.sh:2889 git-gui.sh:2893 lib/about.tcl:14 -#: lib/choose_repository.tcl:51 lib/choose_repository.tcl:60 #, tcl-format msgid "About %s" msgstr "Относно „%s“" -#: git-gui.sh:2913 msgid "Online Documentation" msgstr "Документация в Интернет" -#: git-gui.sh:2916 lib/choose_repository.tcl:54 lib/choose_repository.tcl:63 msgid "Show SSH Key" msgstr "Показване на ключа за SSH" -#: git-gui.sh:2946 git-gui.sh:3078 msgid "usage:" msgstr "употреба:" -#: git-gui.sh:2950 git-gui.sh:3082 msgid "Usage" msgstr "Употреба" -#: git-gui.sh:3031 lib/blame.tcl:578 msgid "Error" msgstr "Грешка" -#: git-gui.sh:3062 #, tcl-format msgid "fatal: cannot stat path %s: No such file or directory" msgstr "ФАТАЛНА ГРЕШКА: пътят „%s“ липсва: такъв файл или директория няма" -#: git-gui.sh:3094 msgid "Current Branch:" msgstr "Текущ клон:" -#: git-gui.sh:3115 msgid "Unstaged Changes" msgstr "Промени извън индекса" -#: git-gui.sh:3137 msgid "Staged Changes (Will Commit)" msgstr "Промени в индекса (за подаване)" -#: git-gui.sh:3203 msgid "Stage Changed" msgstr "Индексът е променен" -#: git-gui.sh:3222 lib/transport.tcl:137 msgid "Push" msgstr "Изтласкване" -#: git-gui.sh:3249 msgid "Initial Commit Message:" msgstr "Първоначално съобщение при подаване:" -#: git-gui.sh:3250 msgid "Amended Commit Message:" msgstr "Поправено съобщение при подаване:" -#: git-gui.sh:3251 msgid "Amended Initial Commit Message:" msgstr "Поправено първоначално съобщение при подаване:" -#: git-gui.sh:3252 msgid "Amended Merge Commit Message:" msgstr "Поправено съобщение при подаване със сливане:" -#: git-gui.sh:3253 msgid "Merge Commit Message:" msgstr "Съобщение при подаване със сливане:" -#: git-gui.sh:3254 msgid "Commit Message:" msgstr "Съобщение при подаване:" -#: git-gui.sh:3313 git-gui.sh:3479 lib/console.tcl:73 msgid "Copy All" msgstr "Копиране на всичко" -#: git-gui.sh:3337 lib/blame.tcl:106 msgid "File:" msgstr "Файл:" -#: git-gui.sh:3385 lib/choose_repository.tcl:659 msgid "Open" msgstr "Отваряне" -#: git-gui.sh:3467 msgid "Refresh" msgstr "Обновяване" -#: git-gui.sh:3488 msgid "Decrease Font Size" msgstr "По-дребен шрифт" -#: git-gui.sh:3492 msgid "Increase Font Size" msgstr "По-едър шрифт" -#: git-gui.sh:3500 lib/blame.tcl:295 msgid "Encoding" msgstr "Кодиране" -#: git-gui.sh:3511 msgid "Apply/Reverse Hunk" msgstr "Прилагане/връщане на парче" -#: git-gui.sh:3516 msgid "Apply/Reverse Line" msgstr "Прилагане/връщане на ред" -#: git-gui.sh:3522 git-gui.sh:3632 git-gui.sh:3643 msgid "Revert Hunk" msgstr "Връщане на парче" -#: git-gui.sh:3527 git-gui.sh:3639 git-gui.sh:3650 msgid "Revert Line" msgstr "Връщане на ред" -#: git-gui.sh:3532 git-gui.sh:3629 msgid "Undo Last Revert" msgstr "Отмяна на последното връщане" -#: git-gui.sh:3551 msgid "Run Merge Tool" msgstr "Изпълнение на програмата за сливане" -#: git-gui.sh:3556 msgid "Use Remote Version" msgstr "Версия от отдалеченото хранилище" -#: git-gui.sh:3560 msgid "Use Local Version" msgstr "Локална версия" -#: git-gui.sh:3564 msgid "Revert To Base" msgstr "Връщане към родителската версия" -#: git-gui.sh:3582 msgid "Visualize These Changes In The Submodule" msgstr "Визуализиране на промените в подмодула" -#: git-gui.sh:3586 msgid "Visualize Current Branch History In The Submodule" msgstr "Визуализация на историята на текущия клон в историята за подмодула" -#: git-gui.sh:3590 msgid "Visualize All Branch History In The Submodule" msgstr "Визуализация на историята на всички клони в историята за подмодула" -#: git-gui.sh:3595 msgid "Start git gui In The Submodule" msgstr "Стартиране на „git gui“ за подмодула" -#: git-gui.sh:3631 msgid "Unstage Hunk From Commit" msgstr "Изваждане на парчето от подаването" -#: git-gui.sh:3635 msgid "Unstage Lines From Commit" msgstr "Изваждане на редовете от подаването" -#: git-gui.sh:3636 git-gui.sh:3647 msgid "Revert Lines" msgstr "Връщане на редовете" -#: git-gui.sh:3638 msgid "Unstage Line From Commit" msgstr "Изваждане на реда от подаването" -#: git-gui.sh:3642 msgid "Stage Hunk For Commit" msgstr "Добавяне на парчето за подаване" -#: git-gui.sh:3646 msgid "Stage Lines For Commit" msgstr "Добавяне на редовете за подаване" -#: git-gui.sh:3649 msgid "Stage Line For Commit" msgstr "Добавяне на реда за подаване" -#: git-gui.sh:3699 msgid "Initializing..." msgstr "Инициализиране…" -#: lib/about.tcl:26 msgid "git-gui - a graphical user interface for Git." msgstr "git-gui — графичен интерфейс за Git." -#: lib/blame.tcl:74 #, tcl-format msgid "%s (%s): File Viewer" msgstr "%s (%s): Преглед на файлове" -#: lib/blame.tcl:80 msgid "Commit:" msgstr "Подаване:" -#: lib/blame.tcl:281 msgid "Copy Commit" msgstr "Копиране на подаване" -#: lib/blame.tcl:285 msgid "Find Text..." msgstr "Търсене на текст…" -#: lib/blame.tcl:289 msgid "Goto Line..." msgstr "Към ред…" -#: lib/blame.tcl:298 msgid "Do Full Copy Detection" msgstr "Пълно търсене на копиране" -#: lib/blame.tcl:302 msgid "Show History Context" msgstr "Показване на контекста от историята" -#: lib/blame.tcl:305 msgid "Blame Parent Commit" msgstr "Анотиране на родителското подаване" -#: lib/blame.tcl:469 #, tcl-format msgid "Reading %s..." msgstr "Чете се „%s“…" -#: lib/blame.tcl:599 msgid "Loading copy/move tracking annotations..." msgstr "Зареждане на анотациите за проследяване на копирането/преместването…" -#: lib/blame.tcl:616 msgid "lines annotated" msgstr "реда анотирани" -#: lib/blame.tcl:817 msgid "Loading original location annotations..." msgstr "Зареждане на анотациите за първоначалното местоположение…" -#: lib/blame.tcl:820 msgid "Annotation complete." msgstr "Анотирането завърши." -#: lib/blame.tcl:851 msgid "Busy" msgstr "Операцията не е завършила" -#: lib/blame.tcl:852 msgid "Annotation process is already running." msgstr "В момента тече процес на анотиране." -#: lib/blame.tcl:889 msgid "Running thorough copy detection..." msgstr "Изпълнява се цялостен процес на откриване на копиране…" -#: lib/blame.tcl:957 msgid "Loading annotation..." msgstr "Зареждане на анотации…" -#: lib/blame.tcl:1010 msgid "Author:" msgstr "Автор:" -#: lib/blame.tcl:1014 msgid "Committer:" msgstr "Подал:" -#: lib/blame.tcl:1019 msgid "Original File:" msgstr "Първоначален файл:" -#: lib/blame.tcl:1067 msgid "Cannot find HEAD commit:" msgstr "Подаването за връх „HEAD“ не може да се открие:" -#: lib/blame.tcl:1122 msgid "Cannot find parent commit:" msgstr "Родителското подаване не може да се открие" -#: lib/blame.tcl:1137 msgid "Unable to display parent" msgstr "Родителят не може да се покаже" -#: lib/blame.tcl:1138 lib/diff.tcl:319 msgid "Error loading diff:" msgstr "Грешка при зареждане на разлика:" -#: lib/blame.tcl:1279 msgid "Originally By:" msgstr "Първоначално от:" -#: lib/blame.tcl:1285 msgid "In File:" msgstr "Във файл:" -#: lib/blame.tcl:1290 msgid "Copied Or Moved Here By:" msgstr "Копирано или преместено тук от:" -#: lib/branch_checkout.tcl:15 #, tcl-format msgid "%s (%s): Checkout Branch" msgstr "%s (%s): Клон за изтегляне" -#: lib/branch_checkout.tcl:20 msgid "Checkout Branch" msgstr "Клон за изтегляне" -#: lib/branch_checkout.tcl:25 msgid "Checkout" msgstr "Изтегляне" -#: lib/branch_checkout.tcl:29 lib/branch_create.tcl:37 lib/branch_delete.tcl:34 -#: lib/branch_rename.tcl:32 lib/browser.tcl:289 lib/checkout_op.tcl:571 -#: lib/choose_font.tcl:44 lib/merge.tcl:169 lib/option.tcl:127 -#: lib/remote_add.tcl:34 lib/remote_branch_delete.tcl:43 lib/tools_dlg.tcl:41 -#: lib/tools_dlg.tcl:202 lib/tools_dlg.tcl:345 lib/transport.tcl:141 msgid "Cancel" msgstr "Отказване" -#: lib/branch_checkout.tcl:34 lib/browser.tcl:294 lib/tools_dlg.tcl:321 msgid "Revision" msgstr "Версия" -#: lib/branch_checkout.tcl:38 lib/branch_create.tcl:67 lib/option.tcl:298 msgid "Options" msgstr "Опции" -#: lib/branch_checkout.tcl:41 lib/branch_create.tcl:90 msgid "Fetch Tracking Branch" msgstr "Изтегляне на промените от следения клон" -#: lib/branch_checkout.tcl:46 msgid "Detach From Local Branch" msgstr "Изтриване от локалния клон" -#: lib/branch_create.tcl:23 #, tcl-format msgid "%s (%s): Create Branch" msgstr "%s (%s): Създаване на клон" -#: lib/branch_create.tcl:28 msgid "Create New Branch" msgstr "Създаване на нов клон" -#: lib/branch_create.tcl:33 lib/choose_repository.tcl:353 msgid "Create" msgstr "Създаване" -#: lib/branch_create.tcl:42 msgid "Branch Name" msgstr "Име на клона" -#: lib/branch_create.tcl:44 lib/remote_add.tcl:41 lib/tools_dlg.tcl:51 msgid "Name:" msgstr "Име:" -#: lib/branch_create.tcl:56 msgid "Match Tracking Branch Name" msgstr "Съвпадане по името на следения клон" -#: lib/branch_create.tcl:64 msgid "Starting Revision" msgstr "Начална версия" -#: lib/branch_create.tcl:70 msgid "Update Existing Branch:" msgstr "Обновяване на съществуващ клон:" -#: lib/branch_create.tcl:73 msgid "No" msgstr "Не" -#: lib/branch_create.tcl:78 msgid "Fast Forward Only" msgstr "Само тривиално превъртащо сливане" -#: lib/branch_create.tcl:83 lib/checkout_op.tcl:563 msgid "Reset" msgstr "Отначало" -#: lib/branch_create.tcl:95 msgid "Checkout After Creation" msgstr "Преминаване към клона след създаването му" -#: lib/branch_create.tcl:130 msgid "Please select a tracking branch." msgstr "Изберете клон за следени." -#: lib/branch_create.tcl:139 #, tcl-format msgid "Tracking branch %s is not a branch in the remote repository." msgstr "Следящият клон — „%s“, не съществува в отдалеченото хранилище." -#: lib/branch_create.tcl:152 lib/branch_rename.tcl:88 msgid "Please supply a branch name." msgstr "Дайте име на клона." -#: lib/branch_create.tcl:163 lib/branch_rename.tcl:108 #, tcl-format msgid "'%s' is not an acceptable branch name." msgstr "„%s“ не може да се използва за име на клон." -#: lib/branch_delete.tcl:16 #, tcl-format msgid "%s (%s): Delete Branch" msgstr "%s (%s): Изтриване на клон" -#: lib/branch_delete.tcl:21 msgid "Delete Local Branch" msgstr "Изтриване на локален клон" -#: lib/branch_delete.tcl:39 msgid "Local Branches" msgstr "Локални клони" -#: lib/branch_delete.tcl:51 msgid "Delete Only If Merged Into" msgstr "Изтриване, само ако промените са слети и другаде" -#: lib/branch_delete.tcl:53 lib/remote_branch_delete.tcl:116 msgid "Always (Do not perform merge checks)" msgstr "Винаги (без проверка за сливане)" -#: lib/branch_delete.tcl:103 #, tcl-format msgid "The following branches are not completely merged into %s:" msgstr "Не всички промени в клоните са слети в „%s“:" -#: lib/branch_delete.tcl:115 lib/remote_branch_delete.tcl:214 msgid "" "Recovering deleted branches is difficult.\n" "\n" @@ -821,12 +620,10 @@ msgstr "" "\n" "Сигурни ли сте, че искате да триете?" -#: lib/branch_delete.tcl:131 #, tcl-format msgid " - %s:" msgstr " — „%s:“" -#: lib/branch_delete.tcl:141 #, tcl-format msgid "" "Failed to delete branches:\n" @@ -835,100 +632,76 @@ msgstr "" "Неуспешно триене на клони:\n" "%s" -#: lib/branch_rename.tcl:15 #, tcl-format msgid "%s (%s): Rename Branch" msgstr "%s (%s): Преименуване на клон" -#: lib/branch_rename.tcl:23 msgid "Rename Branch" msgstr "Преименуване на клон" -#: lib/branch_rename.tcl:28 msgid "Rename" msgstr "Преименуване" -#: lib/branch_rename.tcl:38 msgid "Branch:" msgstr "Клон:" -#: lib/branch_rename.tcl:42 msgid "New Name:" msgstr "Ново име:" -#: lib/branch_rename.tcl:77 msgid "Please select a branch to rename." msgstr "Изберете клон за преименуване." -#: lib/branch_rename.tcl:98 lib/checkout_op.tcl:202 #, tcl-format msgid "Branch '%s' already exists." msgstr "Клонът „%s“ вече съществува." -#: lib/branch_rename.tcl:119 #, tcl-format msgid "Failed to rename '%s'." msgstr "Неуспешно преименуване на „%s“." -#: lib/browser.tcl:17 msgid "Starting..." msgstr "Стартиране…" -#: lib/browser.tcl:27 #, tcl-format msgid "%s (%s): File Browser" msgstr "%s (%s): Файлов браузър" -#: lib/browser.tcl:130 lib/browser.tcl:147 #, tcl-format msgid "Loading %s..." msgstr "Зареждане на „%s“…" -#: lib/browser.tcl:191 msgid "[Up To Parent]" msgstr "[Към родителя]" -#: lib/browser.tcl:272 #, tcl-format msgid "%s (%s): Browse Branch Files" msgstr "%s (%s): Разглеждане на файловете в клона" -#: lib/browser.tcl:279 msgid "Browse Branch Files" msgstr "Разглеждане на файловете в клона" -#: lib/browser.tcl:285 lib/choose_repository.tcl:368 -#: lib/choose_repository.tcl:454 lib/choose_repository.tcl:463 -#: lib/choose_repository.tcl:674 msgid "Browse" msgstr "Разглеждане" -#: lib/checkout_op.tcl:85 #, tcl-format msgid "Fetching %s from %s" msgstr "Доставяне на „%s“ от „%s“" -#: lib/checkout_op.tcl:133 #, tcl-format msgid "fatal: Cannot resolve %s" msgstr "фатална грешка: „%s“ не може да се открие" -#: lib/checkout_op.tcl:146 lib/console.tcl:81 lib/database.tcl:29 -#: lib/sshkey.tcl:55 msgid "Close" msgstr "Затваряне" -#: lib/checkout_op.tcl:175 #, tcl-format msgid "Branch '%s' does not exist." msgstr "Клонът „%s“ не съществува." -#: lib/checkout_op.tcl:194 #, tcl-format msgid "Failed to configure simplified git-pull for '%s'." msgstr "Неуспешно настройване на опростен git-pull за „%s“." -#: lib/checkout_op.tcl:229 #, tcl-format msgid "" "Branch '%s' already exists.\n" @@ -941,21 +714,17 @@ msgstr "" "Той не може да се слее тривиално до „%s“.\n" "Необходимо е сливане." -#: lib/checkout_op.tcl:243 #, tcl-format msgid "Merge strategy '%s' not supported." msgstr "Стратегия за сливане „%s“ не се поддържа." -#: lib/checkout_op.tcl:262 #, tcl-format msgid "Failed to update '%s'." msgstr "Неуспешно обновяване на „%s“." -#: lib/checkout_op.tcl:274 msgid "Staging area (index) is already locked." msgstr "Индексът вече е заключен." -#: lib/checkout_op.tcl:289 msgid "" "Last scanned state does not match repository state.\n" "\n" @@ -972,31 +741,25 @@ msgstr "" "\n" "Автоматично ще започне нова проверка.\n" -#: lib/checkout_op.tcl:345 #, tcl-format msgid "Updating working directory to '%s'..." msgstr "Работната директория се привежда към „%s“…" -#: lib/checkout_op.tcl:346 msgid "files checked out" msgstr "файла са изтеглени" -#: lib/checkout_op.tcl:378 #, tcl-format msgid "Aborted checkout of '%s' (file level merging is required)." msgstr "" "Преустановяване на изтеглянето на „%s“ (необходимо е пофайлово сливане)." -#: lib/checkout_op.tcl:379 msgid "File level merge required." msgstr "Необходимо е пофайлово сливане." -#: lib/checkout_op.tcl:383 #, tcl-format msgid "Staying on branch '%s'." msgstr "Оставане върху клона „%s“." -#: lib/checkout_op.tcl:454 msgid "" "You are no longer on a local branch.\n" "\n" @@ -1007,31 +770,25 @@ msgstr "" "\n" "Ако искате да сте на клон, създайте базиран на „Това несвързано изтегляне“." -#: lib/checkout_op.tcl:505 lib/checkout_op.tcl:509 #, tcl-format msgid "Checked out '%s'." msgstr "„%s“ е изтеглен." -#: lib/checkout_op.tcl:527 #, tcl-format msgid "Resetting '%s' to '%s' will lose the following commits:" msgstr "" "Зануляването на „%s“ към „%s“ ще доведе до загубването на следните подавания:" -#: lib/checkout_op.tcl:549 msgid "Recovering lost commits may not be easy." msgstr "Възстановяването на загубените подавания може да е трудно." -#: lib/checkout_op.tcl:554 #, tcl-format msgid "Reset '%s'?" msgstr "Зануляване на „%s“?" -#: lib/checkout_op.tcl:559 lib/merge.tcl:161 lib/tools_dlg.tcl:336 msgid "Visualize" msgstr "Визуализация" -#: lib/checkout_op.tcl:627 #, tcl-format msgid "" "Failed to set current branch.\n" @@ -1049,23 +806,18 @@ msgstr "" "Това състояние е аварийно и не трябва да се случва. Програмата „%s“ ще " "преустанови работа." -#: lib/choose_font.tcl:40 msgid "Select" msgstr "Избор" -#: lib/choose_font.tcl:54 msgid "Font Family" msgstr "Шрифт" -#: lib/choose_font.tcl:75 msgid "Font Size" msgstr "Размер" -#: lib/choose_font.tcl:92 msgid "Font Example" msgstr "Мостра" -#: lib/choose_font.tcl:104 msgid "" "This is example text.\n" "If you like this text, it can be your font." @@ -1073,181 +825,137 @@ msgstr "" "Това е примерен текст.\n" "Ако ви харесва как изглежда, изберете шрифта." -#: lib/choose_repository.tcl:35 msgid "Git Gui" msgstr "ГПИ на Git" -#: lib/choose_repository.tcl:94 lib/choose_repository.tcl:358 msgid "Create New Repository" msgstr "Създаване на ново хранилище" -#: lib/choose_repository.tcl:100 msgid "New..." msgstr "Ново…" -#: lib/choose_repository.tcl:107 lib/choose_repository.tcl:441 msgid "Clone Existing Repository" msgstr "Клониране на съществуващо хранилище" -#: lib/choose_repository.tcl:118 msgid "Clone..." msgstr "Клониране…" -#: lib/choose_repository.tcl:125 lib/choose_repository.tcl:664 msgid "Open Existing Repository" msgstr "Отваряне на съществуващо хранилище" -#: lib/choose_repository.tcl:131 msgid "Open..." msgstr "Отваряне…" -#: lib/choose_repository.tcl:144 msgid "Recent Repositories" msgstr "Скоро ползвани" -#: lib/choose_repository.tcl:154 msgid "Open Recent Repository:" msgstr "Отваряне на хранилище ползвано наскоро:" -#: lib/choose_repository.tcl:317 lib/choose_repository.tcl:324 #, tcl-format msgid "Failed to create repository %s:" msgstr "Неуспешно създаване на хранилището „%s“:" -#: lib/choose_repository.tcl:363 msgid "Directory:" msgstr "Директория:" -#: lib/choose_repository.tcl:393 lib/choose_repository.tcl:518 -#: lib/choose_repository.tcl:698 msgid "Git Repository" msgstr "Хранилище на Git" -#: lib/choose_repository.tcl:418 #, tcl-format msgid "Directory %s already exists." msgstr "Вече съществува директория „%s“." -#: lib/choose_repository.tcl:422 #, tcl-format msgid "File %s already exists." msgstr "Вече съществува файл „%s“." -#: lib/choose_repository.tcl:436 msgid "Clone" msgstr "Клониране" -#: lib/choose_repository.tcl:449 msgid "Source Location:" msgstr "Адрес на източника:" -#: lib/choose_repository.tcl:458 msgid "Target Directory:" msgstr "Целева директория:" -#: lib/choose_repository.tcl:468 msgid "Clone Type:" msgstr "Вид клониране:" -#: lib/choose_repository.tcl:473 msgid "Standard (Fast, Semi-Redundant, Hardlinks)" msgstr "Стандартно (бързо, частично споделяне на файлове, твърди връзки)" -#: lib/choose_repository.tcl:478 msgid "Full Copy (Slower, Redundant Backup)" msgstr "Пълно (бавно, пълноценно резервно копие)" -#: lib/choose_repository.tcl:483 msgid "Shared (Fastest, Not Recommended, No Backup)" msgstr "Споделено (най-бързо, не се препоръчва, не прави резервно копие)" -#: lib/choose_repository.tcl:490 msgid "Recursively clone submodules too" msgstr "Рекурсивно клониране и на подмодулите" -#: lib/choose_repository.tcl:524 lib/choose_repository.tcl:704 -#: lib/choose_repository.tcl:712 #, tcl-format msgid "Not a Git repository: %s" msgstr "Това не е хранилище на Git: %s" -#: lib/choose_repository.tcl:571 msgid "Hardlinks are unavailable. Falling back to copying." msgstr "Не се поддържат твърди връзки. Преминава се към копиране." -#: lib/choose_repository.tcl:579 msgid "Standard only available for local repository." msgstr "Само локални хранилища може да се клонират стандартно" -#: lib/choose_repository.tcl:583 msgid "Shared only available for local repository." msgstr "Само локални хранилища може да се клонират споделено" -#: lib/choose_repository.tcl:590 #, tcl-format msgid "Location %s already exists." msgstr "Местоположението „%s“ вече съществува." -#: lib/choose_repository.tcl:613 #, tcl-format msgid "Cloning from %s" msgstr "Клониране на „%s“" -#: lib/choose_repository.tcl:619 lib/choose_repository.tcl:625 msgid "Clone failed." msgstr "Неуспешно клониране." -#: lib/choose_repository.tcl:669 msgid "Repository:" msgstr "Хранилище:" -#: lib/choose_repository.tcl:718 #, tcl-format msgid "Failed to open repository %s:" msgstr "Неуспешно отваряне на хранилището „%s“:" -#: lib/choose_rev.tcl:52 msgid "This Detached Checkout" msgstr "Това несвързано изтегляне" -#: lib/choose_rev.tcl:59 msgid "Revision Expression:" msgstr "Израз за версия:" -#: lib/choose_rev.tcl:71 msgid "Local Branch" msgstr "Локален клон" -#: lib/choose_rev.tcl:76 msgid "Tracking Branch" msgstr "Следящ клон" -#: lib/choose_rev.tcl:81 lib/choose_rev.tcl:534 msgid "Tag" msgstr "Етикет" -#: lib/choose_rev.tcl:312 #, tcl-format msgid "Invalid revision: %s" msgstr "Неправилна версия: %s" -#: lib/choose_rev.tcl:333 msgid "No revision selected." msgstr "Не е избрана версия." -#: lib/choose_rev.tcl:341 msgid "Revision expression is empty." msgstr "Изразът за версия е празен." -#: lib/choose_rev.tcl:527 msgid "Updated" msgstr "Обновен" -#: lib/choose_rev.tcl:555 msgid "URL" msgstr "Адрес" -#: lib/commit.tcl:9 msgid "" "There is nothing to amend.\n" "\n" @@ -1259,7 +967,6 @@ msgstr "" "Ще създадете първоначалното подаване. Преди него няма други подавания, които " "да поправите.\n" -#: lib/commit.tcl:18 msgid "" "Cannot amend while merging.\n" "\n" @@ -1272,24 +979,19 @@ msgstr "" "В момента все още не сте завършили операция по сливане. Не може да поправите " "предишното подаване, освен ако първо не преустановите текущото сливане.\n" -#: lib/commit.tcl:56 msgid "Error loading commit data for amend:" msgstr "Грешка при зареждане на данните от подаване, които да се поправят:" -#: lib/commit.tcl:83 msgid "Unable to obtain your identity:" msgstr "Идентификацията ви не може да се определи:" -#: lib/commit.tcl:88 msgid "Invalid GIT_COMMITTER_IDENT:" msgstr "Неправилно поле „GIT_COMMITTER_IDENT“:" -#: lib/commit.tcl:138 #, tcl-format msgid "warning: Tcl does not support encoding '%s'." msgstr "предупреждение: Tcl не поддържа кодирането „%s“." -#: lib/commit.tcl:158 msgid "" "Last scanned state does not match repository state.\n" "\n" @@ -1306,7 +1008,6 @@ msgstr "" "\n" "Автоматично ще започне нова проверка.\n" -#: lib/commit.tcl:182 #, tcl-format msgid "" "Unmerged files cannot be committed.\n" @@ -1319,7 +1020,6 @@ msgstr "" "Във файла „%s“ има конфликти при сливане. За да го подадете, трябва първо да " "коригирате конфликтите и да добавите файла към индекса за подаване.\n" -#: lib/commit.tcl:190 #, tcl-format msgid "" "Unknown file state %s detected.\n" @@ -1330,7 +1030,6 @@ msgstr "" "\n" "Файлът „%s“ не може да се подаде чрез текущата програма.\n" -#: lib/commit.tcl:198 msgid "" "No changes to commit.\n" "\n" @@ -1340,7 +1039,6 @@ msgstr "" "\n" "Трябва да добавите поне един файл към индекса, за да подадете.\n" -#: lib/commit.tcl:222 msgid "" "Please supply a commit message.\n" "\n" @@ -1358,15 +1056,12 @@ msgstr "" "● Втори ред: празен.\n" "● Останалите редове: опишете защо се налага тази промяна.\n" -#: lib/commit.tcl:253 msgid "Calling pre-commit hook..." msgstr "Изпълняване на куката преди подаване…" -#: lib/commit.tcl:268 msgid "Commit declined by pre-commit hook." msgstr "Подаването е отхвърлено от куката преди подаване." -#: lib/commit.tcl:287 msgid "" "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 lose your " @@ -1382,32 +1077,25 @@ msgstr "" " \n" "Сигурни ли сте, че искате да извършите текущото подаване?" -#: lib/commit.tcl:308 msgid "Calling commit-msg hook..." msgstr "Изпълняване на куката за съобщението при подаване…" -#: lib/commit.tcl:323 msgid "Commit declined by commit-msg hook." msgstr "Подаването е отхвърлено от куката за съобщението при подаване." -#: lib/commit.tcl:336 msgid "Committing changes..." msgstr "Подаване на промените…" -#: lib/commit.tcl:354 msgid "write-tree failed:" msgstr "неуспешно запазване на дървото (write-tree):" -#: lib/commit.tcl:355 lib/commit.tcl:405 lib/commit.tcl:432 msgid "Commit failed." msgstr "Неуспешно подаване." -#: lib/commit.tcl:372 #, tcl-format msgid "Commit %s appears to be corrupt" msgstr "Подаването „%s“ изглежда повредено" -#: lib/commit.tcl:377 msgid "" "No changes to commit.\n" "\n" @@ -1422,83 +1110,63 @@ msgstr "" "\n" "Автоматично ще започне нова проверка.\n" -#: lib/commit.tcl:384 msgid "No changes to commit." msgstr "Няма промени за подаване." -#: lib/commit.tcl:404 msgid "commit-tree failed:" msgstr "неуспешно подаване на дървото (commit-tree):" -#: lib/commit.tcl:431 msgid "update-ref failed:" msgstr "неуспешно обновяване на указателите (update-ref):" -#: lib/commit.tcl:525 #, tcl-format msgid "Created commit %s: %s" msgstr "Успешно подаване %s: %s" -#: lib/console.tcl:59 msgid "Working... please wait..." msgstr "В момента се извършва действие, изчакайте…" -#: lib/console.tcl:185 msgid "Success" msgstr "Успех" -#: lib/console.tcl:199 msgid "Error: Command Failed" msgstr "Грешка: неуспешно изпълнение на команда" -#: lib/database.tcl:41 msgid "Number of loose objects" msgstr "Брой непакетирани обекти" -#: lib/database.tcl:42 msgid "Disk space used by loose objects" msgstr "Дисково пространство заето от непакетирани обекти" -#: lib/database.tcl:43 msgid "Number of packed objects" msgstr "Брой пакетирани обекти" -#: lib/database.tcl:44 msgid "Number of packs" msgstr "Брой пакети" -#: lib/database.tcl:45 msgid "Disk space used by packed objects" msgstr "Дисково пространство заето от пакетирани обекти" -#: lib/database.tcl:46 msgid "Packed objects waiting for pruning" msgstr "Пакетирани обекти за окастряне" -#: lib/database.tcl:47 msgid "Garbage files" msgstr "Файлове за боклука" -#: lib/database.tcl:56 lib/option.tcl:182 lib/option.tcl:197 lib/option.tcl:220 -#: lib/option.tcl:270 #, tcl-format msgid "%s:" msgstr "%s:" -#: lib/database.tcl:65 #, tcl-format msgid "%s (%s): Database Statistics" msgstr "%s (%s): Статистика на базата от данни" -#: lib/database.tcl:71 msgid "Compressing the object database" msgstr "Компресиране на базата с данни за обектите" -#: lib/database.tcl:82 msgid "Verifying the object database with fsck-objects" msgstr "Проверка на базата с данни за обектите с програмата „fsck-objects“" -#: lib/database.tcl:106 #, tcl-format msgid "" "This repository currently has approximately %i loose objects.\n" @@ -1515,12 +1183,10 @@ msgstr "" "\n" "Да се започне ли компресирането?" -#: lib/date.tcl:25 #, tcl-format msgid "Invalid date from Git: %s" msgstr "Неправилни данни от Git: %s" -#: lib/diff.tcl:72 msgid "" "* No differences detected; stage the file to de-list it from Unstaged " "Changes.\n" @@ -1528,16 +1194,13 @@ msgstr "" "● Няма разлики. Добавете файла към индекса, за да се извади от промените " "извън индекса.\n" -#: lib/diff.tcl:73 msgid "* Click to find other files that may have the same state.\n" msgstr "● Натиснете, за да потърсите други файлове в това състояние.\n" -#: lib/diff.tcl:104 #, tcl-format msgid "Loading diff of %s..." msgstr "Зареждане на разликите в „%s“…" -#: lib/diff.tcl:130 msgid "" "LOCAL: deleted\n" "REMOTE:\n" @@ -1545,7 +1208,6 @@ msgstr "" "ЛОКАЛНО: изтрит\n" "ОТДАЛЕЧЕНО:\n" -#: lib/diff.tcl:135 msgid "" "REMOTE: deleted\n" "LOCAL:\n" @@ -1553,32 +1215,25 @@ msgstr "" "ОТДАЛЕЧЕНО: изтрит\n" "ЛОКАЛНО:\n" -#: lib/diff.tcl:142 msgid "LOCAL:\n" msgstr "ЛОКАЛНО:\n" -#: lib/diff.tcl:145 msgid "REMOTE:\n" msgstr "ОТДАЛЕЧЕНО:\n" -#: lib/diff.tcl:207 lib/diff.tcl:318 #, tcl-format msgid "Unable to display %s" msgstr "Файлът „%s“ не може да се покаже" -#: lib/diff.tcl:208 msgid "Error loading file:" msgstr "Грешка при зареждане на файл:" -#: lib/diff.tcl:214 msgid "Git Repository (subproject)" msgstr "Хранилище на Git (подмодул)" -#: lib/diff.tcl:226 msgid "* Binary file (not showing content)." msgstr "● Двоичен файл (съдържанието не се показва)." -#: lib/diff.tcl:231 #, tcl-format msgid "" "* Untracked file is %d bytes.\n" @@ -1587,7 +1242,6 @@ msgstr "" "● Неследеният файл е %d байта.\n" "● Показват се само първите %d байта.\n" -#: lib/diff.tcl:237 #, tcl-format msgid "" "\n" @@ -1598,80 +1252,62 @@ msgstr "" "● Неследеният файл е отрязан дотук от програмата „%s“.\n" "● Използвайте външен редактор, за да видите целия файл.\n" -#: lib/diff.tcl:554 msgid "Failed to unstage selected hunk." msgstr "Избраното парче не може да се извади от индекса." -#: lib/diff.tcl:562 msgid "Failed to revert selected hunk." msgstr "Избраното парче не може да се върне." -#: lib/diff.tcl:565 msgid "Failed to stage selected hunk." msgstr "Избраното парче не може да се добави към индекса." -#: lib/diff.tcl:658 msgid "Failed to unstage selected line." msgstr "Избраният ред не може да се извади от индекса." -#: lib/diff.tcl:667 msgid "Failed to revert selected line." msgstr "Избраният ред не може да се върне." -#: lib/diff.tcl:671 msgid "Failed to stage selected line." msgstr "Избраният ред не може да се добави към индекса." -#: lib/diff.tcl:860 msgid "Failed to undo last revert." msgstr "Неуспешна отмяна на последното връщане." -#: lib/encoding.tcl:443 msgid "Default" msgstr "Стандартното" -#: lib/encoding.tcl:448 #, tcl-format msgid "System (%s)" msgstr "Системното (%s)" -#: lib/encoding.tcl:459 lib/encoding.tcl:465 msgid "Other" msgstr "Друго" -#: lib/error.tcl:20 #, tcl-format msgid "%s: error" msgstr "%s: грешка" -#: lib/error.tcl:36 #, tcl-format msgid "%s: warning" msgstr "%s: предупреждение" -#: lib/error.tcl:79 #, tcl-format msgid "%s hook failed:" msgstr "%s: грешка от куката" -#: lib/error.tcl:95 msgid "You must correct the above errors before committing." msgstr "Преди да можете да подадете, коригирайте горните грешки." -#: lib/error.tcl:115 #, tcl-format msgid "%s (%s): error" msgstr "%s (%s): грешка" -#: lib/index.tcl:6 msgid "Unable to unlock the index." msgstr "Индексът не може да се отключи." -#: lib/index.tcl:28 msgid "Index Error" msgstr "Грешка в индекса" -#: lib/index.tcl:30 msgid "" "Updating the Git index failed. A rescan will be automatically started to " "resynchronize git-gui." @@ -1679,123 +1315,96 @@ msgstr "" "Неуспешно обновяване на индекса на Git. Автоматично ще започне нова проверка " "за синхронизирането на git-gui." -#: lib/index.tcl:41 msgid "Continue" msgstr "Продължаване" -#: lib/index.tcl:44 msgid "Unlock Index" msgstr "Отключване на индекса" -#: lib/index.tcl:75 lib/index.tcl:144 lib/index.tcl:218 lib/index.tcl:587 msgid "files" msgstr "файлове" -#: lib/index.tcl:324 msgid "Unstaging selected files from commit" msgstr "Изваждане на избраните файлове от подаването" -#: lib/index.tcl:328 #, tcl-format msgid "Unstaging %s from commit" msgstr "Изваждане на „%s“ от подаването" -#: lib/index.tcl:367 msgid "Ready to commit." msgstr "Готовност за подаване." -#: lib/index.tcl:376 msgid "Adding selected files" msgstr "Добавяне на избраните файлове" -#: lib/index.tcl:380 #, tcl-format msgid "Adding %s" msgstr "Добавяне на „%s“" -#: lib/index.tcl:410 #, tcl-format msgid "Stage %d untracked files?" msgstr "Да се добавят ли %d неследени файла към индекса?" -#: lib/index.tcl:418 msgid "Adding all changed files" msgstr "Добавяне на всички променени файлове" -#: lib/index.tcl:501 #, tcl-format msgid "Revert changes in file %s?" msgstr "Да се махнат ли промените във файла „%s“?" -#: lib/index.tcl:506 #, tcl-format msgid "Revert changes in these %i files?" msgstr "Да се махнат ли промените в тези %i файла?" -#: lib/index.tcl:515 msgid "Any unstaged changes will be permanently lost by the revert." msgstr "" "Всички промени, които не са били добавени в индекса, ще се загубят " "безвъзвратно." -#: lib/index.tcl:518 lib/index.tcl:562 msgid "Do Nothing" msgstr "Нищо да не се прави" -#: lib/index.tcl:544 #, tcl-format msgid "Delete untracked file %s?" msgstr "Да се изтрие ли неследеният файл „%s“?" -#: lib/index.tcl:549 #, tcl-format msgid "Delete these %i untracked files?" msgstr "Да се изтрият ли тези %d неследени файла?" -#: lib/index.tcl:559 msgid "Files will be permanently deleted." msgstr "Файловете ще се изтрият окончателно." -#: lib/index.tcl:563 msgid "Delete Files" msgstr "Изтриване на файлове" -#: lib/index.tcl:586 msgid "Deleting" msgstr "Изтриване" -#: lib/index.tcl:665 msgid "Encountered errors deleting files:\n" msgstr "Грешки при изтриване на файловете:\n" -#: lib/index.tcl:674 #, tcl-format msgid "None of the %d selected files could be deleted." msgstr "Никой от избраните %d файла не бе изтрит." -#: lib/index.tcl:679 #, tcl-format msgid "%d of the %d selected files could not be deleted." msgstr "%d от избраните %d файла не бяха изтрити." -#: lib/index.tcl:726 msgid "Reverting selected files" msgstr "Махане на промените в избраните файлове" -#: lib/index.tcl:730 #, tcl-format msgid "Reverting %s" msgstr "Махане на промените в „%s“" -#: lib/line.tcl:16 msgid "Goto Line:" msgstr "Към ред:" -#: lib/line.tcl:22 msgid "Go" msgstr "Към" -#: lib/merge.tcl:13 msgid "" "Cannot merge while amending.\n" "\n" @@ -1806,7 +1415,6 @@ msgstr "" "Трябва да завършите поправянето на текущото подаване, преди да започнете " "сливане.\n" -#: lib/merge.tcl:27 msgid "" "Last scanned state does not match repository state.\n" "\n" @@ -1823,7 +1431,6 @@ msgstr "" "Автоматично ще започне нова проверка.\n" "\n" -#: lib/merge.tcl:45 #, tcl-format msgid "" "You are in the middle of a conflicted merge.\n" @@ -1841,7 +1448,6 @@ msgstr "" "завършите текущото сливане чрез подаване. Чак тогава може да започнете ново " "сливане.\n" -#: lib/merge.tcl:55 #, tcl-format msgid "" "You are in the middle of a change.\n" @@ -1858,39 +1464,31 @@ msgstr "" "Трябва да завършите текущото подаване, преди да започнете сливане. Така ще " "можете лесно да преустановите сливането, ако възникне нужда.\n" -#: lib/merge.tcl:108 #, tcl-format msgid "%s of %s" msgstr "%s от общо %s" -#: lib/merge.tcl:117 #, tcl-format msgid "Merging %s and %s..." msgstr "Сливане на „%s“ и „%s“…" -#: lib/merge.tcl:128 msgid "Merge completed successfully." msgstr "Сливането завърши успешно." -#: lib/merge.tcl:130 msgid "Merge failed. Conflict resolution is required." msgstr "Неуспешно сливане — има конфликти за коригиране." -#: lib/merge.tcl:147 #, tcl-format msgid "%s (%s): Merge" msgstr "%s (%s): Сливане" -#: lib/merge.tcl:155 #, tcl-format msgid "Merge Into %s" msgstr "Сливане в „%s“" -#: lib/merge.tcl:174 msgid "Revision To Merge" msgstr "Версия за сливане" -#: lib/merge.tcl:209 msgid "" "Cannot abort while amending.\n" "\n" @@ -1900,7 +1498,6 @@ msgstr "" "\n" "Трябва да завършите поправката на това подаване.\n" -#: lib/merge.tcl:219 msgid "" "Abort merge?\n" "\n" @@ -1914,7 +1511,6 @@ msgstr "" "\n" "Наистина ли да се преустанови сливането?" -#: lib/merge.tcl:225 msgid "" "Reset changes?\n" "\n" @@ -1928,35 +1524,27 @@ msgstr "" "\n" "Наистина ли да се занулят промените?" -#: lib/merge.tcl:237 msgid "Aborting" msgstr "Преустановяване" -#: lib/merge.tcl:238 msgid "files reset" msgstr "файла със занулени промени" -#: lib/merge.tcl:268 msgid "Abort failed." msgstr "Неуспешно преустановяване." -#: lib/merge.tcl:270 msgid "Abort completed. Ready." msgstr "Успешно преустановяване. Готовност за следващо действие." -#: lib/mergetool.tcl:8 msgid "Force resolution to the base version?" msgstr "Да се използва базовата версия" -#: lib/mergetool.tcl:9 msgid "Force resolution to this branch?" msgstr "Да се използва версията от този клон" -#: lib/mergetool.tcl:10 msgid "Force resolution to the other branch?" msgstr "Да се използва версията от другия клон" -#: lib/mergetool.tcl:14 #, tcl-format msgid "" "Note that the diff shows only conflicting changes.\n" @@ -1971,34 +1559,28 @@ msgstr "" "\n" "Тази операция може да се отмени само чрез започване на сливането наново." -#: lib/mergetool.tcl:45 #, tcl-format msgid "File %s seems to have unresolved conflicts, still stage?" msgstr "" "Изглежда, че все още има некоригирани конфликти във файла „%s“. Да се добави " "ли файлът към индекса?" -#: lib/mergetool.tcl:60 #, tcl-format msgid "Adding resolution for %s" msgstr "Добавяне на корекция на конфликтите в „%s“" -#: lib/mergetool.tcl:141 msgid "Cannot resolve deletion or link conflicts using a tool" msgstr "" "Конфликтите при символни връзки или изтриване не може да се коригират с " "външна програма." -#: lib/mergetool.tcl:146 msgid "Conflict file does not exist" msgstr "Файлът, в който е конфликтът, не съществува" -#: lib/mergetool.tcl:246 #, tcl-format msgid "Not a GUI merge tool: '%s'" msgstr "Това не е графична програма за сливане: „%s“" -#: lib/mergetool.tcl:278 #, tcl-format msgid "" "Unable to process square brackets in \"mergetool.%s.cmd\" configuration " @@ -2010,7 +1592,6 @@ msgstr "" "\n" "Махнете ги." -#: lib/mergetool.tcl:289 #, tcl-format msgid "" "Unsupported merge tool '%s'.\n" @@ -2023,11 +1604,9 @@ msgstr "" "За да я използвате, настройте „mergetool.%s.cmd“ както както е обяснено в " "страницата на ръководството за „git-config“." -#: lib/mergetool.tcl:327 msgid "Merge tool is already running, terminate it?" msgstr "Програмата за сливане вече е стартирана. Да се изключи ли?" -#: lib/mergetool.tcl:347 #, tcl-format msgid "" "Error retrieving versions:\n" @@ -2036,7 +1615,6 @@ msgstr "" "Грешка при изтеглянето на версии:\n" "%s" -#: lib/mergetool.tcl:367 #, tcl-format msgid "" "Could not start the merge tool:\n" @@ -2047,277 +1625,211 @@ msgstr "" "\n" "%s" -#: lib/mergetool.tcl:371 msgid "Running merge tool..." msgstr "Стартиране на програмата за сливане…" -#: lib/mergetool.tcl:399 lib/mergetool.tcl:407 msgid "Merge tool failed." msgstr "Грешка в програмата за сливане." -#: lib/option.tcl:11 #, tcl-format msgid "Invalid global encoding '%s'" msgstr "Неправилно глобално кодиране „%s“" -#: lib/option.tcl:19 #, tcl-format msgid "Invalid repo encoding '%s'" msgstr "Неправилно кодиране „%s“ на хранилището" -#: lib/option.tcl:119 msgid "Restore Defaults" msgstr "Стандартни настройки" -#: lib/option.tcl:123 msgid "Save" msgstr "Запазване" -#: lib/option.tcl:133 #, tcl-format msgid "%s Repository" msgstr "Хранилище „%s“" -#: lib/option.tcl:134 msgid "Global (All Repositories)" msgstr "Глобално (за всички хранилища)" -#: lib/option.tcl:140 msgid "User Name" msgstr "Потребителско име" -#: lib/option.tcl:141 msgid "Email Address" msgstr "Адрес на е-поща" -#: lib/option.tcl:143 msgid "Summarize Merge Commits" msgstr "Обобщаване на подаванията при сливане" -#: lib/option.tcl:144 msgid "Merge Verbosity" msgstr "Подробности при сливанията" -#: lib/option.tcl:145 msgid "Show Diffstat After Merge" msgstr "Извеждане на статистика след сливанията" -#: lib/option.tcl:146 msgid "Use Merge Tool" msgstr "Използване на програма за сливане" -#: lib/option.tcl:148 msgid "Trust File Modification Timestamps" msgstr "Доверие във времето на промяна на файловете" -#: lib/option.tcl:149 msgid "Prune Tracking Branches During Fetch" msgstr "Окастряне на следящите клонове при доставяне" -#: lib/option.tcl:150 msgid "Match Tracking Branches" msgstr "Напасване на следящите клонове" -#: lib/option.tcl:151 msgid "Use Textconv For Diffs and Blames" msgstr "Използване на „textconv“ за разликите и анотирането" -#: lib/option.tcl:152 msgid "Blame Copy Only On Changed Files" msgstr "Анотиране на копието само по променените файлове" -#: lib/option.tcl:153 msgid "Maximum Length of Recent Repositories List" msgstr "Максимален брой на списъка „Скоро ползвани“ хранилища" -#: lib/option.tcl:154 msgid "Minimum Letters To Blame Copy On" msgstr "Минимален брой знаци за анотиране на копието" -#: lib/option.tcl:155 msgid "Blame History Context Radius (days)" msgstr "Исторически обхват за анотиране в дни" -#: lib/option.tcl:156 msgid "Number of Diff Context Lines" msgstr "Брой редове за контекста на разликите" -#: lib/option.tcl:157 msgid "Additional Diff Parameters" msgstr "Аргументи към командата за разликите" -#: lib/option.tcl:158 msgid "Commit Message Text Width" msgstr "Широчина на текста на съобщението при подаване" -#: lib/option.tcl:159 msgid "New Branch Name Template" msgstr "Шаблон за името на новите клони" -#: lib/option.tcl:160 msgid "Default File Contents Encoding" msgstr "Кодиране на файловете" -#: lib/option.tcl:161 msgid "Warn before committing to a detached head" msgstr "Предупреждаване при подаване към несвързан указател" -#: lib/option.tcl:162 msgid "Staging of untracked files" msgstr "Добавяне на неследените файлове към индекса" -#: lib/option.tcl:163 msgid "Show untracked files" msgstr "Показване на неследените файлове" -#: lib/option.tcl:164 msgid "Tab spacing" msgstr "Ширина на табулацията" -#: lib/option.tcl:210 msgid "Change" msgstr "Смяна" -#: lib/option.tcl:248 msgid "Spelling Dictionary:" msgstr "Правописен речник:" -#: lib/option.tcl:272 msgid "Change Font" msgstr "Смяна на шрифта" -#: lib/option.tcl:276 #, tcl-format msgid "Choose %s" msgstr "Избор на „%s“" -#: lib/option.tcl:282 msgid "pt." msgstr "тчк." -#: lib/option.tcl:296 msgid "Preferences" msgstr "Настройки" -#: lib/option.tcl:333 msgid "Failed to completely save options:" msgstr "Неуспешно запазване на настройките:" -#: lib/remote_add.tcl:20 #, tcl-format msgid "%s (%s): Add Remote" msgstr "%s (%s): Добавяне на отдалечено хранилище" -#: lib/remote_add.tcl:25 msgid "Add New Remote" msgstr "Добавяне на отдалечено хранилище" -#: lib/remote_add.tcl:30 lib/tools_dlg.tcl:37 msgid "Add" msgstr "Добавяне" -#: lib/remote_add.tcl:39 msgid "Remote Details" msgstr "Данни за отдалеченото хранилище" -#: lib/remote_add.tcl:50 msgid "Location:" msgstr "Местоположение:" -#: lib/remote_add.tcl:60 msgid "Further Action" msgstr "Следващо действие" -#: lib/remote_add.tcl:63 msgid "Fetch Immediately" msgstr "Незабавно доставяне" -#: lib/remote_add.tcl:69 msgid "Initialize Remote Repository and Push" msgstr "Инициализиране на отдалеченото хранилище и изтласкване на промените" -#: lib/remote_add.tcl:75 msgid "Do Nothing Else Now" msgstr "Да не се прави нищо" -#: lib/remote_add.tcl:100 msgid "Please supply a remote name." msgstr "Задайте име за отдалеченото хранилище." -#: lib/remote_add.tcl:113 #, tcl-format msgid "'%s' is not an acceptable remote name." msgstr "Отдалечено хранилище не може да се казва „%s“." -#: lib/remote_add.tcl:124 #, tcl-format msgid "Failed to add remote '%s' of location '%s'." msgstr "Неуспешно добавяне на отдалеченото хранилище „%s“ от адрес „%s“." -#: lib/remote_add.tcl:132 lib/transport.tcl:6 #, tcl-format msgid "fetch %s" msgstr "доставяне на „%s“" -#: lib/remote_add.tcl:133 #, tcl-format msgid "Fetching the %s" msgstr "Доставяне на „%s“" -#: lib/remote_add.tcl:156 #, tcl-format msgid "Do not know how to initialize repository at location '%s'." msgstr "Хранилището с местоположение „%s“ не може да се инициализира." -#: lib/remote_add.tcl:162 lib/transport.tcl:54 lib/transport.tcl:92 -#: lib/transport.tcl:110 #, tcl-format msgid "push %s" msgstr "изтласкване на „%s“" -#: lib/remote_add.tcl:163 #, tcl-format msgid "Setting up the %s (at %s)" msgstr "Добавяне на хранилище „%s“ (с адрес „%s“)" -#: lib/remote_branch_delete.tcl:29 #, tcl-format msgid "%s (%s): Delete Branch Remotely" msgstr "%s (%s): Изтриване на отдалечения клон" -#: lib/remote_branch_delete.tcl:34 msgid "Delete Branch Remotely" msgstr "Изтриване на отдалечения клон" -#: lib/remote_branch_delete.tcl:48 msgid "From Repository" msgstr "От хранилище" -#: lib/remote_branch_delete.tcl:51 lib/transport.tcl:165 msgid "Remote:" msgstr "Отдалечено хранилище:" -#: lib/remote_branch_delete.tcl:68 lib/transport.tcl:183 msgid "Arbitrary Location:" msgstr "Произволно местоположение:" -#: lib/remote_branch_delete.tcl:84 msgid "Branches" msgstr "Клони" -#: lib/remote_branch_delete.tcl:106 msgid "Delete Only If" msgstr "Изтриване, само ако" -#: lib/remote_branch_delete.tcl:108 msgid "Merged Into:" msgstr "Слят в:" -#: lib/remote_branch_delete.tcl:149 msgid "A branch is required for 'Merged Into'." msgstr "За данните „Слят в“ е необходимо да зададете клон." -#: lib/remote_branch_delete.tcl:181 #, tcl-format msgid "" "The following branches are not completely merged into %s:\n" @@ -2328,7 +1840,6 @@ msgstr "" "\n" " ● %s" -#: lib/remote_branch_delete.tcl:186 #, tcl-format msgid "" "One or more of the merge tests failed because you have not fetched the " @@ -2337,140 +1848,107 @@ msgstr "" "Поне една от пробите за сливане е неуспешна, защото не сте доставили всички " "необходими подавания. Пробвайте първо да доставите подаванията от „%s“." -#: lib/remote_branch_delete.tcl:204 msgid "Please select one or more branches to delete." msgstr "Изберете поне един клон за изтриване." -#: lib/remote_branch_delete.tcl:223 #, tcl-format msgid "Deleting branches from %s" msgstr "Изтриване на клони от „%s“" -#: lib/remote_branch_delete.tcl:296 msgid "No repository selected." msgstr "Не е избрано хранилище." -#: lib/remote_branch_delete.tcl:301 #, tcl-format msgid "Scanning %s..." msgstr "Претърсване на „%s“…" -#: lib/remote.tcl:200 msgid "Push to" msgstr "Изтласкване към" -#: lib/remote.tcl:218 msgid "Remove Remote" msgstr "Премахване на отдалечено хранилище" -#: lib/remote.tcl:223 msgid "Prune from" msgstr "Окастряне от" -#: lib/remote.tcl:228 msgid "Fetch from" msgstr "Доставяне от" -#: lib/remote.tcl:247 lib/remote.tcl:251 lib/remote.tcl:256 lib/remote.tcl:262 msgid "All" msgstr "Всички" -#: lib/search.tcl:47 msgid "Find:" msgstr "Търсене:" -#: lib/search.tcl:49 msgid "Next" msgstr "Следваща поява" -#: lib/search.tcl:50 msgid "Prev" msgstr "Предишна поява" -#: lib/search.tcl:51 msgid "RegExp" msgstr "РегИзр" -#: lib/search.tcl:53 msgid "Case" msgstr "Главни/Малки" -#: lib/shortcut.tcl:8 lib/shortcut.tcl:40 lib/shortcut.tcl:72 #, tcl-format msgid "%s (%s): Create Desktop Icon" msgstr "%s (%s): Добавяне на икона на работния плот" -#: lib/shortcut.tcl:24 lib/shortcut.tcl:62 msgid "Cannot write shortcut:" msgstr "Клавишната комбинация не може да се запази:" -#: lib/shortcut.tcl:137 msgid "Cannot write icon:" msgstr "Иконата не може да се запази:" -#: lib/spellcheck.tcl:57 msgid "Unsupported spell checker" msgstr "Тази програма за проверка на правописа не се поддържа" -#: lib/spellcheck.tcl:65 msgid "Spell checking is unavailable" msgstr "Липсва програма за проверка на правописа" -#: lib/spellcheck.tcl:68 msgid "Invalid spell checking configuration" msgstr "Неправилни настройки на проверката на правописа" -#: lib/spellcheck.tcl:70 #, tcl-format msgid "Reverting dictionary to %s." msgstr "Ползване на речник за език „%s“." -#: lib/spellcheck.tcl:73 msgid "Spell checker silently failed on startup" msgstr "Програмата за правопис даже не стартира успешно." -#: lib/spellcheck.tcl:80 msgid "Unrecognized spell checker" msgstr "Непозната програма за проверка на правописа" -#: lib/spellcheck.tcl:186 msgid "No Suggestions" msgstr "Няма предложения" -#: lib/spellcheck.tcl:388 msgid "Unexpected EOF from spell checker" msgstr "Неочакван край на файл от програмата за проверка на правописа" -#: lib/spellcheck.tcl:392 msgid "Spell Checker Failed" msgstr "Грешка в програмата за проверка на правописа" -#: lib/sshkey.tcl:34 msgid "No keys found." msgstr "Не са открити ключове." -#: lib/sshkey.tcl:37 #, tcl-format msgid "Found a public key in: %s" msgstr "Открит е публичен ключ в „%s“" -#: lib/sshkey.tcl:43 msgid "Generate Key" msgstr "Генериране на ключ" -#: lib/sshkey.tcl:58 msgid "Copy To Clipboard" msgstr "Копиране към системния буфер" -#: lib/sshkey.tcl:72 msgid "Your OpenSSH Public Key" msgstr "Публичният ви ключ за OpenSSH" -#: lib/sshkey.tcl:80 msgid "Generating..." msgstr "Генериране…" -#: lib/sshkey.tcl:87 #, tcl-format msgid "" "Could not start ssh-keygen:\n" @@ -2481,81 +1959,63 @@ msgstr "" "\n" "%s" -#: lib/sshkey.tcl:114 msgid "Generation failed." msgstr "Неуспешно генериране." -#: lib/sshkey.tcl:121 msgid "Generation succeeded, but no keys found." msgstr "Генерирането завърши успешно, а не са намерени ключове." -#: lib/sshkey.tcl:124 #, tcl-format msgid "Your key is in: %s" msgstr "Ключът ви е в „%s“" -#: lib/status_bar.tcl:258 #, tcl-format msgid "%s ... %*i of %*i %s (%3i%%)" msgstr "%s… %*i от общо %*i %s (%3i%%)" -#: lib/tools_dlg.tcl:22 #, tcl-format msgid "%s (%s): Add Tool" msgstr "%s (%s): Добавяне на команда" -#: lib/tools_dlg.tcl:28 msgid "Add New Tool Command" msgstr "Добавяне на команда" -#: lib/tools_dlg.tcl:34 msgid "Add globally" msgstr "Глобално добавяне" -#: lib/tools_dlg.tcl:46 msgid "Tool Details" msgstr "Подробности за командата" -#: lib/tools_dlg.tcl:49 msgid "Use '/' separators to create a submenu tree:" msgstr "За създаване на подменюта използвайте знака „/“ за разделител:" -#: lib/tools_dlg.tcl:60 msgid "Command:" msgstr "Команда:" -#: lib/tools_dlg.tcl:71 msgid "Show a dialog before running" msgstr "Преди изпълнение да се извежда диалогов прозорец" -#: lib/tools_dlg.tcl:77 msgid "Ask the user to select a revision (sets $REVISION)" msgstr "Потребителят да укаже версия (задаване на променливата $REVISION)" -#: lib/tools_dlg.tcl:82 msgid "Ask the user for additional arguments (sets $ARGS)" msgstr "" "Потребителят да укаже допълнителни аргументи (задаване на променливата $ARGS)" -#: lib/tools_dlg.tcl:89 msgid "Don't show the command output window" msgstr "Без показване на прозорец с изхода от командата" -#: lib/tools_dlg.tcl:94 msgid "Run only if a diff is selected ($FILENAME not empty)" msgstr "" "Стартиране само след избор на разлика (променливата $FILENAME не е празна)" -#: lib/tools_dlg.tcl:118 msgid "Please supply a name for the tool." msgstr "Задайте име за командата." -#: lib/tools_dlg.tcl:126 #, tcl-format msgid "Tool '%s' already exists." msgstr "Командата „%s“ вече съществува." -#: lib/tools_dlg.tcl:148 #, tcl-format msgid "" "Could not add tool:\n" @@ -2564,154 +2024,121 @@ msgstr "" "Командата не може да се добави:\n" "%s" -#: lib/tools_dlg.tcl:187 #, tcl-format msgid "%s (%s): Remove Tool" msgstr "%s (%s): Премахване на команда" -#: lib/tools_dlg.tcl:193 msgid "Remove Tool Commands" msgstr "Премахване на команди" -#: lib/tools_dlg.tcl:198 msgid "Remove" msgstr "Премахване" -#: lib/tools_dlg.tcl:231 msgid "(Blue denotes repository-local tools)" msgstr "(командите към локалното хранилище са обозначени в синьо)" -#: lib/tools_dlg.tcl:283 #, tcl-format msgid "%s (%s):" msgstr "%s (%s):" -#: lib/tools_dlg.tcl:292 #, tcl-format msgid "Run Command: %s" msgstr "Изпълнение на командата „%s“" -#: lib/tools_dlg.tcl:306 msgid "Arguments" msgstr "Аргументи" -#: lib/tools_dlg.tcl:341 msgid "OK" msgstr "Добре" -#: lib/tools.tcl:76 #, tcl-format msgid "Running %s requires a selected file." msgstr "За изпълнението на „%s“ трябва да изберете файл." -#: lib/tools.tcl:92 #, tcl-format msgid "Are you sure you want to run %1$s on file \"%2$s\"?" msgstr "Сигурни ли сте, че искате да изпълните „%1$s“ върху файла „%2$s“?" -#: lib/tools.tcl:96 #, tcl-format msgid "Are you sure you want to run %s?" msgstr "Сигурни ли сте, че искате да изпълните „%s“?" -#: lib/tools.tcl:118 #, tcl-format msgid "Tool: %s" msgstr "Команда: %s" -#: lib/tools.tcl:119 #, tcl-format msgid "Running: %s" msgstr "Изпълнение: %s" -#: lib/tools.tcl:157 #, tcl-format msgid "Tool completed successfully: %s" msgstr "Командата завърши успешно: %s" -#: lib/tools.tcl:159 #, tcl-format msgid "Tool failed: %s" msgstr "Командата върна грешка: %s" -#: lib/transport.tcl:7 #, tcl-format msgid "Fetching new changes from %s" msgstr "Доставяне на промените от „%s“" -#: lib/transport.tcl:18 #, tcl-format msgid "remote prune %s" msgstr "окастряне на следящите клони към „%s“" -#: lib/transport.tcl:19 #, tcl-format msgid "Pruning tracking branches deleted from %s" msgstr "Окастряне на следящите клони на изтритите клони от „%s“" -#: lib/transport.tcl:25 msgid "fetch all remotes" msgstr "доставяне от всички отдалечени" -#: lib/transport.tcl:26 msgid "Fetching new changes from all remotes" msgstr "Доставяне на промените от всички отдалечени хранилища" -#: lib/transport.tcl:40 msgid "remote prune all remotes" msgstr "окастряне на следящите изтрити" -#: lib/transport.tcl:41 msgid "Pruning tracking branches deleted from all remotes" msgstr "" "Окастряне на следящите клони на изтритите клони от всички отдалечени " "хранилища" -#: lib/transport.tcl:55 #, tcl-format msgid "Pushing changes to %s" msgstr "Изтласкване на промените към „%s“" -#: lib/transport.tcl:93 #, tcl-format msgid "Mirroring to %s" msgstr "Изтласкване на всичко към „%s“" -#: lib/transport.tcl:111 #, tcl-format msgid "Pushing %s %s to %s" msgstr "Изтласкване на %s „%s“ към „%s“" -#: lib/transport.tcl:132 msgid "Push Branches" msgstr "Клони за изтласкване" -#: lib/transport.tcl:147 msgid "Source Branches" msgstr "Клони-източници" -#: lib/transport.tcl:162 msgid "Destination Repository" msgstr "Целево хранилище" -#: lib/transport.tcl:201 msgid "Transfer Options" msgstr "Настройки при пренасянето" -#: lib/transport.tcl:203 msgid "Force overwrite existing branch (may discard changes)" msgstr "" "Изрично презаписване на съществуващ клон (някои промени може да се загубят)" -#: lib/transport.tcl:207 msgid "Use thin pack (for slow network connections)" msgstr "Максимална компресия (за бавни мрежови връзки)" -#: lib/transport.tcl:211 msgid "Include tags" msgstr "Включване на етикетите" -#: lib/transport.tcl:225 #, tcl-format msgid "%s (%s): Push" msgstr "%s (%s): Изтласкване" From b28119551bc06986bdc9048ee30393b6b9b20c5f Mon Sep 17 00:00:00 2001 From: Johannes Sixt Date: Tue, 29 Jul 2025 14:52:54 +0200 Subject: [PATCH 23/35] gitk: avoid duplicated upstream refs It is possible that multiple local branches track the same upstream. In this case, the refs dialog lists the tracked upstream branch multiple times. This is undesirable. Make them unique. Signed-off-by: Johannes Sixt --- gitk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitk b/gitk index 38c2c81a79eb31..b31d0b0a63ed0a 100755 --- a/gitk +++ b/gitk @@ -10340,7 +10340,7 @@ proc refill_reflist {} { } } } - set trackedremoterefs [lsort -index 0 $trackedremoterefs] + set trackedremoterefs [lsort -index 0 -unique $trackedremoterefs] set localrefs [lsort -index 0 $localrefs] foreach n [array names headids] { From 9965cc771b6b43a8852a4950a196180f2c616891 Mon Sep 17 00:00:00 2001 From: Michael Rappazzo Date: Thu, 31 Jul 2025 07:53:21 -0400 Subject: [PATCH 24/35] gitk: filter invisible upstream refs from reference list In refill_reflist, upstream refs are now only included if their commits are visible in the current view. This prevents display issues like multiple highlighted branches when clicking entries. Signed-off-by: Michael Rappazzo --- gitk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitk b/gitk index b31d0b0a63ed0a..080192820e8f3c 100755 --- a/gitk +++ b/gitk @@ -10332,7 +10332,7 @@ proc refill_reflist {} { if {![string match "remotes/*" $n] && [string match $reflistfilter $n]} { if {[commitinview $headids($n) $curview]} { lappend localrefs [list $n H] - if {[info exists upstreamofref($n)]} { + if {[info exists upstreamofref($n)] && [commitinview $headids($upstreamofref($n)) $curview]} { lappend trackedremoterefs [list $upstreamofref($n) R] } } else { From 8c02ecc6f66d6f0831485948555594bf1fff9763 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= Date: Thu, 31 Jul 2025 01:06:24 -0700 Subject: [PATCH 25/35] git-gui: remove uname_O in Makefile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Last used in ae49066 (git gui Makefile - remove Cygwin modifications, 2023-06-26), and unused since. Signed-off-by: Carlo Marcelo Arenas Belón Signed-off-by: Johannes Sixt --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index 315888f302b050..a87dc0658749f8 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,6 @@ GIT-VERSION-FILE: FORCE @$(SHELL_PATH) ./GIT-VERSION-GEN . $@ uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not') -uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not') uname_R := $(shell sh -c 'uname -r 2>/dev/null || echo not') SCRIPT_SH = git-gui.sh From de0ac94c58fb6857cfcb902245a89396c690ab99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= Date: Thu, 31 Jul 2025 01:06:25 -0700 Subject: [PATCH 26/35] git-gui: fix dependency of GITGUI_MAIN on generator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since 854e883 (git-gui: extract script to generate "git-gui", 2025-03-11), the logic to generate the main script was pulled out of the Makefile, but adding the resulting generator as a dependency was missed. If the logic changes, the main script should be regenerated, so add it as a dependency. Signed-off-by: Carlo Marcelo Arenas Belón Signed-off-by: Johannes Sixt --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index a87dc0658749f8..179857d08836e5 100644 --- a/Makefile +++ b/Makefile @@ -168,7 +168,7 @@ git-gui: windows/git-gui.sh cp $< $@ endif -$(GITGUI_MAIN): git-gui.sh GIT-VERSION-FILE GIT-GUI-BUILD-OPTIONS +$(GITGUI_MAIN): git-gui.sh GIT-VERSION-FILE GIT-GUI-BUILD-OPTIONS generate-git-gui.sh $(QUIET_GEN)$(SHELL_PATH) generate-git-gui.sh "$<" "$@" ./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE XGETTEXT ?= xgettext From df41037be019863d1de86e5bacce91d7218758b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= Date: Thu, 31 Jul 2025 01:06:26 -0700 Subject: [PATCH 27/35] git-gui: retire Git Gui.app MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In a recent commit, the minimum version of Tcl/Tk was raised to 8.6, but the "app" relies on the system provided Framework that is based on 8.5. Remove it, and let git-gui use a third party version of Wish if available. Signed-off-by: Carlo Marcelo Arenas Belón Signed-off-by: Johannes Sixt --- .gitignore | 1 - GIT-GUI-BUILD-OPTIONS.in | 1 - Makefile | 51 ---------------------------------- generate-macos-app.sh | 30 -------------------- generate-macos-wrapper.sh | 35 ----------------------- macosx/AppMain.tcl | 29 ------------------- macosx/Info.plist | 30 -------------------- macosx/git-gui.icns | Bin 28866 -> 0 bytes meson.build | 57 -------------------------------------- 9 files changed, 234 deletions(-) delete mode 100755 generate-macos-app.sh delete mode 100755 generate-macos-wrapper.sh delete mode 100644 macosx/AppMain.tcl delete mode 100644 macosx/Info.plist delete mode 100644 macosx/git-gui.icns diff --git a/.gitignore b/.gitignore index ff6e0be4b4126c..ba845f3f3a357c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ .DS_Store config.mak -Git Gui.app* git-gui.tcl GIT-GUI-BUILD-OPTIONS GIT-VERSION-FILE diff --git a/GIT-GUI-BUILD-OPTIONS.in b/GIT-GUI-BUILD-OPTIONS.in index 5fd885c2bf73e9..3c112af57803a0 100644 --- a/GIT-GUI-BUILD-OPTIONS.in +++ b/GIT-GUI-BUILD-OPTIONS.in @@ -4,4 +4,3 @@ GITGUI_RELATIVE=@GITGUI_RELATIVE@ SHELL_PATH=@SHELL_PATH@ TCLTK_PATH=@TCLTK_PATH@ TCL_PATH=@TCL_PATH@ -TKEXECUTABLE=@TKEXECUTABLE@ diff --git a/Makefile b/Makefile index 179857d08836e5..2ac5f442f499e2 100644 --- a/Makefile +++ b/Makefile @@ -52,8 +52,6 @@ INSTALL_R0 = $(INSTALL) -m 644 # space is required here INSTALL_R1 = INSTALL_X0 = $(INSTALL) -m 755 # space is required here INSTALL_X1 = -INSTALL_A0 = find # space is required here -INSTALL_A1 = | cpio -pud INSTALL_L0 = rm -f # space is required here INSTALL_L1 = && ln # space is required here INSTALL_L2 = @@ -78,8 +76,6 @@ ifndef V INSTALL_R1 = && echo ' ' INSTALL 644 `basename $$src` && $(INSTALL) -m 644 $$src INSTALL_X0 = src= INSTALL_X1 = && echo ' ' INSTALL 755 `basename $$src` && $(INSTALL) -m 755 $$src - INSTALL_A0 = src= - INSTALL_A1 = && echo ' ' INSTALL ' ' `basename "$$src"` && find "$$src" | cpio -pud INSTALL_L0 = dst= INSTALL_L1 = && src= @@ -100,18 +96,6 @@ else TCL_PATH ?= $(dir $(TCLTK_PATH))$(notdir $(subst wish,tclsh,$(TCLTK_PATH))) endif -ifeq ($(uname_S),Darwin) - TKFRAMEWORK = /Library/Frameworks/Tk.framework/Resources/Wish.app - ifeq ($(shell echo "$(uname_R)" | awk -F. '{if ($$1 >= 9) print "y"}')_$(shell test -d $(TKFRAMEWORK) || echo n),y_n) - TKFRAMEWORK = /System/Library/Frameworks/Tk.framework/Resources/Wish.app - ifeq ($(shell test -d $(TKFRAMEWORK) || echo n),n) - TKFRAMEWORK = /System/Library/Frameworks/Tk.framework/Resources/Wish\ Shell.app - endif - endif - TKEXECUTABLE = $(TKFRAMEWORK)/Contents/MacOS/$(shell basename "$(TKFRAMEWORK)" .app) - TKEXECUTABLE_SQ = $(subst ','\'',$(TKEXECUTABLE)) -endif - ifeq ($(findstring $(firstword -$(MAKEFLAGS)),s),s) QUIET_GEN = endif @@ -129,16 +113,10 @@ libdir_SQ = $(subst ','\'',$(gg_libdir)) exedir = $(dir $(gitexecdir))share/git-gui/lib GITGUI_RELATIVE := -GITGUI_MACOSXAPP := ifeq ($(exedir),$(gg_libdir)) GITGUI_RELATIVE := 1 endif -ifeq ($(uname_S),Darwin) - ifeq ($(shell test -d $(TKFRAMEWORK) && echo y),y) - GITGUI_MACOSXAPP := YesPlease - endif -endif ifneq (,$(findstring MINGW,$(uname_S))) ifeq ($(shell expr "$(uname_R)" : '1\.'),2) NO_MSGFMT=1 @@ -147,20 +125,6 @@ endif GITGUI_RELATIVE := 1 endif -ifdef GITGUI_MACOSXAPP -GITGUI_MAIN := git-gui.tcl - -git-gui: generate-macos-wrapper.sh GIT-VERSION-FILE GIT-GUI-BUILD-OPTIONS - $(QUIET_GEN)$(SHELL_PATH) generate-macos-wrapper.sh "$@" ./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE - -Git\ Gui.app: GIT-VERSION-FILE GIT-GUI-BUILD-OPTIONS \ - macosx/Info.plist \ - macosx/git-gui.icns \ - macosx/AppMain.tcl \ - $(TKEXECUTABLE) - $(QUIET_GEN)$(SHELL_PATH) generate-macos-app.sh . "$@" ./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE -endif - ifdef GITGUI_WINDOWS_WRAPPER GITGUI_MAIN := git-gui.tcl @@ -205,14 +169,10 @@ GIT-GUI-BUILD-OPTIONS: FORCE -e 's|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \ -e 's|@TCLTK_PATH@|$(TCLTK_PATH_SQ)|' \ -e 's|@TCL_PATH@|$(TCL_PATH_SQ)|' \ - -e 's|@TKEXECUTABLE@|$(TKEXECUTABLE_SQ)|' \ $@.in >$@+ @if grep -q '^[A-Z][A-Z_]*=@.*@$$' $@+; then echo "Unsubstituted build options in $@" >&2 && exit 1; fi @if cmp $@+ $@ >/dev/null 2>&1; then $(RM) $@+; else mv $@+ $@; fi -ifdef GITGUI_MACOSXAPP -all:: git-gui Git\ Gui.app -endif ifdef GITGUI_WINDOWS_WRAPPER all:: git-gui endif @@ -228,10 +188,6 @@ ifdef GITGUI_WINDOWS_WRAPPER endif $(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(libdir_SQ)' $(INSTALL_D1) $(QUIET)$(INSTALL_R0)lib/tclIndex $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)' -ifdef GITGUI_MACOSXAPP - $(QUIET)$(INSTALL_A0)'Git Gui.app' $(INSTALL_A1) '$(DESTDIR_SQ)$(libdir_SQ)' - $(QUIET)$(INSTALL_X0)git-gui.tcl $(INSTALL_X1) '$(DESTDIR_SQ)$(libdir_SQ)' -endif $(QUIET)$(foreach p,$(ALL_LIBFILES) $(NONTCL_LIBFILES), $(INSTALL_R0)$p $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)' &&) true $(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(msgsdir_SQ)' $(INSTALL_D1) $(QUIET)$(foreach p,$(ALL_MSGFILES), $(INSTALL_R0)$p $(INSTALL_R1) '$(DESTDIR_SQ)$(msgsdir_SQ)' &&) true @@ -246,10 +202,6 @@ ifdef GITGUI_WINDOWS_WRAPPER endif $(QUIET)$(CLEAN_DST) '$(DESTDIR_SQ)$(libdir_SQ)' $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)'/tclIndex $(REMOVE_F1) -ifdef GITGUI_MACOSXAPP - $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)/Git Gui.app' $(REMOVE_F1) - $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)'/git-gui.tcl $(REMOVE_F1) -endif $(QUIET)$(foreach p,$(ALL_LIBFILES) $(NONTCL_LIBFILES), $(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)'/$(notdir $p) $(REMOVE_F1) &&) true $(QUIET)$(CLEAN_DST) '$(DESTDIR_SQ)$(msgsdir_SQ)' $(QUIET)$(foreach p,$(ALL_MSGFILES), $(REMOVE_F0)'$(DESTDIR_SQ)$(msgsdir_SQ)'/$(notdir $p) $(REMOVE_F1) &&) true @@ -265,9 +217,6 @@ dist-version: GIT-VERSION-FILE clean:: $(RM_RF) $(GITGUI_MAIN) lib/tclIndex po/*.msg $(PO_TEMPLATE) $(RM_RF) GIT-VERSION-FILE GIT-GUI-BUILD-OPTIONS -ifdef GITGUI_MACOSXAPP - $(RM_RF) 'Git Gui.app'* git-gui -endif ifdef GITGUI_WINDOWS_WRAPPER $(RM_RF) git-gui endif diff --git a/generate-macos-app.sh b/generate-macos-app.sh deleted file mode 100755 index 71b9fa67a4be7f..00000000000000 --- a/generate-macos-app.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh - -set -e - -SOURCE_DIR="$1" -OUTPUT="$2" -BUILD_OPTIONS="$3" -VERSION_FILE="$4" - -. "$BUILD_OPTIONS" -. "$VERSION_FILE" - -rm -rf "$OUTPUT" "$OUTPUT+" - -mkdir -p "$OUTPUT+/Contents/MacOS" -mkdir -p "$OUTPUT+/Contents/Resources/Scripts" - -cp "$TKEXECUTABLE" "$OUTPUT+/Contents/MacOS" -cp "$SOURCE_DIR/macosx/git-gui.icns" "$OUTPUT+/Contents/Resources" -sed \ - -e "s/@@GITGUI_VERSION@@/$GITGUI_VERSION/g" \ - -e "s/@@GITGUI_TKEXECUTABLE@@/$(basename "$TKEXECUTABLE")/g" \ - "$SOURCE_DIR/macosx/Info.plist" \ - >"$OUTPUT+/Contents/Info.plist" -sed \ - -e "s|@@gitexecdir@@|$GITGUI_GITEXECDIR|" \ - -e "s|@@GITGUI_LIBDIR@@|$GITGUI_LIBDIR|" \ - "$SOURCE_DIR/macosx/AppMain.tcl" \ - >"$OUTPUT+/Contents/Resources/Scripts/AppMain.tcl" -mv "$OUTPUT+" "$OUTPUT" diff --git a/generate-macos-wrapper.sh b/generate-macos-wrapper.sh deleted file mode 100755 index 0304937f41e169..00000000000000 --- a/generate-macos-wrapper.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh - -set -e - -if test "$#" -ne 3 -then - echo >&2 "usage: $0 " - exit 1 -fi - -OUTPUT="$1" -BUILD_OPTIONS="$2" -VERSION_FILE="$3" - -. "$BUILD_OPTIONS" - -rm -f "$OUTPUT" "$OUTPUT+" - -( - echo "#!$SHELL_PATH" - cat "$BUILD_OPTIONS" "$VERSION_FILE" - cat <<-'EOF' - if test "z$*" = zversion || - test "z$*" = z--version - then - echo "git-gui version $GITGUI_VERSION" - else - libdir="${GIT_GUI_LIB_DIR:-$GITGUI_LIBDIR}" - exec "$libdir/Git Gui.app/Contents/MacOS/$(basename "$TKEXECUTABLE")" "$0" "$@" - fi - EOF -) >"$OUTPUT+" - -chmod +x "$OUTPUT+" -mv "$OUTPUT+" "$OUTPUT" diff --git a/macosx/AppMain.tcl b/macosx/AppMain.tcl deleted file mode 100644 index b6c6dc35003bb3..00000000000000 --- a/macosx/AppMain.tcl +++ /dev/null @@ -1,29 +0,0 @@ -set gitexecdir {@@gitexecdir@@} -if { [info exists ::env(GIT_GUI_LIB_DIR) ] } { - set gitguilib $::env(GIT_GUI_LIB_DIR) -} else { - set gitguilib {@@GITGUI_LIBDIR@@} -} - -set env(PATH) "$gitexecdir:$env(PATH)" - -if {[string first -psn [lindex $argv 0]] == 0} { - lset argv 0 [file join $gitexecdir git-gui] -} - -if {[file tail [lindex $argv 0]] eq {gitk}} { - set argv0 [lindex $argv 0] - set AppMain_source $argv0 -} else { - set argv0 [file join $gitexecdir [file tail [lindex $argv 0]]] - set AppMain_source [file join $gitguilib git-gui.tcl] - if {[info exists env(PWD)]} { - cd $env(PWD) - } elseif {[pwd] eq {/}} { - cd $env(HOME) - } -} - -unset gitexecdir gitguilib -set argv [lrange $argv 1 end] -source $AppMain_source diff --git a/macosx/Info.plist b/macosx/Info.plist deleted file mode 100644 index 1ade121c4cc532..00000000000000 --- a/macosx/Info.plist +++ /dev/null @@ -1,30 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - @@GITGUI_TKEXECUTABLE@@ - CFBundleGetInfoString - Git Gui @@GITGUI_VERSION@@ © 2006-2007 Shawn Pearce, et. al. - CFBundleIconFile - git-gui.icns - CFBundleIdentifier - cz.or.repo.git-gui - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - Git Gui - CFBundlePackageType - APPL - CFBundleShortVersionString - @@GITGUI_VERSION@@ - CFBundleSignature - GITg - CFBundleVersion - @@GITGUI_VERSION@@ - NSHighResolutionCapable - - - diff --git a/macosx/git-gui.icns b/macosx/git-gui.icns deleted file mode 100644 index 77d88a77a7669667335cf6fd5767c8b40f3ce6e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28866 zcmeHP4O~>^nt#p=2y%5T_jlc}63a@{yjiYES8sx8l*`r3bSS{u2t2L5Yu9oH5|2gx)IfpX?!;ILidHnHy zJYWCk{W$M=&wHGspO!k4D1E1X+RQ#g^f+hajNLADyWq;{LKteUe_;(SzAIPC^)m-Q zNW>k@C5<`e$pSIWqwoQvMm-u6GiuaRW(uD^c5Hl1?AWnW^ISUFlT-7ER+)RyI5W{^ zb3KJvNL%=@*=+1Zi74Kkw)TLL(Oe6K&Cy33U~jWCa1_Dz(LuJgBo*aYcATOkXdOej zA}!+qq93MbLcP0=84OG}XaR*z&reCoOE(chTUC7?p&>NSG2oHX$J+Ul1bn{`y>mRb!5(Q3&e=^FSJcutwL^7{8|b0v*=OXv1`jX*lKw zD3U+mC^%DD{dT*(iN9*M?{W%z*42H;U#hFCXf~1QgWY}8D-z*u2mQs#>diaoh_lZ9 zrpJR1>U6sCE|dHJw`@LC{>LT%@Y0L(`DH(*JL{3Wk>>H;%Fj9LQT$8PIg(cL&bsz& z!|yP>7d~~?>G^BC-Om3s(N(9oZB6I5KPFb6cyuhT5%hz02g&|;o;c?pA(zPnU5Q-K z6R9)uKj3d3{(ibf^v!2PjfaS9+)G?T7*Rtvq6_%D5=E2^x$rmQ3Q@NUUj26jzCJ~` z#zU+HM8l0Sl(f=AzLcoHX$-|dXB6@oR`i55hNepLH6}(=ARmML&(K%(w~CA_h==qp zYau-c>nYZHic`stT6fcwB@~i)D1pk&MfBxj3N@7K7$Xa#l10Q-6y-1yDrJj^F6J;U zld!C08W~qL*h*m|W->N=RRwsVeFy7VVihnNp-^WOSg~}3v87fDS;p8)%t+x$Ot+2d z7)!E}R^a7O=m#G?LR4a8&?;way1_y;U8sfDCNZ`Pi<8#O*i3*I19M|t4#s;W06su$ znR;O8X3U$Hrh_bH+hU@qe8weBUIN){3*%uO! zK_%~R%_jS=Y6NB*`2zIV0BbyDNb;{tb0`J!$;h`uU)2x% zzhbPU0g%U9pQO34f7?2c9#zRFf_K-iX9QBjdsB$>-sD(XX)x{xCC;*1cKzfJ)eF=B z{0m|U7qN_D9Je!fS}v0kwI=VoMxb|KUoV!hnyJwBYo7z`x5>%LF)Fx3eG26?MWNMN z`}~!6>LI6pQs4{K{xA2UlJ^{x+Cm=o+BN=h`q4Q;%JCs>B_z%AwMzSB!Em%-{|O5D zp$d7(NuK|BgjSIEe)>E9%I_8OJ}|lqJjkPH4$r@%kfVQ&3#`lhPq)%tJb&4P{O+Lx ziEe{4h5QegnAlu6D6XZv>;LgQHk2Z9yLkSjv+T~+!^S2=NPX6!h+B}H?!5%=wNnQV ze(@6uO}EOWs6C6Ox#;r0wGb1H{>UZ%_+b?>HXf7K965XXNZG%;8v-@`v?T1!G>>D0 z)F4=SO{35YxVw5tyYal>!m9@X0xF`WCqE9pL(`eg6mYq3g;Xo1VXkxsynQR+cH4DI zNOMmK5#}~Fr#Ur3*~q!mZbmK2-FAp69?^)x#CWtk4{u0~z;et0Ve<&%D?;kMU82-` zi+<7lqfZj{wqcX-Omf5&LnUuI^3~2-7`HBBIdQevy@u*Csw(Jk4$}>vjSE^bKa zgrP$>!CNzTTp@N)qK@EkM*(p|3}Uqr$Z3fSiQ9v?DHCC4&ljEx%7v%=+9bh!G0qZ9 zOp|fef|G;3dy*keT!f}4XPX(N8y9m{gPCzlMxgNh5VQ^SJvHpjQS$Fd>{#wh6xZ>hz67mBW|Gl<&TJ0r2 zX{n_7(9b|V8}?Ehw_gcR{Liutq$zF4D{K>~I=H(1JXg0Q z@hPoyIH^!PFHn+-M4jc(PgEDGa686-z~dR?JPF->OzfW%uIdXaO%zyDMYWd6+_RWWYk5{|ndEz^Prn&7~D|8(o(9Nx>MU7Xdz8(z!(dUn^ z@prjHoo@2bKTftrgQv_}dNxy-H~mh}yz`e3n$YxZGbMY`pM-1uR5;C*Ud5iSUxe}e z_fTxR{zT!?T&aIm?`z4K{7y{rf1 zVteoB{`CwvpZD}&fWr=+uN8aSp-=SO5AcAum#Xxvpr0a&T>269VC_}acCMd}^N2L4 zUA+f-6@rh}^~2*QOc*ApwW|L|nKSNPFaE{&7s&K)`O1ra&#MrA(O+s{5=O-RW=kqT zS@So+*{4D?9i({}XFp!fO%nwv-#|qoUG@udp8xU8rcIkRep1VF=m@o?Z!inZqk{05xD75+W%JVd-I!;#)$_%dU93+>wsNJkP=02{vdLmQp zG*Mx5Q_S3|D*NfGs=U#7d8Z`(Ea7zF=6Hc$Ni?o7hE|-vLHS2iTuO0>;6+<0g;deD z7-E4-ix-Q&6Ksp=%tsyH!mPrnbcQG4-yzzzl=Ns>Jv|rjG?jjEpzySpj0seWSNNs7 z*1XJ_pFBXCNc$O_aM&Ko#c02ZmyY|vy2+f&aJ+{TOM&xO(kzck!wX3_2d{rG=I2Qm zdx-YqG{&v48*eTPB=udS8S!zFoI_`=5{(+t3~toRIh48Bsj-%E%kSJloWbVetYS3G zm`7V{h(0KCYJoSXmN-jRGlMh4?IN<{#3O5((4Ksz-DeoQ5IB~dM21C7^V+2c%%ULl zAkooFI0vD3YlwSaSHQHXIgQa+-e5%sb4ar~Cv_p-h$dGPl@%~9IboqwmP=ehGTOg! zJ8_Frpff!Vht8rIeBTGjyzNAB5Ev%okjE+DVzcq?RG(QTiYOZ|#YBmPxXUvESq4ER zY#Utygt8G9mXd9RD5dO1sKsp~q{s2zR`jxfxQHxx*(2RomspqiROa4{d>t>6bpo~!{OhnTK$$WT^oyvO#TxpE{`4Ag>8Y-&CUIZs ztC+BF!K!H+ag*nuQ1dGOV@V;}j4r}ZXcCVMUQJwN8b&2Cp^CWBLosnNlmyD@P&_54g`ebgxTk&1QtunmFIMec4qWbr6KDV2=lAL!LR~fknM~%5} zGpgN(L&*6X7`NWAA20Z`-(qy2j<~+2b&S>@B2DeG^f#Esc+hZ|xV%lTGmW8s?orYj zEJbN+nIf$&@E*l$%f;bhI~$%t!1kgG3~svGRs+_(%d+0 zDq}^taa3L@tlv$A)wCb$_YKLhe&gLfBDlxaKsRA!tEM4=ON%$q$MD?~r+)8a{qE=% zCKmRh_ucFF06LA9Mbk3@PjTl9uHV7++p(<6mt|F6aQ*%zt>4cV##1HM?;Db1{jQ>k zh+w9zN?f_)=}%bS0+bf7qo?6J&9;uZWBu;v7A`8xpziMVyNPnqvVp>uBEV@j9SW}B z!S!2ptroZHiZwmBe*a?D?^)tIrI>K#8A}`M;_+AWageuT**1FgO)ZGu-1#U4``@?e zb1?Qin2ZGn%^|{PEdi}Lue|Z%$x^DMbj{^`CbVv`} z?;qXnZ;+BTu02J+_n++nmDmLF{hR=jzHCo1*#E))_p1lmGwCEY!TIM`@89_I2gz8r zr|9?iPxg-<^0WJc=D{A2_W;+cSFf&4R=D|)ciQ>Sa$~=15r%YJh8vu}WGZU)lJxuf zlSLfy!cGU`9S-()9g5%M*|RRZ8-br(qS+-M?f*7#)umO{#(z;){pj8!Zx%E|EZB9N2>gW)Atw( zTEMqy{!R29N!6mC@Uv$HwWa^<<5b=G%rq#lQ9brA4lmO6-x&7vR=MWYem-NV8QA4s zdA?NtJExu$e;!dMeVt4fA7%2N76~81Yo;&v_U!C-s=&v`koSJstjb@tb#be)M4WH5w;%XIFf1Pz^uI`MY(| z?z_=aU+pQ&@b@b`sNvI{CnX{Kz5kMJ@%pp{pKKERn%fj6zE&l^c)o4;eWW(>3F9le z{Q37KPGPUw{}k!?lyUbbKLZmKSwrua$_J`&=EZrv_# zzTf*Vd?7{d@uyi{;AicYEAs)se?;N(+K&^RkAKQQqOHOgqoiclD0O_V50^T0l=qaB zM73}y*4v{eOD!rEd82#jYZ+_3d_ zyKIN=M*qhC(y&`RTLw_FaP5D&QJsalwQB=&-rBY>!^eq)y>_LebWhvtT4?=06H+3y diff --git a/meson.build b/meson.build index cdae85e4b9dce7..1cedc823dec1f0 100644 --- a/meson.build +++ b/meson.build @@ -19,17 +19,6 @@ build_options_config.set_quoted('GITGUI_LIBDIR', get_option('prefix') / get_opti build_options_config.set_quoted('SHELL_PATH', fs.as_posix(shell.full_path())) build_options_config.set_quoted('TCLTK_PATH', fs.as_posix(wish.full_path())) build_options_config.set_quoted('TCL_PATH', fs.as_posix(tclsh.full_path())) -if target_machine.system() == 'darwin' - tkexecutables = [ - '/Library/Frameworks/Tk.framework/Resources/Wish.app/Contents/MacOS/Wish', - '/System/Library/Frameworks/Tk.framework/Resources/Wish.app/Contents/MacOS/Wish', - '/System/Library/Frameworks/Tk.framework/Resources/Wish Shell.app/Contents/MacOS/Wish Shell', - ] - tkexecutable = find_program(tkexecutables) - build_options_config.set_quoted('TKEXECUTABLE', tkexecutable.full_path()) -else - build_options_config.set('TKEXECUTABLE', '') -endif build_options = configure_file( input: 'GIT-GUI-BUILD-OPTIONS.in', @@ -70,52 +59,6 @@ if target_machine.system() == 'windows' install: true, install_dir: get_option('libexecdir') / 'git-core', ) -elif target_machine.system() == 'darwin' - gitgui_main = 'git-gui.tcl' - gitgui_main_install_dir = get_option('datadir') / 'git-gui/lib' - - custom_target( - output: 'git-gui', - command: [ - shell, - meson.current_source_dir() / 'generate-macos-wrapper.sh', - '@OUTPUT@', - meson.current_build_dir() / 'GIT-GUI-BUILD-OPTIONS', - meson.current_build_dir() / 'GIT-VERSION-FILE', - ], - depends: [ - version_file, - ], - depend_files: [ - build_options, - ], - install: true, - install_dir: get_option('libexecdir') / 'git-core', - ) - - custom_target( - output: 'Git Gui.app', - command: [ - shell, - meson.current_source_dir() / 'generate-macos-app.sh', - meson.current_source_dir(), - meson.current_build_dir() / 'Git Gui.app', - meson.current_build_dir() / 'GIT-GUI-BUILD-OPTIONS', - meson.current_build_dir() / 'GIT-VERSION-FILE', - ], - depends: [ - version_file, - ], - depend_files: [ - build_options, - 'macosx/AppMain.tcl', - 'macosx/Info.plist', - 'macosx/git-gui.icns', - ], - build_by_default: true, - install: true, - install_dir: get_option('datadir') / 'git-gui/lib', - ) endif custom_target( From 0e3233b91393e3b5f21c310f202797a603294e0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= Date: Thu, 31 Jul 2025 01:06:27 -0700 Subject: [PATCH 28/35] git-gui: honor TCLTK_PATH in git-gui--askpass MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since its introduction in 8c76212 (git-gui: Add a simple implementation of SSH_ASKPASS., 2008-10-15), git-gui--askpass has been calling whatever wish interpreter is in the path, unlike git-gui. Correct that by turning it into a script that would be processed at build time. Signed-off-by: Carlo Marcelo Arenas Belón Signed-off-by: Johannes Sixt --- .gitignore | 1 + Makefile | 7 +++++-- generate-script.sh | 22 ++++++++++++++++++++++ git-gui--askpass => git-gui--askpass.sh | 0 meson.build | 22 ++++++++++++++-------- 5 files changed, 42 insertions(+), 10 deletions(-) create mode 100755 generate-script.sh rename git-gui--askpass => git-gui--askpass.sh (100%) diff --git a/.gitignore b/.gitignore index ba845f3f3a357c..5130b4f0189518 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ git-gui.tcl GIT-GUI-BUILD-OPTIONS GIT-VERSION-FILE git-gui +git-gui--askpass lib/tclIndex diff --git a/Makefile b/Makefile index 2ac5f442f499e2..2cd160b0575522 100644 --- a/Makefile +++ b/Makefile @@ -173,10 +173,13 @@ GIT-GUI-BUILD-OPTIONS: FORCE @if grep -q '^[A-Z][A-Z_]*=@.*@$$' $@+; then echo "Unsubstituted build options in $@" >&2 && exit 1; fi @if cmp $@+ $@ >/dev/null 2>&1; then $(RM) $@+; else mv $@+ $@; fi +git-gui--askpass: git-gui--askpass.sh GIT-GUI-BUILD-OPTIONS generate-script.sh + $(QUIET_GEN)$(SHELL_PATH) generate-script.sh $@ $< ./GIT-GUI-BUILD-OPTIONS + ifdef GITGUI_WINDOWS_WRAPPER all:: git-gui endif -all:: $(GITGUI_MAIN) lib/tclIndex $(ALL_MSGFILES) +all:: $(GITGUI_MAIN) git-gui--askpass lib/tclIndex $(ALL_MSGFILES) install: all $(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(gitexecdir_SQ)' $(INSTALL_D1) @@ -215,7 +218,7 @@ dist-version: GIT-VERSION-FILE @sed 's|^GITGUI_VERSION=||' $(TARDIR)/version clean:: - $(RM_RF) $(GITGUI_MAIN) lib/tclIndex po/*.msg $(PO_TEMPLATE) + $(RM_RF) $(GITGUI_MAIN) git-gui--askpass lib/tclIndex po/*.msg $(PO_TEMPLATE) $(RM_RF) GIT-VERSION-FILE GIT-GUI-BUILD-OPTIONS ifdef GITGUI_WINDOWS_WRAPPER $(RM_RF) git-gui diff --git a/generate-script.sh b/generate-script.sh new file mode 100755 index 00000000000000..0dd2da92e3b5d4 --- /dev/null +++ b/generate-script.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +set -e + +if test $# -ne 3 +then + echo >&2 "USAGE: $0 " + exit 1 +fi + +OUTPUT="$1" +INPUT="$2" +BUILD_OPTIONS="$3" + +. "$BUILD_OPTIONS" + +sed \ + -e "1s|#!.*/sh|#!$SHELL_PATH|" \ + -e "1,3s|^exec wish|exec '$TCLTK_PATH'|" \ + "$INPUT" >"$OUTPUT" + +chmod a+x "$OUTPUT" diff --git a/git-gui--askpass b/git-gui--askpass.sh similarity index 100% rename from git-gui--askpass rename to git-gui--askpass.sh diff --git a/meson.build b/meson.build index 1cedc823dec1f0..320ba09ecfeb32 100644 --- a/meson.build +++ b/meson.build @@ -38,14 +38,6 @@ version_file = custom_target( build_always_stale: true, ) -configure_file( - input: 'git-gui--askpass', - output: 'git-gui--askpass', - copy: true, - install: true, - install_dir: get_option('libexecdir') / 'git-core', -) - gitgui_main = 'git-gui' gitgui_main_install_dir = get_option('libexecdir') / 'git-core' @@ -61,6 +53,20 @@ if target_machine.system() == 'windows' ) endif +custom_target( + output: 'git-gui--askpass', + input: 'git-gui--askpass.sh', + command: [ + shell, + meson.current_source_dir() / 'generate-script.sh', + '@OUTPUT@', + '@INPUT@', + meson.current_build_dir() / 'GIT-GUI-BUILD-OPTIONS', + ], + install: true, + install_dir: get_option('libexecdir') / 'git-core', +) + custom_target( input: 'git-gui.sh', output: gitgui_main, From beab415e429067108953966d3d2d4420d75515cd Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Wed, 21 May 2025 21:13:27 -0400 Subject: [PATCH 29/35] git-gui: remove EOL translation for gets git-gui configures '-translation lf' on a number of channels. The default configuration is 'auto', which on input changes any occurrence of \n, \r, or \r\n to \n, and on output changes any such EOL sequence to a platform dependent value (\n on Unix, \r\n on Windows). Such translation can be necessary, but much of what is configured now is redundant. In particular, many of the channels configured this way are then consumed by gets, which already recognizes any of \n, \r, or \r\n as terminators. Configuring a channel to first change these line endings, then give the result to gets, is redundant. The valid uses of -translation lf are for output where we do not want \r\n on Windows, and for consuming entire files without going through gets, assuring that \n will be used internally. Let's remove all the others that only serve to confuse. lib/diff.tcl must have -translation lf because \r\n might be stored in the repository (e.g., on Windows, with no crlf translation enabled), and git will treat \n as the line ending, while the preceding \r is just whitespace, and these may be split by ANSI color coding. git-gui's read_diff handles this correctly as-is. Signed-off-by: Mark Levedahl --- lib/blame.tcl | 5 ++--- lib/choose_rev.tcl | 2 +- lib/commit.tcl | 4 ++-- lib/diff.tcl | 2 ++ lib/remote_branch_delete.tcl | 1 - 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/blame.tcl b/lib/blame.tcl index bb67b047eb5583..22c5e7a193ea09 100644 --- a/lib/blame.tcl +++ b/lib/blame.tcl @@ -492,7 +492,6 @@ method _load {jump} { } fconfigure $fd \ -blocking 0 \ - -translation lf \ -encoding [get_path_encoding $path] fileevent $fd readable [cb _read_file $fd $jump] set current_fd $fd @@ -619,7 +618,7 @@ method _exec_blame {cur_w cur_d options cur_s} { lappend options -- $path set fd [git_read_nice [concat blame $options]] - fconfigure $fd -blocking 0 -translation lf -encoding utf-8 + fconfigure $fd -blocking 0 -encoding utf-8 fileevent $fd readable [cb _read_blame $fd $cur_w $cur_d] set current_fd $fd set blame_lines 0 @@ -985,7 +984,7 @@ method _showcommit {cur_w lno} { set msg {} catch { set fd [git_read [list cat-file commit $cmit]] - fconfigure $fd -encoding iso8859-1 -translation lf + fconfigure $fd -encoding iso8859-1 # By default commits are assumed to be in utf-8 set enc utf-8 while {[gets $fd line] > 0} { diff --git a/lib/choose_rev.tcl b/lib/choose_rev.tcl index 4cf6cebac433b1..cd355cc92a276c 100644 --- a/lib/choose_rev.tcl +++ b/lib/choose_rev.tcl @@ -147,7 +147,7 @@ constructor _new {path unmerged_only title} { refs/remotes \ refs/tags \ ]] - fconfigure $fr_fd -translation lf -encoding utf-8 + fconfigure $fr_fd -encoding utf-8 while {[gets $fr_fd line] > 0} { set line [eval $line] if {[lindex $line 1 0] eq {tag}} { diff --git a/lib/commit.tcl b/lib/commit.tcl index adde7080847c1d..5e77fd2f5495ab 100644 --- a/lib/commit.tcl +++ b/lib/commit.tcl @@ -28,7 +28,7 @@ You are currently in the middle of a merge that has not been fully completed. Y set name "" set email "" set fd [git_read [list cat-file commit $curHEAD]] - fconfigure $fd -encoding iso8859-1 -translation lf + fconfigure $fd -encoding iso8859-1 # By default commits are assumed to be in utf-8 set enc utf-8 while {[gets $fd line] > 0} { @@ -361,7 +361,7 @@ proc commit_committree {fd_wt curHEAD msg_p} { # if {$commit_type eq {normal}} { set fd_ot [git_read [list cat-file commit $PARENT]] - fconfigure $fd_ot -encoding iso8859-1 -translation lf + fconfigure $fd_ot -encoding iso8859-1 set old_tree [gets $fd_ot] close $fd_ot diff --git a/lib/diff.tcl b/lib/diff.tcl index 65d0997b79b555..442737ba4f260b 100644 --- a/lib/diff.tcl +++ b/lib/diff.tcl @@ -324,6 +324,8 @@ proc start_show_diff {cont_info {add_opts {}}} { # '++' lines which is not bijective. Thus, we need to maintain a state # across lines. set ::conflict_in_pre_image 0 + + # git-diff has eol==\n, \r if present is part of the text fconfigure $fd \ -blocking 0 \ -encoding [get_path_encoding $path] \ diff --git a/lib/remote_branch_delete.tcl b/lib/remote_branch_delete.tcl index 349d31edf3e1c7..f0814efdd7383e 100644 --- a/lib/remote_branch_delete.tcl +++ b/lib/remote_branch_delete.tcl @@ -307,7 +307,6 @@ method _load {cache uri} { set active_ls [git_read [list ls-remote $uri]] fconfigure $active_ls \ -blocking 0 \ - -translation lf \ -encoding utf-8 fileevent $active_ls readable [cb _read $cache $active_ls] } else { From 0832752392da5d820ac96517041152e8fd943c18 Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Fri, 9 May 2025 21:39:56 -0400 Subject: [PATCH 30/35] git-gui: themed.tcl: use full namespace for color Tcl 9 imposes strict requirements on namespaces for variables, while Tcl 8 does not. lib/themed.tcl does not use the fully qualified name for the "color" namespace, with result that variables are not found with Tcl 9.0. Fix this. Signed-off-by: Mark Levedahl --- lib/themed.tcl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/themed.tcl b/lib/themed.tcl index 8c4a0c2ee7a0de..c18e201d85e69d 100644 --- a/lib/themed.tcl +++ b/lib/themed.tcl @@ -21,10 +21,10 @@ namespace eval color { set inactive_select_bg [convert_rgb_to_gray $select_bg] set inactive_select_fg $select_fg - set color::select_bg $select_bg - set color::select_fg $select_fg - set color::inactive_select_bg $inactive_select_bg - set color::inactive_select_fg $inactive_select_fg + set ::color::select_bg $select_bg + set ::color::select_fg $select_fg + set ::color::inactive_select_bg $inactive_select_bg + set ::color::inactive_select_fg $inactive_select_fg proc add_option {key val} { option add $key $val widgetDefault From 24b10786bc4b0176db1f36a51911c75de0abcba5 Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Sat, 31 May 2025 14:52:35 -0400 Subject: [PATCH 31/35] git-gui: use -profile tcl8 for file input with Tcl 9 git-gui invokes many git commands expecting output in utf-8 encoding, but git accepts extended ascii (code page unknown) as utf-8 without validating, so cannot guarantee valid utf-8 on output. In particular, using any extended ascii code page has long been acceptable on git given that everyone on a project is aware of and uses that same code page to view all data. utf-8 accepts only 7-bit ascii characters in single bytes, and any characters outside of that base set require at least two bytes for representation in unicode. Tcl is a string based language, and transcodes all input data to an internal unicode format, and to whatever format is requested on output: "pure" binary is recoded byte by byte using iso8859-1. Tcl8.x silently recodes invalid utf-8 as binary data, so extended ascii characters maintain their binary value on output but may not display correctly. Tcl 8.7 added three profiles to control this behaviour: strict (raises exceptions), replace (replaces each invalid byte with ?), and the default tcl8 maintaining the old behavior. Tcl 9 changes the default profile to strict, meaning any invalid utf-8 raises an exception that git-gui does not handle. An example of this in the git repository is commit 7eb93c8965 ("[PATCH] Simplify git script", 2005-09-07). This includes extended ascii characters in the author name and commit message. The tcl8 profile used so far has acceptable behavior given git-gui's acceptance: this allows git-gui to accept extended ascii though it may display incorrectly. Let's continue that behavior by overriding open to use the tcl8 profile on Tcl9 and later: Tcl 8.6 does not understand fconfigure -profile, and Tcl 8.7 maintains the tcl8 profile. Signed-off-by: Mark Levedahl --- git-gui.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/git-gui.sh b/git-gui.sh index 63c2f48f91ac12..2c83ed506680b4 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -73,6 +73,19 @@ proc is_Cygwin {} { return $_iscygwin } +###################################################################### +## Enable Tcl8 profile in Tcl9, allowing consumption of data that has +## bytes not conforming to the assumed encoding profile. + +if {[package vcompare $::tcl_version 9.0] >= 0} { + rename open _strict_open + proc open args { + set f [_strict_open {*}$args] + chan configure $f -profile tcl8 + return $f + } +} + ###################################################################### ## ## PATH lookup. Sanitize $PATH, assure exec/open use only that From cc41d374fa9e130cf9b89da5cbcf7694257b7df1 Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Sat, 31 May 2025 15:18:31 -0400 Subject: [PATCH 32/35] git-gui: use -profile tcl8 on encoding conversions git-gui in the prior commit learned to apply -profile tcl8 when reading files, avoiding errors on non-binary data streams whose encoding is not utf-8. But, git-gui also consumes binary data streams (generally blobs from commits) as the output of commands, and internally decodes this to support various displays. With Tcl9, errors occur in this decoding for the same reasons described in the previous commit: basically, the underlying data may contain extended ascii characters violating the assumption of utf-8 encoding. This problem has a similar fix to the prior issue: we must use the tlc8 profile when converting this data to the internal unicode format. Do so, again only on Tcl9 as Tcl8.6 does not recognize -profile, and only Tcl 9.0 makes strict the default. Signed-off-by: Mark Levedahl --- git-gui.sh | 13 ++++++++++--- lib/blame.tcl | 2 +- lib/commit.tcl | 6 +++--- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/git-gui.sh b/git-gui.sh index 2c83ed506680b4..1ebf1e288d8ea3 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -84,6 +84,13 @@ if {[package vcompare $::tcl_version 9.0] >= 0} { chan configure $f -profile tcl8 return $f } + proc convertfrom args { + return [encoding convertfrom -profile tcl8 {*}$args] + } +} else { + proc convertfrom args { + return [encoding convertfrom {*}$args] + } } ###################################################################### @@ -1543,7 +1550,7 @@ proc read_diff_index {fd after} { set i [split [string range $buf_rdi $c [expr {$z1 - 2}]] { }] set p [string range $buf_rdi $z1 [expr {$z2 - 1}]] merge_state \ - [encoding convertfrom utf-8 $p] \ + [convertfrom utf-8 $p] \ [lindex $i 4]? \ [list [lindex $i 0] [lindex $i 2]] \ [list] @@ -1576,7 +1583,7 @@ proc read_diff_files {fd after} { set i [split [string range $buf_rdf $c [expr {$z1 - 2}]] { }] set p [string range $buf_rdf $z1 [expr {$z2 - 1}]] merge_state \ - [encoding convertfrom utf-8 $p] \ + [convertfrom utf-8 $p] \ ?[lindex $i 4] \ [list] \ [list [lindex $i 0] [lindex $i 2]] @@ -1599,7 +1606,7 @@ proc read_ls_others {fd after} { set pck [split $buf_rlo "\0"] set buf_rlo [lindex $pck end] foreach p [lrange $pck 0 end-1] { - set p [encoding convertfrom utf-8 $p] + set p [convertfrom utf-8 $p] if {[string index $p end] eq {/}} { set p [string range $p 0 end-1] } diff --git a/lib/blame.tcl b/lib/blame.tcl index 22c5e7a193ea09..4477b84eaeb7b5 100644 --- a/lib/blame.tcl +++ b/lib/blame.tcl @@ -997,7 +997,7 @@ method _showcommit {cur_w lno} { set enc [tcl_encoding $enc] if {$enc ne {}} { - set msg [encoding convertfrom $enc $msg] + set msg [convertfrom $enc $msg] } set msg [string trim $msg] } diff --git a/lib/commit.tcl b/lib/commit.tcl index 5e77fd2f5495ab..2c2f73d3af2716 100644 --- a/lib/commit.tcl +++ b/lib/commit.tcl @@ -43,9 +43,9 @@ You are currently in the middle of a merge that has not been fully completed. Y set enc [tcl_encoding $enc] if {$enc ne {}} { - set msg [encoding convertfrom $enc $msg] - set name [encoding convertfrom $enc $name] - set email [encoding convertfrom $enc $email] + set msg [convertfrom $enc $msg] + set name [convertfrom $enc $name] + set email [convertfrom $enc $email] } if {$name ne {} && $email ne {}} { set commit_author [list name $name email $email date $time] From c20408c6b755a6b0fe869586cbba0bd6329978b5 Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Fri, 16 May 2025 22:30:37 -0400 Subject: [PATCH 33/35] git-gui: Allow Tcl 9.0 TclTk 9.0 is now shipping, and git-gui is now patched to support use of this newer version. Adjust required versions to allow Tcl/Tk >= 8.6, including 9.x. Signed-off-by: Mark Levedahl --- git-gui.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git-gui.sh b/git-gui.sh index 1ebf1e288d8ea3..44e801c5bf6055 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -30,7 +30,7 @@ along with this program; if not, see .}] ## ## Tcl/Tk sanity check -if {[catch {package require Tcl 8.6-8.8} err]} { +if {[catch {package require Tcl 8.6-} err]} { catch {wm withdraw .} tk_messageBox \ -icon error \ From 98a5b8564485ab300cfd743bdc5a4de7ba2f773b Mon Sep 17 00:00:00 2001 From: Ilya Grigoriev Date: Sat, 2 Aug 2025 21:59:24 -0700 Subject: [PATCH 34/35] gitk: Mention globs in description of preference to hide custom refs This clarifies that one has to enter e.g. `jj/keep/*` and not just `jj/keep`. Follows up on 2441e19. Signed-off-by: Ilya Grigoriev --- gitk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitk b/gitk index bba6561ed8cae2..3b6acfc5922086 100755 --- a/gitk +++ b/gitk @@ -11683,7 +11683,7 @@ proc prefspage_general {notebook} { ttk::entry $page.refstohide -textvariable refstohide ttk::frame $page.refstohidef - ttk::label $page.refstohidef.l -text [mc "Refs to hide (space-separated)" ] + ttk::label $page.refstohidef.l -text [mc "Refs to hide (space-separated globs)" ] pack $page.refstohidef.l -side left pack configure $page.refstohidef.l -padx 10 grid x $page.refstohidef $page.refstohide -sticky ew From e3efff4463c09f0070777000624f6b148873a0b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= Date: Thu, 31 Jul 2025 01:06:28 -0700 Subject: [PATCH 35/35] git-gui: ensure own version of git-gui--askpass is used MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When finding a location for the askpass helper, git will be asked for its exec path, but if that git is not the same that called git-gui then we might mistakenly point to its helper instead. Assume that git-gui and the helper are colocated to derive its path instead. This is specially useful in macOS where a broken version of that helper is provided by the system git. [j6t: move directory to variable to help in-flight topics] Suggested-by: Mark Levedahl Signed-off-by: Carlo Marcelo Arenas Belón Signed-off-by: Johannes Sixt --- git-gui.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/git-gui.sh b/git-gui.sh index 8bb121db4f5f8c..f28a23f844cf96 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -1113,9 +1113,11 @@ citool { ## execution environment # Suggest our implementation of askpass, if none is set +set argv0dir [file dirname [file normalize $::argv0]] if {![info exists env(SSH_ASKPASS)]} { - set env(SSH_ASKPASS) [file join [git --exec-path] git-gui--askpass] + set env(SSH_ASKPASS) [file join $argv0dir git-gui--askpass] } +unset argv0dir ###################################################################### ##