summaryrefslogtreecommitdiff
path: root/gitk-git
diff options
context:
space:
mode:
Diffstat (limited to 'gitk-git')
-rwxr-xr-xgitk-git/gitk634
-rw-r--r--gitk-git/po/bg.po1334
-rwxr-xr-x[-rw-r--r--]gitk-git/po/po2msg.sh0
3 files changed, 1748 insertions, 220 deletions
diff --git a/gitk-git/gitk b/gitk-git/gitk
index 5cd00d80fe..90764e8948 100755
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -2,7 +2,7 @@
# Tcl ignores the next line -*- tcl -*- \
exec wish "$0" -- "$@"
-# Copyright © 2005-2011 Paul Mackerras. All rights reserved.
+# Copyright © 2005-2014 Paul Mackerras. All rights reserved.
# This program is free software; it may be used, copied, modified
# and distributed under the terms of the GNU General Public Licence,
# either version 2, or (at your option) any later version.
@@ -156,10 +156,12 @@ proc unmerged_files {files} {
proc parseviewargs {n arglist} {
global vdatemode vmergeonly vflags vdflags vrevs vfiltered vorigargs env
+ global vinlinediff
global worddiff git_version
set vdatemode($n) 0
set vmergeonly($n) 0
+ set vinlinediff($n) 0
set glflags {}
set diffargs {}
set nextisval 0
@@ -227,12 +229,20 @@ proc parseviewargs {n arglist} {
"--until=*" - "--before=*" - "--max-age=*" - "--min-age=*" -
"--author=*" - "--committer=*" - "--grep=*" - "-[iE]" -
"--remove-empty" - "--first-parent" - "--cherry-pick" -
- "-S*" - "--pickaxe-all" - "--pickaxe-regex" -
+ "-S*" - "-G*" - "--pickaxe-all" - "--pickaxe-regex" -
"--simplify-by-decoration" {
# These mean that we get a subset of the commits
set filtered 1
lappend glflags $arg
}
+ "-L*" {
+ # Line-log with 'stuck' argument (unstuck form is
+ # not supported)
+ set filtered 1
+ set vinlinediff($n) 1
+ set allknown 0
+ lappend glflags $arg
+ }
"-n" {
# This appears to be the only one that has a value as a
# separate word following it
@@ -1704,8 +1714,17 @@ proc parsecommit {id contents listed} {
set comment $newcomment
}
set hasnote [string first "\nNotes:\n" $contents]
+ set diff ""
+ # If there is diff output shown in the git-log stream, split it
+ # out. But get rid of the empty line that always precedes the
+ # diff.
+ set i [string first "\n\ndiff" $comment]
+ if {$i >= 0} {
+ set diff [string range $comment $i+1 end]
+ set comment [string range $comment 0 $i-1]
+ }
set commitinfo($id) [list $headline $auname $audate \
- $comname $comdate $comment $hasnote]
+ $comname $comdate $comment $hasnote $diff]
}
proc getcommit {id} {
@@ -2244,9 +2263,35 @@ proc makewindow {} {
# build up the bottom bar of upper window
${NS}::label .tf.lbar.flabel -text "[mc "Find"] "
- ${NS}::button .tf.lbar.fnext -text [mc "next"] -command {dofind 1 1}
- ${NS}::button .tf.lbar.fprev -text [mc "prev"] -command {dofind -1 1}
+
+ set bm_down_data {
+ #define down_width 16
+ #define down_height 16
+ static unsigned char down_bits[] = {
+ 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
+ 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
+ 0x87, 0xe1, 0x8e, 0x71, 0x9c, 0x39, 0xb8, 0x1d,
+ 0xf0, 0x0f, 0xe0, 0x07, 0xc0, 0x03, 0x80, 0x01};
+ }
+ image create bitmap bm-down -data $bm_down_data -foreground $uifgcolor
+ ${NS}::button .tf.lbar.fnext -width 26 -command {dofind 1 1}
+ .tf.lbar.fnext configure -image bm-down
+
+ set bm_up_data {
+ #define up_width 16
+ #define up_height 16
+ static unsigned char up_bits[] = {
+ 0x80, 0x01, 0xc0, 0x03, 0xe0, 0x07, 0xf0, 0x0f,
+ 0xb8, 0x1d, 0x9c, 0x39, 0x8e, 0x71, 0x87, 0xe1,
+ 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
+ 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01};
+ }
+ image create bitmap bm-up -data $bm_up_data -foreground $uifgcolor
+ ${NS}::button .tf.lbar.fprev -width 26 -command {dofind -1 1}
+ .tf.lbar.fprev configure -image bm-up
+
${NS}::label .tf.lbar.flab2 -text " [mc "commit"] "
+
pack .tf.lbar.flabel .tf.lbar.fnext .tf.lbar.fprev .tf.lbar.flab2 \
-side left -fill y
set gdttype [mc "containing:"]
@@ -2384,7 +2429,8 @@ proc makewindow {} {
$ctext tag conf msep -font textfontbold
$ctext tag conf found -back $foundbgcolor
$ctext tag conf currentsearchhit -back $currentsearchhitbgcolor
- $ctext tag conf wwrap -wrap word
+ $ctext tag conf wwrap -wrap word -lmargin2 1c
+ $ctext tag conf bold -font textfontbold
.pwbottom add .bleft
if {!$use_ttk} {
@@ -2741,14 +2787,17 @@ proc savestuff {w} {
global linkfgcolor circleoutlinecolor
global autoselect autosellen extdifftool perfile_attrs markbgcolor use_ttk
global hideremotes want_ttk maxrefs
+ global config_file config_file_tmp
if {$stuffsaved} return
if {![winfo viewable .]} return
catch {
- if {[file exists ~/.gitk-new]} {file delete -force ~/.gitk-new}
- set f [open "~/.gitk-new" w]
+ if {[file exists $config_file_tmp]} {
+ file delete -force $config_file_tmp
+ }
+ set f [open $config_file_tmp w]
if {$::tcl_platform(platform) eq {windows}} {
- file attributes "~/.gitk-new" -hidden true
+ file attributes $config_file_tmp -hidden true
}
puts $f [list set mainfont $mainfont]
puts $f [list set textfont $textfont]
@@ -2825,7 +2874,7 @@ proc savestuff {w} {
}
puts $f "}"
close $f
- file rename -force "~/.gitk-new" "~/.gitk"
+ file rename -force $config_file_tmp $config_file
}
set stuffsaved 1
}
@@ -2927,7 +2976,7 @@ proc about {} {
message $w.m -text [mc "
Gitk - a commit viewer for git
-Copyright \u00a9 2005-2011 Paul Mackerras
+Copyright \u00a9 2005-2014 Paul Mackerras
Use and redistribute under the terms of the GNU General Public License"] \
-justify center -aspect 400 -border 2 -bg white -relief groove
@@ -6387,6 +6436,25 @@ proc bindline {t id} {
$canv bind $t <Button-1> "lineclick %x %y $id 1"
}
+proc graph_pane_width {} {
+ global use_ttk
+
+ if {$use_ttk} {
+ set g [.tf.histframe.pwclist sashpos 0]
+ } else {
+ set g [.tf.histframe.pwclist sash coord 0]
+ }
+ return [lindex $g 0]
+}
+
+proc totalwidth {l font extra} {
+ set tot 0
+ foreach str $l {
+ set tot [expr {$tot + [font measure $font $str] + $extra}]
+ }
+ return $tot
+}
+
proc drawtags {id x xt y1} {
global idtags idheads idotherrefs mainhead
global linespc lthickness
@@ -6398,9 +6466,27 @@ proc drawtags {id x xt y1} {
set marks {}
set ntags 0
set nheads 0
+ set singletag 0
+ set maxtags 3
+ set maxtagpct 25
+ set maxwidth [expr {[graph_pane_width] * $maxtagpct / 100}]
+ set delta [expr {int(0.5 * ($linespc - $lthickness))}]
+ set extra [expr {$delta + $lthickness + $linespc}]
+
if {[info exists idtags($id)]} {
set marks $idtags($id)
set ntags [llength $marks]
+ if {$ntags > $maxtags ||
+ [totalwidth $marks mainfont $extra] > $maxwidth} {
+ # show just a single "n tags..." tag
+ set singletag 1
+ if {$ntags == 1} {
+ set marks [list "tag..."]
+ } else {
+ set marks [list [format "%d tags..." $ntags]]
+ }
+ set ntags 1
+ }
}
if {[info exists idheads($id)]} {
set marks [concat $marks $idheads($id)]
@@ -6413,7 +6499,6 @@ proc drawtags {id x xt y1} {
return $xt
}
- set delta [expr {int(0.5 * ($linespc - $lthickness))}]
set yt [expr {$y1 - 0.5 * $linespc}]
set yb [expr {$yt + $linespc - 1}]
set xvals {}
@@ -6428,7 +6513,7 @@ proc drawtags {id x xt y1} {
}
lappend xvals $xt
lappend wvals $wid
- set xt [expr {$xt + $delta + $wid + $lthickness + $linespc}]
+ set xt [expr {$xt + $wid + $extra}]
}
set t [$canv create line $x $y1 [lindex $xvals end] $y1 \
-width $lthickness -fill $reflinecolor -tags tag.$id]
@@ -6444,7 +6529,12 @@ proc drawtags {id x xt y1} {
$xr $yt $xr $yb $xl $yb $x [expr {$yb - $delta}] \
-width 1 -outline $tagoutlinecolor -fill $tagbgcolor \
-tags tag.$id]
- $canv bind $t <1> [list showtag $tag_quoted 1]
+ if {$singletag} {
+ set tagclick [list showtags $id 1]
+ } else {
+ set tagclick [list showtag $tag_quoted 1]
+ }
+ $canv bind $t <1> $tagclick
set rowtextx([rowofcommit $id]) [expr {$xr + $linespc}]
} else {
# draw a head or other ref
@@ -6471,7 +6561,7 @@ proc drawtags {id x xt y1} {
set t [$canv create text $xl $y1 -anchor w -text $tag -fill $headfgcolor \
-font $font -tags [list tag.$id text]]
if {$ntags >= 0} {
- $canv bind $t <1> [list showtag $tag_quoted 1]
+ $canv bind $t <1> $tagclick
} elseif {$nheads >= 0} {
$canv bind $t $ctxbut [list headmenu %X %Y $id $tag_quoted]
}
@@ -7080,6 +7170,7 @@ proc selectline {l isnew {desired_loc {}}} {
global cmitmode showneartags allcommits
global targetrow targetid lastscrollrows
global autoselect autosellen jump_to_here
+ global vinlinediff
catch {unset pending_select}
$canv delete hover
@@ -7221,6 +7312,8 @@ proc selectline {l isnew {desired_loc {}}} {
init_flist [mc "Comments"]
if {$cmitmode eq "tree"} {
gettree $id
+ } elseif {$vinlinediff($curview) == 1} {
+ showinlinediff $id
} elseif {[llength $olds] <= 1} {
startdiff $id
} else {
@@ -7557,6 +7650,39 @@ proc startdiff {ids} {
}
}
+proc showinlinediff {ids} {
+ global commitinfo commitdata ctext
+ global treediffs
+
+ set info $commitinfo($ids)
+ set diff [lindex $info 7]
+ set difflines [split $diff "\n"]
+
+ initblobdiffvars
+ set treediff {}
+
+ set inhdr 0
+ foreach line $difflines {
+ if {![string compare -length 5 "diff " $line]} {
+ set inhdr 1
+ } elseif {$inhdr && ![string compare -length 4 "+++ " $line]} {
+ # offset also accounts for the b/ prefix
+ lappend treediff [string range $line 6 end]
+ set inhdr 0
+ }
+ }
+
+ set treediffs($ids) $treediff
+ add_flist $treediff
+
+ $ctext conf -state normal
+ foreach line $difflines {
+ parseblobdiffline $ids $line
+ }
+ maybe_scroll_ctext 1
+ $ctext conf -state disabled
+}
+
# If the filename (name) is under any of the passed filter paths
# then return true to include the file in the listing.
proc path_filter {filter name} {
@@ -7710,15 +7836,25 @@ proc changeworddiff {name ix op} {
reselectline
}
+proc initblobdiffvars {} {
+ global diffencoding targetline diffnparents
+ global diffinhdr currdiffsubmod diffseehere
+ set targetline {}
+ set diffnparents 0
+ set diffinhdr 0
+ set diffencoding [get_path_encoding {}]
+ set currdiffsubmod ""
+ set diffseehere -1
+}
+
proc getblobdiffs {ids} {
global blobdifffd diffids env
- global diffinhdr treediffs
+ global treediffs
global diffcontext
global ignorespace
global worddiff
global limitdiffs vfilelimit curview
- global diffencoding targetline diffnparents
- global git_version currdiffsubmod
+ global git_version
set textconv {}
if {[package vcompare $git_version "1.6.1"] >= 0} {
@@ -7742,13 +7878,9 @@ proc getblobdiffs {ids} {
error_popup [mc "Error getting diffs: %s" $err]
return
}
- set targetline {}
- set diffnparents 0
- set diffinhdr 0
- set diffencoding [get_path_encoding {}]
fconfigure $bdf -blocking 0 -encoding binary -eofchar {}
set blobdifffd($ids) $bdf
- set currdiffsubmod ""
+ initblobdiffvars
filerun $bdf [list getblobdiffline $bdf $diffids]
}
@@ -7814,13 +7946,17 @@ proc makediffhdr {fname ids} {
set diffline 0
}
+proc blobdiffmaybeseehere {ateof} {
+ global diffseehere
+ if {$diffseehere >= 0} {
+ mark_ctext_line [lindex [split $diffseehere .] 0]
+ }
+ maybe_scroll_ctext $ateof
+}
+
proc getblobdiffline {bdf ids} {
- global diffids blobdifffd ctext curdiffstart
- global diffnexthead diffnextnote difffilestart
- global ctext_file_names ctext_file_lines
- global diffinhdr treediffs mergemax diffnparents
- global diffencoding jump_to_here targetline diffline currdiffsubmod
- global worddiff
+ global diffids blobdifffd
+ global ctext
set nr 0
$ctext conf -state normal
@@ -7829,212 +7965,220 @@ proc getblobdiffline {bdf ids} {
catch {close $bdf}
return 0
}
- if {![string compare -length 5 "diff " $line]} {
- if {![regexp {^diff (--cc|--git) } $line m type]} {
- set line [encoding convertfrom $line]
- $ctext insert end "$line\n" hunksep
- continue
+ parseblobdiffline $ids $line
+ }
+ $ctext conf -state disabled
+ blobdiffmaybeseehere [eof $bdf]
+ if {[eof $bdf]} {
+ catch {close $bdf}
+ return 0
+ }
+ return [expr {$nr >= 1000? 2: 1}]
+}
+
+proc parseblobdiffline {ids line} {
+ global ctext curdiffstart
+ global diffnexthead diffnextnote difffilestart
+ global ctext_file_names ctext_file_lines
+ global diffinhdr treediffs mergemax diffnparents
+ global diffencoding jump_to_here targetline diffline currdiffsubmod
+ global worddiff diffseehere
+
+ if {![string compare -length 5 "diff " $line]} {
+ if {![regexp {^diff (--cc|--git) } $line m type]} {
+ set line [encoding convertfrom $line]
+ $ctext insert end "$line\n" hunksep
+ continue
+ }
+ # start of a new file
+ set diffinhdr 1
+ $ctext insert end "\n"
+ set curdiffstart [$ctext index "end - 1c"]
+ lappend ctext_file_names ""
+ lappend ctext_file_lines [lindex [split $curdiffstart "."] 0]
+ $ctext insert end "\n" filesep
+
+ if {$type eq "--cc"} {
+ # start of a new file in a merge diff
+ set fname [string range $line 10 end]
+ if {[lsearch -exact $treediffs($ids) $fname] < 0} {
+ lappend treediffs($ids) $fname
+ add_flist [list $fname]
}
- # start of a new file
- set diffinhdr 1
- $ctext insert end "\n"
- set curdiffstart [$ctext index "end - 1c"]
- lappend ctext_file_names ""
- lappend ctext_file_lines [lindex [split $curdiffstart "."] 0]
- $ctext insert end "\n" filesep
-
- if {$type eq "--cc"} {
- # start of a new file in a merge diff
- set fname [string range $line 10 end]
- if {[lsearch -exact $treediffs($ids) $fname] < 0} {
- lappend treediffs($ids) $fname
- add_flist [list $fname]
- }
+ } else {
+ set line [string range $line 11 end]
+ # If the name hasn't changed the length will be odd,
+ # the middle char will be a space, and the two bits either
+ # side will be a/name and b/name, or "a/name" and "b/name".
+ # If the name has changed we'll get "rename from" and
+ # "rename to" or "copy from" and "copy to" lines following
+ # this, and we'll use them to get the filenames.
+ # This complexity is necessary because spaces in the
+ # filename(s) don't get escaped.
+ set l [string length $line]
+ set i [expr {$l / 2}]
+ if {!(($l & 1) && [string index $line $i] eq " " &&
+ [string range $line 2 [expr {$i - 1}]] eq \
+ [string range $line [expr {$i + 3}] end])} {
+ return
+ }
+ # unescape if quoted and chop off the a/ from the front
+ if {[string index $line 0] eq "\""} {
+ set fname [string range [lindex $line 0] 2 end]
} else {
- set line [string range $line 11 end]
- # If the name hasn't changed the length will be odd,
- # the middle char will be a space, and the two bits either
- # side will be a/name and b/name, or "a/name" and "b/name".
- # If the name has changed we'll get "rename from" and
- # "rename to" or "copy from" and "copy to" lines following
- # this, and we'll use them to get the filenames.
- # This complexity is necessary because spaces in the
- # filename(s) don't get escaped.
- set l [string length $line]
- set i [expr {$l / 2}]
- if {!(($l & 1) && [string index $line $i] eq " " &&
- [string range $line 2 [expr {$i - 1}]] eq \
- [string range $line [expr {$i + 3}] end])} {
- continue
- }
- # unescape if quoted and chop off the a/ from the front
- if {[string index $line 0] eq "\""} {
- set fname [string range [lindex $line 0] 2 end]
- } else {
- set fname [string range $line 2 [expr {$i - 1}]]
- }
+ set fname [string range $line 2 [expr {$i - 1}]]
}
- makediffhdr $fname $ids
+ }
+ makediffhdr $fname $ids
+
+ } elseif {![string compare -length 16 "* Unmerged path " $line]} {
+ set fname [encoding convertfrom [string range $line 16 end]]
+ $ctext insert end "\n"
+ set curdiffstart [$ctext index "end - 1c"]
+ lappend ctext_file_names $fname
+ lappend ctext_file_lines [lindex [split $curdiffstart "."] 0]
+ $ctext insert end "$line\n" filesep
+ set i [lsearch -exact $treediffs($ids) $fname]
+ if {$i >= 0} {
+ setinlist difffilestart $i $curdiffstart
+ }
+
+ } elseif {![string compare -length 2 "@@" $line]} {
+ regexp {^@@+} $line ats
+ set line [encoding convertfrom $diffencoding $line]
+ $ctext insert end "$line\n" hunksep
+ if {[regexp { \+(\d+),\d+ @@} $line m nl]} {
+ set diffline $nl
+ }
+ set diffnparents [expr {[string length $ats] - 1}]
+ set diffinhdr 0
- } elseif {![string compare -length 16 "* Unmerged path " $line]} {
- set fname [encoding convertfrom [string range $line 16 end]]
- $ctext insert end "\n"
- set curdiffstart [$ctext index "end - 1c"]
- lappend ctext_file_names $fname
- lappend ctext_file_lines [lindex [split $curdiffstart "."] 0]
+ } elseif {![string compare -length 10 "Submodule " $line]} {
+ # start of a new submodule
+ if {[regexp -indices "\[0-9a-f\]+\\.\\." $line nameend]} {
+ set fname [string range $line 10 [expr [lindex $nameend 0] - 2]]
+ } else {
+ set fname [string range $line 10 [expr [string first "contains " $line] - 2]]
+ }
+ if {$currdiffsubmod != $fname} {
+ $ctext insert end "\n"; # Add newline after commit message
+ }
+ set curdiffstart [$ctext index "end - 1c"]
+ lappend ctext_file_names ""
+ if {$currdiffsubmod != $fname} {
+ lappend ctext_file_lines $fname
+ makediffhdr $fname $ids
+ set currdiffsubmod $fname
+ $ctext insert end "\n$line\n" filesep
+ } else {
$ctext insert end "$line\n" filesep
+ }
+ } elseif {![string compare -length 3 " >" $line]} {
+ set $currdiffsubmod ""
+ set line [encoding convertfrom $diffencoding $line]
+ $ctext insert end "$line\n" dresult
+ } elseif {![string compare -length 3 " <" $line]} {
+ set $currdiffsubmod ""
+ set line [encoding convertfrom $diffencoding $line]
+ $ctext insert end "$line\n" d0
+ } elseif {$diffinhdr} {
+ if {![string compare -length 12 "rename from " $line]} {
+ set fname [string range $line [expr 6 + [string first " from " $line] ] end]
+ if {[string index $fname 0] eq "\""} {
+ set fname [lindex $fname 0]
+ }
+ set fname [encoding convertfrom $fname]
set i [lsearch -exact $treediffs($ids) $fname]
if {$i >= 0} {
setinlist difffilestart $i $curdiffstart
}
-
- } elseif {![string compare -length 2 "@@" $line]} {
- regexp {^@@+} $line ats
- set line [encoding convertfrom $diffencoding $line]
- $ctext insert end "$line\n" hunksep
- if {[regexp { \+(\d+),\d+ @@} $line m nl]} {
- set diffline $nl
+ } elseif {![string compare -length 10 $line "rename to "] ||
+ ![string compare -length 8 $line "copy to "]} {
+ set fname [string range $line [expr 4 + [string first " to " $line] ] end]
+ if {[string index $fname 0] eq "\""} {
+ set fname [lindex $fname 0]
}
- set diffnparents [expr {[string length $ats] - 1}]
+ makediffhdr $fname $ids
+ } elseif {[string compare -length 3 $line "---"] == 0} {
+ # do nothing
+ return
+ } elseif {[string compare -length 3 $line "+++"] == 0} {
set diffinhdr 0
+ return
+ }
+ $ctext insert end "$line\n" filesep
- } elseif {![string compare -length 10 "Submodule " $line]} {
- # start of a new submodule
- if {[regexp -indices "\[0-9a-f\]+\\.\\." $line nameend]} {
- set fname [string range $line 10 [expr [lindex $nameend 0] - 2]]
- } else {
- set fname [string range $line 10 [expr [string first "contains " $line] - 2]]
- }
- if {$currdiffsubmod != $fname} {
- $ctext insert end "\n"; # Add newline after commit message
- }
- set curdiffstart [$ctext index "end - 1c"]
- lappend ctext_file_names ""
- if {$currdiffsubmod != $fname} {
- lappend ctext_file_lines $fname
- makediffhdr $fname $ids
- set currdiffsubmod $fname
- $ctext insert end "\n$line\n" filesep
- } else {
- $ctext insert end "$line\n" filesep
- }
- } elseif {![string compare -length 3 " >" $line]} {
- set $currdiffsubmod ""
- set line [encoding convertfrom $diffencoding $line]
- $ctext insert end "$line\n" dresult
- } elseif {![string compare -length 3 " <" $line]} {
- set $currdiffsubmod ""
- set line [encoding convertfrom $diffencoding $line]
- $ctext insert end "$line\n" d0
- } elseif {$diffinhdr} {
- if {![string compare -length 12 "rename from " $line]} {
- set fname [string range $line [expr 6 + [string first " from " $line] ] end]
- if {[string index $fname 0] eq "\""} {
- set fname [lindex $fname 0]
- }
- set fname [encoding convertfrom $fname]
- set i [lsearch -exact $treediffs($ids) $fname]
- if {$i >= 0} {
- setinlist difffilestart $i $curdiffstart
+ } else {
+ set line [string map {\x1A ^Z} \
+ [encoding 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"}]
+ set dowords [expr {$worddiff ne [mc "Line diff"] && $diffnparents == 1}]
+ set words_pre_markup ""
+ set words_post_markup ""
+ if {[string trim $prefix " -+"] eq {}} {
+ # prefix only has " ", "-" and "+" in it: normal diff line
+ set num [string first "-" $prefix]
+ if {$dowords} {
+ set line [string range $line 1 end]
+ }
+ if {$num >= 0} {
+ # removed line, first parent with line is $num
+ if {$num >= $mergemax} {
+ set num "max"
}
- } elseif {![string compare -length 10 $line "rename to "] ||
- ![string compare -length 8 $line "copy to "]} {
- set fname [string range $line [expr 4 + [string first " to " $line] ] end]
- if {[string index $fname 0] eq "\""} {
- set fname [lindex $fname 0]
+ if {$dowords && $worddiff eq [mc "Markup words"]} {
+ $ctext insert end "\[-$line-\]" $tag$num
+ } else {
+ $ctext insert end "$line" $tag$num
}
- makediffhdr $fname $ids
- } elseif {[string compare -length 3 $line "---"] == 0} {
- # do nothing
- continue
- } elseif {[string compare -length 3 $line "+++"] == 0} {
- set diffinhdr 0
- continue
- }
- $ctext insert end "$line\n" filesep
-
- } else {
- set line [string map {\x1A ^Z} \
- [encoding 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"}]
- set dowords [expr {$worddiff ne [mc "Line diff"] && $diffnparents == 1}]
- set words_pre_markup ""
- set words_post_markup ""
- if {[string trim $prefix " -+"] eq {}} {
- # prefix only has " ", "-" and "+" in it: normal diff line
- set num [string first "-" $prefix]
- if {$dowords} {
- set line [string range $line 1 end]
+ if {!$dowords} {
+ $ctext insert end "\n" $tag$num
}
- if {$num >= 0} {
- # removed line, first parent with line is $num
- if {$num >= $mergemax} {
- set num "max"
- }
- if {$dowords && $worddiff eq [mc "Markup words"]} {
- $ctext insert end "\[-$line-\]" $tag$num
- } else {
- $ctext insert end "$line" $tag$num
- }
- if {!$dowords} {
- $ctext insert end "\n" $tag$num
- }
- } else {
- set tags {}
- if {[string first "+" $prefix] >= 0} {
- # added line
- lappend tags ${tag}result
- if {$diffnparents > 1} {
- set num [string first " " $prefix]
- if {$num >= 0} {
- if {$num >= $mergemax} {
- set num "max"
- }
- lappend tags m$num
+ } else {
+ set tags {}
+ if {[string first "+" $prefix] >= 0} {
+ # added line
+ lappend tags ${tag}result
+ if {$diffnparents > 1} {
+ set num [string first " " $prefix]
+ if {$num >= 0} {
+ if {$num >= $mergemax} {
+ set num "max"
}
- }
- set words_pre_markup "{+"
- set words_post_markup "+}"
- }
- if {$targetline ne {}} {
- if {$diffline == $targetline} {
- set seehere [$ctext index "end - 1 chars"]
- set targetline {}
- } else {
- incr diffline
+ lappend tags m$num
}
}
- if {$dowords && $worddiff eq [mc "Markup words"]} {
- $ctext insert end "$words_pre_markup$line$words_post_markup" $tags
+ set words_pre_markup "{+"
+ set words_post_markup "+}"
+ }
+ if {$targetline ne {}} {
+ if {$diffline == $targetline} {
+ set diffseehere [$ctext index "end - 1 chars"]
+ set targetline {}
} else {
- $ctext insert end "$line" $tags
- }
- if {!$dowords} {
- $ctext insert end "\n" $tags
+ incr diffline
}
}
- } elseif {$dowords && $prefix eq "~"} {
- $ctext insert end "\n" {}
- } else {
- # "\ No newline at end of file",
- # or something else we don't recognize
- $ctext insert end "$line\n" hunksep
+ if {$dowords && $worddiff eq [mc "Markup words"]} {
+ $ctext insert end "$words_pre_markup$line$words_post_markup" $tags
+ } else {
+ $ctext insert end "$line" $tags
+ }
+ if {!$dowords} {
+ $ctext insert end "\n" $tags
+ }
}
+ } elseif {$dowords && $prefix eq "~"} {
+ $ctext insert end "\n" {}
+ } else {
+ # "\ No newline at end of file",
+ # or something else we don't recognize
+ $ctext insert end "$line\n" hunksep
}
}
- if {[info exists seehere]} {
- mark_ctext_line [lindex [split $seehere .] 0]
- }
- maybe_scroll_ctext [eof $bdf]
- $ctext conf -state disabled
- if {[eof $bdf]} {
- catch {close $bdf}
- return 0
- }
- return [expr {$nr >= 1000? 2: 1}]
}
proc changediffdisp {} {
@@ -10878,6 +11022,23 @@ proc listrefs {id} {
return [list $x $y $z]
}
+proc add_tag_ctext {tag} {
+ global ctext cached_tagcontent tagids
+
+ if {![info exists cached_tagcontent($tag)]} {
+ catch {
+ set cached_tagcontent($tag) [exec git cat-file -p $tag]
+ }
+ }
+ $ctext insert end "[mc "Tag"]: $tag\n" bold
+ if {[info exists cached_tagcontent($tag)]} {
+ set text $cached_tagcontent($tag)
+ } else {
+ set text "[mc "Id"]: $tagids($tag)"
+ }
+ appendwithlinks $text {}
+}
+
proc showtag {tag isnew} {
global ctext cached_tagcontent tagids linknum tagobjid
@@ -10888,17 +11049,28 @@ proc showtag {tag isnew} {
clear_ctext
settabs 0
set linknum 0
- if {![info exists cached_tagcontent($tag)]} {
- catch {
- set cached_tagcontent($tag) [exec git cat-file -p $tag]
- }
+ add_tag_ctext $tag
+ maybe_scroll_ctext 1
+ $ctext conf -state disabled
+ init_flist {}
+}
+
+proc showtags {id isnew} {
+ global idtags ctext linknum
+
+ if {$isnew} {
+ addtohistory [list showtags $id 0] savectextpos
}
- if {[info exists cached_tagcontent($tag)]} {
- set text $cached_tagcontent($tag)
- } else {
- set text "[mc "Tag"]: $tag\n[mc "Id"]: $tagids($tag)"
+ $ctext conf -state normal
+ clear_ctext
+ settabs 0
+ set linknum 0
+ set sep {}
+ foreach tag $idtags($id) {
+ $ctext insert end $sep
+ add_tag_ctext $tag
+ set sep "\n\n"
}
- appendwithlinks $text {}
maybe_scroll_ctext 1
$ctext conf -state disabled
init_flist {}
@@ -11915,7 +12087,29 @@ namespace import ::msgcat::mc
## And eventually load the actual message catalog
::msgcat::mcload $gitk_msgsdir
-catch {source ~/.gitk}
+catch {
+ # follow the XDG base directory specification by default. See
+ # http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
+ if {[info exists env(XDG_CONFIG_HOME)] && $env(XDG_CONFIG_HOME) ne ""} {
+ # XDG_CONFIG_HOME environment variable is set
+ set config_file [file join $env(XDG_CONFIG_HOME) git gitk]
+ 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"
+ }
+ 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"
+ } elseif {![file exists [file dirname $config_file]]} {
+ file mkdir [file dirname $config_file]
+ }
+ }
+ source $config_file
+}
parsefont mainfont $mainfont
eval font create mainfont [fontflags mainfont]
diff --git a/gitk-git/po/bg.po b/gitk-git/po/bg.po
new file mode 100644
index 0000000000..782397e6b5
--- /dev/null
+++ b/gitk-git/po/bg.po
@@ -0,0 +1,1334 @@
+# Bulgarian translation of gitk po-file.
+# Copyright (C) 2014 Alexander Shopov <ash@kambanaria.org>.
+# This file is distributed under the same license as the git package.
+# Alexander Shopov <ash@kambanaria.org>, 2014.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gitk master\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-01-26 15:47-0800\n"
+"PO-Revision-Date: 2014-01-08 08:03+0200\n"
+"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
+"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: gitk:140
+msgid "Couldn't get list of unmerged files:"
+msgstr "Списъкът с неслети файлове не може да бъде получен:"
+
+#: gitk:212 gitk:2353
+msgid "Color words"
+msgstr "Оцветяване на думите"
+
+#: gitk:217 gitk:2353 gitk:8103 gitk:8136
+msgid "Markup words"
+msgstr "Отбелязване на думите"
+
+#: gitk:322
+msgid "Error parsing revisions:"
+msgstr "Грешка при разбор на версиите:"
+
+#: gitk:378
+msgid "Error executing --argscmd command:"
+msgstr "Грешка при изпълнение на командата с „--argscmd“."
+
+#: gitk:391
+msgid "No files selected: --merge specified but no files are unmerged."
+msgstr "Не са избрани файлове — указана е опцията „--merge“, но няма неслети файлове."
+
+#: gitk:394
+msgid ""
+"No files selected: --merge specified but no unmerged files are within file "
+"limit."
+msgstr "Не са избрани файлове — указана е опцията „--merge“, но няма неслети файлове в ограниченията."
+
+#: gitk:416 gitk:564
+msgid "Error executing git log:"
+msgstr "Грешка при изпълнение на „git log“:"
+
+#: gitk:434 gitk:580
+msgid "Reading"
+msgstr "Прочитане"
+
+#: gitk:494 gitk:4429
+msgid "Reading commits..."
+msgstr "Прочитане на подаванията…"
+
+#: gitk:497 gitk:1635 gitk:4432
+msgid "No commits selected"
+msgstr "Не са избрани подавания"
+
+#: gitk:1509
+msgid "Can't parse git log output:"
+msgstr "Изходът от „git log“ не може да се анализира:"
+
+#: gitk:1738
+msgid "No commit information available"
+msgstr "Липсва информация за подавания"
+
+#: gitk:1895
+msgid "mc"
+msgstr "mc"
+
+#: gitk:1930 gitk:4222 gitk:9552 gitk:11122 gitk:11401
+msgid "OK"
+msgstr "Добре"
+
+#: gitk:1932 gitk:4224 gitk:9079 gitk:9158 gitk:9274 gitk:9323 gitk:9554
+#: gitk:11123 gitk:11402
+msgid "Cancel"
+msgstr "Отказ"
+
+#: gitk:2067
+msgid "Update"
+msgstr "Обновяване"
+
+#: gitk:2068
+msgid "Reload"
+msgstr "Презареждане"
+
+#: gitk:2069
+msgid "Reread references"
+msgstr "Наново прочитане на настройките"
+
+#: gitk:2070
+msgid "List references"
+msgstr "Изброяване на указателите"
+
+#: gitk:2072
+msgid "Start git gui"
+msgstr "Стартиране на git gui"
+
+#: gitk:2074
+msgid "Quit"
+msgstr "Спиране на програмата"
+
+#: gitk:2066
+msgid "File"
+msgstr "Файл"
+
+#: gitk:2078
+msgid "Preferences"
+msgstr "Настройки"
+
+#: gitk:2077
+msgid "Edit"
+msgstr "Редактиране"
+
+#: gitk:2082
+msgid "New view..."
+msgstr "Нов изглед…"
+
+#: gitk:2083
+msgid "Edit view..."
+msgstr "Редактиране на изгледа…"
+
+#: gitk:2084
+msgid "Delete view"
+msgstr "Изтриване на изгледа"
+
+#: gitk:2086
+msgid "All files"
+msgstr "Всички файлове"
+
+#: gitk:2081 gitk:3975
+msgid "View"
+msgstr "Изглед"
+
+#: gitk:2091 gitk:2101 gitk:2945
+msgid "About gitk"
+msgstr "Относно gitk"
+
+#: gitk:2092 gitk:2106
+msgid "Key bindings"
+msgstr "Клавишни комбинации"
+
+#: gitk:2090 gitk:2105
+msgid "Help"
+msgstr "Помощ"
+
+#: gitk:2183 gitk:8535
+msgid "SHA1 ID:"
+msgstr "SHA1:"
+
+#: gitk:2227
+msgid "Row"
+msgstr "Ред"
+
+#: gitk:2265
+msgid "Find"
+msgstr "Търсене"
+
+#: gitk:2266
+msgid "next"
+msgstr "следващо"
+
+#: gitk:2267
+msgid "prev"
+msgstr "предишно"
+
+#: gitk:2268
+msgid "commit"
+msgstr "подаване"
+
+#: gitk:2271 gitk:2273 gitk:4590 gitk:4613 gitk:4637 gitk:6653 gitk:6725
+#: gitk:6810
+msgid "containing:"
+msgstr "съдържащо:"
+
+#: gitk:2274 gitk:3457 gitk:3462 gitk:4666
+msgid "touching paths:"
+msgstr "засягащо пътищата:"
+
+#: gitk:2275 gitk:4680
+msgid "adding/removing string:"
+msgstr "добавящо/премахващо низ"
+
+#: gitk:2276 gitk:4682
+msgid "changing lines matching:"
+msgstr "променящо редове напасващи:"
+
+#: gitk:2285 gitk:2287 gitk:4669
+msgid "Exact"
+msgstr "Точно"
+
+#: gitk:2287 gitk:4757 gitk:6621
+msgid "IgnCase"
+msgstr "Без регистър"
+
+#: gitk:2287 gitk:4639 gitk:4755 gitk:6617
+msgid "Regexp"
+msgstr "Рег. изр."
+
+#: gitk:2289 gitk:2290 gitk:4777 gitk:4807 gitk:4814 gitk:6746 gitk:6814
+msgid "All fields"
+msgstr "Всички полета"
+
+#: gitk:2290 gitk:4774 gitk:4807 gitk:6684
+msgid "Headline"
+msgstr "Първи ред"
+
+#: gitk:2291 gitk:4774 gitk:6684 gitk:6814 gitk:7283
+msgid "Comments"
+msgstr "Коментари"
+
+#: gitk:2291 gitk:4774 gitk:4779 gitk:4814 gitk:6684 gitk:7218 gitk:8713
+#: gitk:8728
+msgid "Author"
+msgstr "Автор"
+
+#: gitk:2291 gitk:4774 gitk:6684 gitk:7220
+msgid "Committer"
+msgstr "Подаващ"
+
+#: gitk:2322
+msgid "Search"
+msgstr "Търсене"
+
+#: gitk:2330
+msgid "Diff"
+msgstr "Разлики"
+
+#: gitk:2332
+msgid "Old version"
+msgstr "Стара версия"
+
+#: gitk:2334
+msgid "New version"
+msgstr "Нова версия"
+
+#: gitk:2336
+msgid "Lines of context"
+msgstr "Контекст в редове"
+
+#: gitk:2346
+msgid "Ignore space change"
+msgstr "Празните знаци без значение"
+
+#: gitk:2350 gitk:2352 gitk:7842 gitk:8089
+msgid "Line diff"
+msgstr "Поредови разлики"
+
+#: gitk:2417
+msgid "Patch"
+msgstr "Кръпка"
+
+#: gitk:2419
+msgid "Tree"
+msgstr "Дърво"
+
+#: gitk:2577 gitk:2597
+msgid "Diff this -> selected"
+msgstr "Разлики между това и избраното"
+
+#: gitk:2578 gitk:2598
+msgid "Diff selected -> this"
+msgstr "Разлики между избраното и това"
+
+#: gitk:2579 gitk:2599
+msgid "Make patch"
+msgstr "Създаване на кръпка"
+
+#: gitk:2580 gitk:9137
+msgid "Create tag"
+msgstr "Създаване на етикет"
+
+#: gitk:2581 gitk:9254
+msgid "Write commit to file"
+msgstr "Запазване на подаването във файл"
+
+#: gitk:2582 gitk:9311
+msgid "Create new branch"
+msgstr "Създаване на нов клон"
+
+#: gitk:2583
+msgid "Cherry-pick this commit"
+msgstr "Отбиране на това подаване"
+
+#: gitk:2584
+msgid "Reset HEAD branch to here"
+msgstr "Привеждане на върха на клона към текущото подаване"
+
+#: gitk:2585
+msgid "Mark this commit"
+msgstr "Отбелязване на това подаване"
+
+#: gitk:2586
+msgid "Return to mark"
+msgstr "Връщане към отбелязаното подаване"
+
+#: gitk:2587
+msgid "Find descendant of this and mark"
+msgstr "Откриване и отбелязване на наследниците"
+
+#: gitk:2588
+msgid "Compare with marked commit"
+msgstr "Сравнение с отбелязаното подаване"
+
+#: gitk:2589 gitk:2600
+msgid "Diff this -> marked commit"
+msgstr "Разлики между това и отбелязаното"
+
+#: gitk:2590 gitk:2601
+msgid "Diff marked commit -> this"
+msgstr "Разлики между отбелязаното и това"
+
+#: gitk:2591
+msgid "Revert this commit"
+msgstr "Отмяна на това подаване"
+
+#: gitk:2607
+msgid "Check out this branch"
+msgstr "Изтегляне на този клон"
+
+#: gitk:2608
+msgid "Remove this branch"
+msgstr "Изтриване на този клон"
+
+#: gitk:2615
+msgid "Highlight this too"
+msgstr "Отбелязване и на това"
+
+#: gitk:2616
+msgid "Highlight this only"
+msgstr "Отбелязване само на това"
+
+#: gitk:2617
+msgid "External diff"
+msgstr "Външна програма за разлики"
+
+#: gitk:2618
+msgid "Blame parent commit"
+msgstr "Анотиране на родителското подаване"
+
+#: gitk:2625
+msgid "Show origin of this line"
+msgstr "Показване на произхода на този ред"
+
+#: gitk:2626
+msgid "Run git gui blame on this line"
+msgstr "Изпълнение на „git gui blame“ върху този ред"
+
+#: gitk:2947
+msgid ""
+"\n"
+"Gitk - a commit viewer for git\n"
+"\n"
+"Copyright © 2005-2011 Paul Mackerras\n"
+"\n"
+"Use and redistribute under the terms of the GNU General Public License"
+msgstr ""
+"\n"
+"Gitk — визуализация на подаванията в Git\n"
+"\n"
+"Авторски права: © 2005-2011 Paul Mackerras\n"
+"\n"
+"Използвайте и разпространявайте при условията на ОПЛ на ГНУ"
+
+#: gitk:2955 gitk:3020 gitk:9738
+msgid "Close"
+msgstr "Затваряне"
+
+#: gitk:2976
+msgid "Gitk key bindings"
+msgstr "Клавишни комбинации"
+
+#: gitk:2979
+msgid "Gitk key bindings:"
+msgstr "Клавишни комбинации:"
+
+#: gitk:2981
+#, tcl-format
+msgid "<%s-Q>\t\tQuit"
+msgstr "<%s-Q>\t\tСпиране на програмата"
+
+#: gitk:2982
+#, tcl-format
+msgid "<%s-W>\t\tClose window"
+msgstr "<%s-W>\t\tЗатваряне на прозореца"
+
+#: gitk:2983
+msgid "<Home>\t\tMove to first commit"
+msgstr "<Home>\t\tКъм първото подаване"
+
+#: gitk:2984
+msgid "<End>\t\tMove to last commit"
+msgstr "<End>\t\tКъм последното подаване"
+
+#: gitk:2985
+msgid "<Up>, p, k\tMove up one commit"
+msgstr "<Up>, p, k\tЕдно подаване нагоре"
+
+#: gitk:2986
+msgid "<Down>, n, j\tMove down one commit"
+msgstr "<Down>, n, j\tЕдно подаване надолу"
+
+#: gitk:2987
+msgid "<Left>, z, h\tGo back in history list"
+msgstr "<Left>, z, h\tНазад в историята"
+
+#: gitk:2988
+msgid "<Right>, x, l\tGo forward in history list"
+msgstr "<Right>, x, l\tНапред в историята"
+
+#: gitk:2989
+msgid "<PageUp>\tMove up one page in commit list"
+msgstr "<PageUp>\tЕдна страница нагоре в списъка с подаванията"
+
+#: gitk:2990
+msgid "<PageDown>\tMove down one page in commit list"
+msgstr "<PageDown>\tЕдна страница надолу в списъка с подаванията"
+
+#: gitk:2991
+#, tcl-format
+msgid "<%s-Home>\tScroll to top of commit list"
+msgstr "<%s-Home>\tКъм началото на списъка с подаванията"
+
+#: gitk:2992
+#, tcl-format
+msgid "<%s-End>\tScroll to bottom of commit list"
+msgstr "<%s-End>\tКъм края на списъка с подаванията"
+
+#: gitk:2993
+#, tcl-format
+msgid "<%s-Up>\tScroll commit list up one line"
+msgstr "<%s-Up>\tПридвижване на списъка с подавания с един ред нагоре"
+
+#: gitk:2994
+#, tcl-format
+msgid "<%s-Down>\tScroll commit list down one line"
+msgstr "<%s-Down>\tПридвижване на списъка с подавания с един ред надолу"
+
+#: gitk:2995
+#, tcl-format
+msgid "<%s-PageUp>\tScroll commit list up one page"
+msgstr "<%s-PageUp>\tПридвижване на списъка с подавания с една страница нагоре"
+
+#: gitk:2996
+#, tcl-format
+msgid "<%s-PageDown>\tScroll commit list down one page"
+msgstr "<%s-PageDown>\tПридвижване на списъка с подавания с една страница надолу"
+
+#: gitk:2997
+msgid "<Shift-Up>\tFind backwards (upwards, later commits)"
+msgstr "<Shift-Up>\tТърсене назад (визуално нагоре, исторически — последващи)"
+
+#: gitk:2998
+msgid "<Shift-Down>\tFind forwards (downwards, earlier commits)"
+msgstr "<Shift-Down>\tТърсене напред (визуално надолу, исторически — предхождащи)"
+
+#: gitk:2999
+msgid "<Delete>, b\tScroll diff view up one page"
+msgstr "<Delete>, b\tПридвижване на изгледа за разлики една страница нагоре"
+
+#: gitk:3000
+msgid "<Backspace>\tScroll diff view up one page"
+msgstr "<Backspace>\tПридвижване на изгледа за разлики една страница нагоре"
+
+#: gitk:3001
+msgid "<Space>\t\tScroll diff view down one page"
+msgstr "<Space>\t\tПридвижване на изгледа за разлики една страница надолу"
+
+#: gitk:3002
+msgid "u\t\tScroll diff view up 18 lines"
+msgstr "u\t\tПридвижване на изгледа за разлики 18 реда нагоре"
+
+#: gitk:3003
+msgid "d\t\tScroll diff view down 18 lines"
+msgstr "d\t\tПридвижване на изгледа за разлики 18 реда надолу"
+
+#: gitk:3004
+#, tcl-format
+msgid "<%s-F>\t\tFind"
+msgstr "<%s-F>\t\tТърсене"
+
+#: gitk:3005
+#, tcl-format
+msgid "<%s-G>\t\tMove to next find hit"
+msgstr "<%s-G>\t\tКъм следващата поява"
+
+#: gitk:3006
+msgid "<Return>\tMove to next find hit"
+msgstr "<Return>\tКъм следващата поява"
+
+#: gitk:3007
+msgid "/\t\tFocus the search box"
+msgstr "/\t\tФокус върху полето за търсене"
+
+#: gitk:3008
+msgid "?\t\tMove to previous find hit"
+msgstr "?\t\tКъм предишната поява"
+
+#: gitk:3009
+msgid "f\t\tScroll diff view to next file"
+msgstr "f\t\tПридвижване на изгледа за разлики към следващия ред"
+
+#: gitk:3010
+#, tcl-format
+msgid "<%s-S>\t\tSearch for next hit in diff view"
+msgstr "<%s-S>\t\tТърсене на следващата поява в изгледа за разлики"
+
+#: gitk:3011
+#, tcl-format
+msgid "<%s-R>\t\tSearch for previous hit in diff view"
+msgstr "<%s-R>\t\tТърсене на предишната поява в изгледа за разлики"
+
+#: gitk:3012
+#, tcl-format
+msgid "<%s-KP+>\tIncrease font size"
+msgstr "<%s-KP+>\tПо-голям размер на шрифта"
+
+#: gitk:3013
+#, tcl-format
+msgid "<%s-plus>\tIncrease font size"
+msgstr "<%s-plus>\tПо-голям размер на шрифта"
+
+#: gitk:3014
+#, tcl-format
+msgid "<%s-KP->\tDecrease font size"
+msgstr "<%s-KP->\tПо-малък размер на шрифта"
+
+#: gitk:3015
+#, tcl-format
+msgid "<%s-minus>\tDecrease font size"
+msgstr "<%s-minus>\tПо-малък размер на шрифта"
+
+#: gitk:3016
+msgid "<F5>\t\tUpdate"
+msgstr "<F5>\t\tОбновяване"
+
+#: gitk:3471 gitk:3480
+#, tcl-format
+msgid "Error creating temporary directory %s:"
+msgstr "Грешка при създаването на временната директория „%s“:"
+
+#: gitk:3493
+#, tcl-format
+msgid "Error getting \"%s\" from %s:"
+msgstr "Грешка при получаването на „%s“ от %s:"
+
+#: gitk:3556
+msgid "command failed:"
+msgstr "неуспешно изпълнение на команда:"
+
+#: gitk:3705
+msgid "No such commit"
+msgstr "Такова подаване няма"
+
+#: gitk:3719
+msgid "git gui blame: command failed:"
+msgstr "git gui blame: неуспешно изпълнение на команда:"
+
+#: gitk:3750
+#, tcl-format
+msgid "Couldn't read merge head: %s"
+msgstr "Върхът за сливане не може да бъде прочетен: %s"
+
+#: gitk:3758
+#, tcl-format
+msgid "Error reading index: %s"
+msgstr "Грешка при прочитане на индекса: %s"
+
+#: gitk:3783
+#, tcl-format
+msgid "Couldn't start git blame: %s"
+msgstr "Командата „git blame“ не може да бъде стартирана: %s"
+
+#: gitk:3786 gitk:6652
+msgid "Searching"
+msgstr "Търсене"
+
+#: gitk:3818
+#, tcl-format
+msgid "Error running git blame: %s"
+msgstr "Грешка при изпълнението на „git blame“: %s"
+
+#: gitk:3846
+#, tcl-format
+msgid "That line comes from commit %s, which is not in this view"
+msgstr "Този ред идва от подаването %s, което не е в изгледа"
+
+#: gitk:3860
+msgid "External diff viewer failed:"
+msgstr "Неуспешно изпълнение на външната програма за разлики:"
+
+#: gitk:3978
+msgid "Gitk view definition"
+msgstr "Дефиниция на изглед в Gitk"
+
+#: gitk:3982
+msgid "Remember this view"
+msgstr "Запазване на този изглед"
+
+#: gitk:3983
+msgid "References (space separated list):"
+msgstr "Указатели (списък с разделител интервал):"
+
+#: gitk:3984
+msgid "Branches & tags:"
+msgstr "Клони и етикети:"
+
+#: gitk:3985
+msgid "All refs"
+msgstr "Всички указатели"
+
+#: gitk:3986
+msgid "All (local) branches"
+msgstr "Всички (локални) клони"
+
+#: gitk:3987
+msgid "All tags"
+msgstr "Всички етикети"
+
+#: gitk:3988
+msgid "All remote-tracking branches"
+msgstr "Всички следящи клони"
+
+#: gitk:3989
+msgid "Commit Info (regular expressions):"
+msgstr "Информация за подаване (рег. изр.):"
+
+#: gitk:3990
+msgid "Author:"
+msgstr "Автор:"
+
+#: gitk:3991
+msgid "Committer:"
+msgstr "Подал:"
+
+#: gitk:3992
+msgid "Commit Message:"
+msgstr "Съобщение при подаване:"
+
+#: gitk:3993
+msgid "Matches all Commit Info criteria"
+msgstr "Съвпадение по коя да е информация за подаването"
+
+#: gitk:3994
+msgid "Changes to Files:"
+msgstr "Промени по файловете:"
+
+#: gitk:3995
+msgid "Fixed String"
+msgstr "Дословен низ"
+
+#: gitk:3996
+msgid "Regular Expression"
+msgstr "Регулярен израз"
+
+#: gitk:3997
+msgid "Search string:"
+msgstr "Низ за търсене:"
+
+#: gitk:3998
+msgid ""
+"Commit Dates (\"2 weeks ago\", \"2009-03-17 15:27:38\", \"March 17, 2009 "
+"15:27:38\"):"
+msgstr "Дата на подаване („2 weeks ago“ (преди 2 седмици), „2009-03-17 15:27:38“, „March 17, 2009 15:27:38“):"
+
+#: gitk:3999
+msgid "Since:"
+msgstr "От:"
+
+#: gitk:4000
+msgid "Until:"
+msgstr "До:"
+
+#: gitk:4001
+msgid "Limit and/or skip a number of revisions (positive integer):"
+msgstr "Ограничаване и/или прескачане на определен брой версии (неотрицателно цяло число):"
+
+#: gitk:4002
+msgid "Number to show:"
+msgstr "Брой показани:"
+
+#: gitk:4003
+msgid "Number to skip:"
+msgstr "Брой прескочени:"
+
+#: gitk:4004
+msgid "Miscellaneous options:"
+msgstr "Разни:"
+
+#: gitk:4005
+msgid "Strictly sort by date"
+msgstr "Подреждане по дата"
+
+#: gitk:4006
+msgid "Mark branch sides"
+msgstr "Отбелязване на страните по клона"
+
+#: gitk:4007
+msgid "Limit to first parent"
+msgstr "Само първият родител"
+
+#: gitk:4008
+msgid "Simple history"
+msgstr "Опростена история"
+
+#: gitk:4009
+msgid "Additional arguments to git log:"
+msgstr "Допълнителни аргументи към „git log“:"
+
+#: gitk:4010
+msgid "Enter files and directories to include, one per line:"
+msgstr "Въведете файловете и директориите за включване, по елемент на ред"
+
+#: gitk:4011
+msgid "Command to generate more commits to include:"
+msgstr "Команда за генерирането на допълнителни подавания, които да бъдат включени:"
+
+#: gitk:4135
+msgid "Gitk: edit view"
+msgstr "Gitk: редактиране на изглед"
+
+#: gitk:4143
+msgid "-- criteria for selecting revisions"
+msgstr "— критерии за избор на версии"
+
+#: gitk:4148
+msgid "View Name"
+msgstr "Име на изглед"
+
+#: gitk:4223
+msgid "Apply (F5)"
+msgstr "Прилагане (F5)"
+
+#: gitk:4261
+msgid "Error in commit selection arguments:"
+msgstr "Грешка в аргументите за избор на подавания:"
+
+#: gitk:4314 gitk:4366 gitk:4827 gitk:4841 gitk:6107 gitk:12184 gitk:12185
+msgid "None"
+msgstr "Няма"
+
+#: gitk:4924 gitk:4929
+msgid "Descendant"
+msgstr "Наследник"
+
+#: gitk:4925
+msgid "Not descendant"
+msgstr "Не е наследник"
+
+#: gitk:4932 gitk:4937
+msgid "Ancestor"
+msgstr "Предшественик"
+
+#: gitk:4933
+msgid "Not ancestor"
+msgstr "Не е предшественик"
+
+#: gitk:5223
+msgid "Local changes checked in to index but not committed"
+msgstr "Локални промени добавени към индекса, но неподадени"
+
+#: gitk:5259
+msgid "Local uncommitted changes, not checked in to index"
+msgstr "Локални промени извън индекса"
+
+#: gitk:7032
+msgid "and many more"
+msgstr "и още много"
+
+#: gitk:7035
+msgid "many"
+msgstr "много"
+
+#: gitk:7222
+msgid "Tags:"
+msgstr "Етикети:"
+
+#: gitk:7239 gitk:7245 gitk:8708
+msgid "Parent"
+msgstr "Родител"
+
+#: gitk:7250
+msgid "Child"
+msgstr "Дете"
+
+#: gitk:7259
+msgid "Branch"
+msgstr "Клон"
+
+#: gitk:7262
+msgid "Follows"
+msgstr "Следва"
+
+#: gitk:7265
+msgid "Precedes"
+msgstr "Предшества"
+
+#: gitk:7849
+#, tcl-format
+msgid "Error getting diffs: %s"
+msgstr "Грешка при получаването на разликите: %s"
+
+#: gitk:8533
+msgid "Goto:"
+msgstr "Към ред:"
+
+#: gitk:8554
+#, tcl-format
+msgid "Short SHA1 id %s is ambiguous"
+msgstr "Съкратената SHA1 %s не е еднозначна"
+
+#: gitk:8561
+#, tcl-format
+msgid "Revision %s is not known"
+msgstr "Непозната версия %s"
+
+#: gitk:8571
+#, tcl-format
+msgid "SHA1 id %s is not known"
+msgstr "Непозната SHA1 %s"
+
+#: gitk:8573
+#, tcl-format
+msgid "Revision %s is not in the current view"
+msgstr "Версия %s не е в текущия изглед"
+
+#: gitk:8715 gitk:8730
+msgid "Date"
+msgstr "Дата"
+
+#: gitk:8718
+msgid "Children"
+msgstr "Деца"
+
+#: gitk:8781
+#, tcl-format
+msgid "Reset %s branch to here"
+msgstr "Зануляване на клона „%s“ към текущото подаване"
+
+#: gitk:8783
+msgid "Detached head: can't reset"
+msgstr "Несвързан връх: невъзможно зануляване"
+
+#: gitk:8888 gitk:8894
+msgid "Skipping merge commit "
+msgstr "Пропускане на подаването на сливането"
+
+#: gitk:8903 gitk:8908
+msgid "Error getting patch ID for "
+msgstr "Грешка при получаването на идентификатора на "
+
+#: gitk:8904 gitk:8909
+msgid " - stopping\n"
+msgstr " — спиране\n"
+
+#: gitk:8914 gitk:8917 gitk:8925 gitk:8939 gitk:8948
+msgid "Commit "
+msgstr "Подаване"
+
+#: gitk:8918
+msgid ""
+" is the same patch as\n"
+" "
+msgstr ""
+" е същата кръпка като\n"
+" "
+
+#: gitk:8926
+msgid ""
+" differs from\n"
+" "
+msgstr ""
+" се различава от\n"
+" "
+
+#: gitk:8928
+msgid ""
+"Diff of commits:\n"
+"\n"
+msgstr "Разлика между подаванията:\n\n"
+
+#: gitk:8940 gitk:8949
+#, tcl-format
+msgid " has %s children - stopping\n"
+msgstr " има %s деца — спиране\n"
+
+#: gitk:8968
+#, tcl-format
+msgid "Error writing commit to file: %s"
+msgstr "Грешка при запазването на подаването във файл: %s"
+
+#: gitk:8974
+#, tcl-format
+msgid "Error diffing commits: %s"
+msgstr "Грешка при изчисляването на разликите между подаванията: %s"
+
+#: gitk:9020
+msgid "Top"
+msgstr "Най-горе"
+
+#: gitk:9021
+msgid "From"
+msgstr "От"
+
+#: gitk:9026
+msgid "To"
+msgstr "До"
+
+#: gitk:9050
+msgid "Generate patch"
+msgstr "Генериране на кръпка"
+
+#: gitk:9052
+msgid "From:"
+msgstr "От:"
+
+#: gitk:9061
+msgid "To:"
+msgstr "До:"
+
+#: gitk:9070
+msgid "Reverse"
+msgstr "Обръщане"
+
+#: gitk:9072 gitk:9268
+msgid "Output file:"
+msgstr "Запазване във файла:"
+
+#: gitk:9078
+msgid "Generate"
+msgstr "Генериране"
+
+#: gitk:9116
+msgid "Error creating patch:"
+msgstr "Грешка при създаването на кръпка:"
+
+#: gitk:9139 gitk:9256 gitk:9313
+msgid "ID:"
+msgstr "Идентификатор:"
+
+#: gitk:9148
+msgid "Tag name:"
+msgstr "Име на етикет:"
+
+#: gitk:9151
+msgid "Tag message is optional"
+msgstr "Съобщението за етикет е незадължително"
+
+#: gitk:9153
+msgid "Tag message:"
+msgstr "Съобщение за етикет:"
+
+#: gitk:9157 gitk:9322
+msgid "Create"
+msgstr "Създаване"
+
+#: gitk:9175
+msgid "No tag name specified"
+msgstr "Липсва име на етикет"
+
+#: gitk:9179
+#, tcl-format
+msgid "Tag \"%s\" already exists"
+msgstr "Етикетът „%s“ вече съществува"
+
+#: gitk:9189
+msgid "Error creating tag:"
+msgstr "Грешка при създаването на етикет:"
+
+#: gitk:9265
+msgid "Command:"
+msgstr "Команда:"
+
+#: gitk:9273
+msgid "Write"
+msgstr "Pdmdpldke"
+
+#: gitk:9291
+msgid "Error writing commit:"
+msgstr "Грешка при запазването на подаването:"
+
+#: gitk:9318
+msgid "Name:"
+msgstr "Име:"
+
+#: gitk:9341
+msgid "Please specify a name for the new branch"
+msgstr "Укажете име за новия клон"
+
+#: gitk:9346
+#, tcl-format
+msgid "Branch '%s' already exists. Overwrite?"
+msgstr "Клонът „%s“ вече съществува. Да бъде ли презаписан?"
+
+#: gitk:9413
+#, tcl-format
+msgid "Commit %s is already included in branch %s -- really re-apply it?"
+msgstr "Подаването „%s“ вече е включено в клона „%s“ — да бъде ли приложено отново?"
+
+#: gitk:9418
+msgid "Cherry-picking"
+msgstr "Отбиране"
+
+#: gitk:9427
+#, tcl-format
+msgid ""
+"Cherry-pick failed because of local changes to file '%s'.\n"
+"Please commit, reset or stash your changes and try again."
+msgstr ""
+"Неуспешно отбиране, защото във файла „%s“ има локални промени.\n"
+"Подайте, занулете или ги скатайте и пробвайте отново."
+
+#: gitk:9433
+msgid ""
+"Cherry-pick failed because of merge conflict.\n"
+"Do you wish to run git citool to resolve it?"
+msgstr ""
+"Неуспешно отбиране поради конфликти при сливане.\n"
+"Искате ли да ги коригирате чрез „git citool“?"
+
+#: gitk:9449 gitk:9507
+msgid "No changes committed"
+msgstr "Не са подадени промени"
+
+#: gitk:9476
+#, tcl-format
+msgid "Commit %s is not included in branch %s -- really revert it?"
+msgstr "Подаването „%s“ не е включено в клона „%s“. Да бъде ли отменено?"
+
+#: gitk:9481
+msgid "Reverting"
+msgstr "Отмяна"
+
+#: gitk:9489
+#, tcl-format
+msgid ""
+"Revert failed because of local changes to the following files:%s Please "
+"commit, reset or stash your changes and try again."
+msgstr ""
+"Неуспешна отмяна, защото във файла „%s“ има локални промени.\n"
+"Подайте, занулете или ги скатайте и пробвайте отново.<"
+
+#: gitk:9493
+msgid ""
+"Revert failed because of merge conflict.\n"
+" Do you wish to run git citool to resolve it?"
+msgstr ""
+"Неуспешно отмяна поради конфликти при сливане.\n"
+"Искате ли да ги коригирате чрез „git citool“?"
+
+#: gitk:9536
+msgid "Confirm reset"
+msgstr "Потвърждаване на зануляването"
+
+#: gitk:9538
+#, tcl-format
+msgid "Reset branch %s to %s?"
+msgstr "Да се занули ли клона „%s“ към „%s“?"
+
+#: gitk:9540
+msgid "Reset type:"
+msgstr "Вид зануляване:"
+
+#: gitk:9543
+msgid "Soft: Leave working tree and index untouched"
+msgstr "Слабо: работното дърво и индекса остават същите"
+
+#: gitk:9546
+msgid "Mixed: Leave working tree untouched, reset index"
+msgstr "Смесено: работното дърво остава същото, индексът се занулява"
+
+#: gitk:9549
+msgid ""
+"Hard: Reset working tree and index\n"
+"(discard ALL local changes)"
+msgstr ""
+"Силно: зануляване и на работното дърво, и на индекса\n"
+"(*ВСИЧКИ* локални промени ще бъдат безвъзвратно загубени)"
+
+#: gitk:9566
+msgid "Resetting"
+msgstr "Зануляване"
+
+#: gitk:9626
+msgid "Checking out"
+msgstr "Изтегляне"
+
+#: gitk:9679
+msgid "Cannot delete the currently checked-out branch"
+msgstr "Текущо изтегленият клон не може да бъде изтрит"
+
+#: gitk:9685
+#, tcl-format
+msgid ""
+"The commits on branch %s aren't on any other branch.\n"
+"Really delete branch %s?"
+msgstr ""
+"Подаванията на клона „%s“ не са на никой друг клон.\n"
+"Наистина ли да се изтрие клона „%s“?"
+
+#: gitk:9716
+#, tcl-format
+msgid "Tags and heads: %s"
+msgstr "Етикети и върхове: %s"
+
+#: gitk:9731
+msgid "Filter"
+msgstr "Филтриране"
+
+#: gitk:10027
+msgid ""
+"Error reading commit topology information; branch and preceding/following "
+"tag information will be incomplete."
+msgstr "Грешка при прочитането на топологията на подаванията. Информацията за клона и предшестващите/следващите етикети ще е непълна."
+
+#: gitk:11004
+msgid "Tag"
+msgstr "Етикет"
+
+#: gitk:11008
+msgid "Id"
+msgstr "Идентификатор"
+
+#: gitk:11091
+msgid "Gitk font chooser"
+msgstr "Избор на шрифт за Gitk"
+
+#: gitk:11108
+msgid "B"
+msgstr "Ч"
+
+#: gitk:11111
+msgid "I"
+msgstr "К"
+
+#: gitk:11229
+msgid "Commit list display options"
+msgstr "Настройки на списъка с подавания"
+
+#: gitk:11232
+msgid "Maximum graph width (lines)"
+msgstr "Максимална широчина на графа (в редове)"
+
+#: gitk:11235
+#, tcl-format
+msgid "Maximum graph width (% of pane)"
+msgstr "Максимална широчина на графа (% от панела)"
+
+#: gitk:11238
+msgid "Show local changes"
+msgstr "Показване на локалните промени"
+
+#: gitk:11241
+msgid "Auto-select SHA1 (length)"
+msgstr "Автоматично избиране на SHA1 (дължина)"
+
+#: gitk:11245
+msgid "Hide remote refs"
+msgstr "Скриване на отдалечените указатели"
+
+#: gitk:11249
+msgid "Diff display options"
+msgstr "Настройки на показването на разликите"
+
+#: gitk:11251
+msgid "Tab spacing"
+msgstr "Широчина на табулатора"
+
+#: gitk:11254
+msgid "Display nearby tags/heads"
+msgstr "Извеждане на близките етикети и върхове"
+
+#: gitk:11257
+msgid "Maximum # tags/heads to show"
+msgstr "Максимален брой етикети/върхове за показване"
+
+#: gitk:11260
+msgid "Limit diffs to listed paths"
+msgstr "Разлика само в избраните пътища"
+
+#: gitk:11263
+msgid "Support per-file encodings"
+msgstr "Поддръжка на различни кодирания за всеки файл"
+
+#: gitk:11269 gitk:11416
+msgid "External diff tool"
+msgstr "Външен инструмент за разлики"
+
+#: gitk:11270
+msgid "Choose..."
+msgstr "Избор…"
+
+#: gitk:11275
+msgid "General options"
+msgstr "Общи настройки"
+
+#: gitk:11278
+msgid "Use themed widgets"
+msgstr "Използване на тема за графичните обекти"
+
+#: gitk:11280
+msgid "(change requires restart)"
+msgstr "(промяната изисква рестартиране на Gitk)"
+
+#: gitk:11282
+msgid "(currently unavailable)"
+msgstr "(в момента недостъпно)"
+
+#: gitk:11293
+msgid "Colors: press to choose"
+msgstr "Цветове: избира се с натискане"
+
+#: gitk:11296
+msgid "Interface"
+msgstr "Интерфейс"
+
+#: gitk:11297
+msgid "interface"
+msgstr "интерфейс"
+
+#: gitk:11300
+msgid "Background"
+msgstr "Фон"
+
+#: gitk:11301 gitk:11331
+msgid "background"
+msgstr "Фон"
+
+#: gitk:11304
+msgid "Foreground"
+msgstr "Знаци"
+
+#: gitk:11305
+msgid "foreground"
+msgstr "знаци"
+
+#: gitk:11308
+msgid "Diff: old lines"
+msgstr "Разлика: стари редове"
+
+#: gitk:11309
+msgid "diff old lines"
+msgstr "разлика, стари редове"
+
+#: gitk:11313
+msgid "Diff: new lines"
+msgstr "Разлика: нови редове"
+
+#: gitk:11314
+msgid "diff new lines"
+msgstr "разлика, нови редове"
+
+#: gitk:11318
+msgid "Diff: hunk header"
+msgstr "Разлика: начало на парче"
+
+#: gitk:11320
+msgid "diff hunk header"
+msgstr "разлика, начало на парче"
+
+#: gitk:11324
+msgid "Marked line bg"
+msgstr "Фон на отбелязан ред"
+
+#: gitk:11326
+msgid "marked line background"
+msgstr "Фон на отбелязан ред"
+
+#: gitk:11330
+msgid "Select bg"
+msgstr "Избор на фон"
+
+#: gitk:11339
+msgid "Fonts: press to choose"
+msgstr "Шрифтове: избира се с натискане"
+
+#: gitk:11341
+msgid "Main font"
+msgstr "Основен шрифт"
+
+#: gitk:11342
+msgid "Diff display font"
+msgstr "Шрифт за разликите"
+
+#: gitk:11343
+msgid "User interface font"
+msgstr "Шрифт на интерфейса"
+
+#: gitk:11365
+msgid "Gitk preferences"
+msgstr "Настройки на Gitk"
+
+#: gitk:11374
+msgid "General"
+msgstr "Общи"
+
+#: gitk:11375
+msgid "Colors"
+msgstr "Цветове"
+
+#: gitk:11376
+msgid "Fonts"
+msgstr "Шрифтове"
+
+#: gitk:11426
+#, tcl-format
+msgid "Gitk: choose color for %s"
+msgstr "Gitk: избор на цвят на %s"
+
+#: gitk:12080
+msgid "Cannot find a git repository here."
+msgstr "Тук липсва хранилище на Git."
+
+#: gitk:12127
+#, tcl-format
+msgid "Ambiguous argument '%s': both revision and filename"
+msgstr "Нееднозначен аргумент „%s“: има и такава версия, и такъв файл"
+
+#: gitk:12139
+msgid "Bad arguments to gitk:"
+msgstr "Неправилни аргументи на gitk:"
+
+#: gitk:12242
+msgid "Command line"
+msgstr "Команден ред"
diff --git a/gitk-git/po/po2msg.sh b/gitk-git/po/po2msg.sh
index c63248e375..c63248e375 100644..100755
--- a/gitk-git/po/po2msg.sh
+++ b/gitk-git/po/po2msg.sh