diff options
Diffstat (limited to 'gitk-git')
-rw-r--r-- | gitk-git/.gitignore | 2 | ||||
-rw-r--r-- | gitk-git/Makefile | 16 | ||||
-rwxr-xr-x | gitk-git/gitk | 1070 | ||||
-rw-r--r-- | gitk-git/po/bg.po | 1334 | ||||
-rwxr-xr-x[-rw-r--r--] | gitk-git/po/po2msg.sh | 0 | ||||
-rw-r--r-- | gitk-git/po/sv.po | 720 |
6 files changed, 2505 insertions, 637 deletions
diff --git a/gitk-git/.gitignore b/gitk-git/.gitignore new file mode 100644 index 0000000000..d7ebcaf366 --- /dev/null +++ b/gitk-git/.gitignore @@ -0,0 +1,2 @@ +/GIT-TCLTK-VARS +/gitk-wish diff --git a/gitk-git/Makefile b/gitk-git/Makefile index e1b6045605..5acdc900ab 100644 --- a/gitk-git/Makefile +++ b/gitk-git/Makefile @@ -17,6 +17,16 @@ DESTDIR_SQ = $(subst ','\'',$(DESTDIR)) bindir_SQ = $(subst ','\'',$(bindir)) TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH)) +### Detect Tck/Tk interpreter path changes +TRACK_TCLTK = $(subst ','\'',-DTCLTK_PATH='$(TCLTK_PATH_SQ)') + +GIT-TCLTK-VARS: FORCE + @VARS='$(TRACK_TCLTK)'; \ + if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \ + echo 1>&2 " * new Tcl/Tk interpreter location"; \ + echo "$$VARS" >$@; \ + fi + ## po-file creation rules XGETTEXT ?= xgettext ifdef NO_MSGFMT @@ -49,9 +59,9 @@ uninstall:: $(RM) '$(DESTDIR_SQ)$(bindir_SQ)'/gitk clean:: - $(RM) gitk-wish po/*.msg + $(RM) gitk-wish po/*.msg GIT-TCLTK-VARS -gitk-wish: gitk +gitk-wish: gitk GIT-TCLTK-VARS $(QUIET_GEN)$(RM) $@ $@+ && \ sed -e '1,3s|^exec .* "$$0"|exec $(subst |,'\|',$(TCLTK_PATH_SQ)) "$$0"|' <gitk >$@+ && \ chmod +x $@+ && \ @@ -65,3 +75,5 @@ $(ALL_MSGFILES): %.msg : %.po @echo Generating catalog $@ $(MSGFMT) --statistics --tcl $< -l $(basename $(notdir $<)) -d $(dir $@) +.PHONY: all install uninstall clean update-po +.PHONY: FORCE diff --git a/gitk-git/gitk b/gitk-git/gitk index d93bd990a9..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} { @@ -1998,6 +2017,9 @@ proc mca {str} { return [string map {&& & & {}} [mc $str]] } +proc cleardropsel {w} { + $w selection clear +} proc makedroplist {w varname args} { global use_ttk if {$use_ttk} { @@ -2007,7 +2029,9 @@ proc makedroplist {w varname args} { if {$cx > $width} {set width $cx} } set gm [ttk::combobox $w -width $width -state readonly\ - -textvariable $varname -values $args] + -textvariable $varname -values $args \ + -exportselection false] + bind $gm <<ComboboxSelected>> [list $gm selection clear] } else { set gm [eval [linsert $args 0 tk_optionMenu $w $varname]] } @@ -2026,6 +2050,9 @@ proc makewindow {} { global highlight_files gdttype global searchstring sstring global bgcolor fgcolor bglist fglist diffcolors selectbgcolor + global uifgcolor uifgdisabledcolor + global filesepbgcolor filesepfgcolor + global mergecolors foundbgcolor currentsearchhitbgcolor global headctxmenu progresscanv progressitem progresscoords statusw global fprogitem fprogcoord lastprogupdate progupdatepending global rprogitem rprogcoord rownumsel numcommits @@ -2161,7 +2188,7 @@ proc makewindow {} { trace add variable sha1string write sha1change pack $sha1entry -side left -pady 2 - image create bitmap bm-left -data { + set bm_left_data { #define left_width 16 #define left_height 16 static unsigned char left_bits[] = { @@ -2169,7 +2196,7 @@ proc makewindow {} { 0x0e, 0x00, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0x0e, 0x00, 0x1c, 0x00, 0x38, 0x00, 0x70, 0x00, 0xe0, 0x00, 0xc0, 0x01}; } - image create bitmap bm-right -data { + set bm_right_data { #define right_width 16 #define right_height 16 static unsigned char right_bits[] = { @@ -2177,11 +2204,24 @@ proc makewindow {} { 0x00, 0x38, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0x00, 0x38, 0x00, 0x1c, 0x00, 0x0e, 0x00, 0x07, 0x80, 0x03, 0xc0, 0x01}; } - ${NS}::button .tf.bar.leftbut -image bm-left -command goback \ - -state disabled -width 26 + image create bitmap bm-left -data $bm_left_data -foreground $uifgcolor + image create bitmap bm-left-gray -data $bm_left_data -foreground $uifgdisabledcolor + image create bitmap bm-right -data $bm_right_data -foreground $uifgcolor + image create bitmap bm-right-gray -data $bm_right_data -foreground $uifgdisabledcolor + + ${NS}::button .tf.bar.leftbut -command goback -state disabled -width 26 + if {$use_ttk} { + .tf.bar.leftbut configure -image [list bm-left disabled bm-left-gray] + } else { + .tf.bar.leftbut configure -image bm-left + } pack .tf.bar.leftbut -side left -fill y - ${NS}::button .tf.bar.rightbut -image bm-right -command goforw \ - -state disabled -width 26 + ${NS}::button .tf.bar.rightbut -command goforw -state disabled -width 26 + if {$use_ttk} { + .tf.bar.rightbut configure -image [list bm-right disabled bm-right-gray] + } else { + .tf.bar.rightbut configure -image bm-right + } pack .tf.bar.rightbut -side left -fill y ${NS}::label .tf.bar.rowlabel -text [mc "Row"] @@ -2223,16 +2263,43 @@ 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:"] set gm [makedroplist .tf.lbar.gdttype gdttype \ [mc "containing:"] \ [mc "touching paths:"] \ - [mc "adding/removing string:"]] + [mc "adding/removing string:"] \ + [mc "changing lines matching:"]] trace add variable gdttype write gdttype_change pack .tf.lbar.gdttype -side left -fill y @@ -2336,31 +2403,34 @@ proc makewindow {} { lappend fglist $ctext $ctext tag conf comment -wrap $wrapcomment - $ctext tag conf filesep -font textfontbold -back "#aaaaaa" + $ctext tag conf filesep -font textfontbold -fore $filesepfgcolor -back $filesepbgcolor $ctext tag conf hunksep -fore [lindex $diffcolors 2] $ctext tag conf d0 -fore [lindex $diffcolors 0] $ctext tag conf dresult -fore [lindex $diffcolors 1] - $ctext tag conf m0 -fore red - $ctext tag conf m1 -fore blue - $ctext tag conf m2 -fore green - $ctext tag conf m3 -fore purple - $ctext tag conf m4 -fore brown - $ctext tag conf m5 -fore "#009090" - $ctext tag conf m6 -fore magenta - $ctext tag conf m7 -fore "#808000" - $ctext tag conf m8 -fore "#009000" - $ctext tag conf m9 -fore "#ff0080" - $ctext tag conf m10 -fore cyan - $ctext tag conf m11 -fore "#b07070" - $ctext tag conf m12 -fore "#70b0f0" - $ctext tag conf m13 -fore "#70f0b0" - $ctext tag conf m14 -fore "#f0b070" - $ctext tag conf m15 -fore "#ff70b0" + $ctext tag conf m0 -fore [lindex $mergecolors 0] + $ctext tag conf m1 -fore [lindex $mergecolors 1] + $ctext tag conf m2 -fore [lindex $mergecolors 2] + $ctext tag conf m3 -fore [lindex $mergecolors 3] + $ctext tag conf m4 -fore [lindex $mergecolors 4] + $ctext tag conf m5 -fore [lindex $mergecolors 5] + $ctext tag conf m6 -fore [lindex $mergecolors 6] + $ctext tag conf m7 -fore [lindex $mergecolors 7] + $ctext tag conf m8 -fore [lindex $mergecolors 8] + $ctext tag conf m9 -fore [lindex $mergecolors 9] + $ctext tag conf m10 -fore [lindex $mergecolors 10] + $ctext tag conf m11 -fore [lindex $mergecolors 11] + $ctext tag conf m12 -fore [lindex $mergecolors 12] + $ctext tag conf m13 -fore [lindex $mergecolors 13] + $ctext tag conf m14 -fore [lindex $mergecolors 14] + $ctext tag conf m15 -fore [lindex $mergecolors 15] $ctext tag conf mmax -fore darkgrey set mergemax 16 $ctext tag conf mresult -font textfontbold $ctext tag conf msep -font textfontbold - $ctext tag conf found -back yellow + $ctext tag conf found -back $foundbgcolor + $ctext tag conf currentsearchhit -back $currentsearchhitbgcolor + $ctext tag conf wwrap -wrap word -lmargin2 1c + $ctext tag conf bold -font textfontbold .pwbottom add .bleft if {!$use_ttk} { @@ -2495,10 +2565,9 @@ proc makewindow {} { bindkey ? {dofind -1 1} bindkey f nextfile bind . <F5> updatecommits - bind . <Shift-F5> reloadcommits + bindmodfunctionkey Shift 5 reloadcommits bind . <F2> showrefs - bind . <Shift-F4> {newview 0} - catch { bind . <Shift-Key-XF86_Switch_VT_4> {newview 0} } + bindmodfunctionkey Shift 4 {newview 0} bind . <F4> edit_or_newview bind . <$M1B-q> doquit bind . <$M1B-f> {dofind 1 1} @@ -2523,6 +2592,7 @@ proc makewindow {} { bind $cflist $ctxbut {pop_flist_menu %W %X %Y %x %y} bind $ctext $ctxbut {pop_diff_menu %W %X %Y %x %y} bind $ctext <Button-1> {focus %W} + bind $ctext <<Selection>> rehighlight_search_results set maincursor [. cget -cursor] set textcursor [$ctext cget -cursor] @@ -2544,6 +2614,7 @@ proc makewindow {} { {mc "Compare with marked commit" command compare_commits} {mc "Diff this -> marked commit" command {diffvsmark 0}} {mc "Diff marked commit -> this" command {diffvsmark 1}} + {mc "Revert this commit" command revert} } $rowctxmenu configure -tearoff 0 @@ -2646,6 +2717,11 @@ proc bindkey {ev script} { } } +proc bindmodfunctionkey {mod n script} { + bind . <$mod-F$n> $script + catch { bind . <$mod-XF86_Switch_VT_$n> $script } +} + # set the focus back to the toplevel for any click outside # the entry widgets proc click {w} { @@ -2701,16 +2777,27 @@ proc savestuff {w} { global viewname viewfiles viewargs viewargscmd viewperm nextviewnum global cmitmode wrapcomment datetimeformat limitdiffs global colors uicolor bgcolor fgcolor diffcolors diffcontext selectbgcolor + global uifgcolor uifgdisabledcolor + global headbgcolor headfgcolor headoutlinecolor remotebgcolor + global tagbgcolor tagfgcolor tagoutlinecolor + global reflinecolor filesepbgcolor filesepfgcolor + global mergecolors foundbgcolor currentsearchhitbgcolor + global linehoverbgcolor linehoverfgcolor linehoveroutlinecolor circlecolors + global mainheadcirclecolor workingfilescirclecolor indexcirclecolor + global linkfgcolor circleoutlinecolor global autoselect autosellen extdifftool perfile_attrs markbgcolor use_ttk - global hideremotes want_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] @@ -2724,6 +2811,7 @@ proc savestuff {w} { puts $f [list set autoselect $autoselect] puts $f [list set autosellen $autosellen] puts $f [list set showneartags $showneartags] + puts $f [list set maxrefs $maxrefs] puts $f [list set hideremotes $hideremotes] puts $f [list set showlocalchanges $showlocalchanges] puts $f [list set datetimeformat $datetimeformat] @@ -2732,13 +2820,37 @@ proc savestuff {w} { puts $f [list set want_ttk $want_ttk] puts $f [list set bgcolor $bgcolor] puts $f [list set fgcolor $fgcolor] + puts $f [list set uifgcolor $uifgcolor] + puts $f [list set uifgdisabledcolor $uifgdisabledcolor] puts $f [list set colors $colors] puts $f [list set diffcolors $diffcolors] + puts $f [list set mergecolors $mergecolors] puts $f [list set markbgcolor $markbgcolor] puts $f [list set diffcontext $diffcontext] puts $f [list set selectbgcolor $selectbgcolor] + puts $f [list set foundbgcolor $foundbgcolor] + puts $f [list set currentsearchhitbgcolor $currentsearchhitbgcolor] puts $f [list set extdifftool $extdifftool] puts $f [list set perfile_attrs $perfile_attrs] + puts $f [list set headbgcolor $headbgcolor] + puts $f [list set headfgcolor $headfgcolor] + puts $f [list set headoutlinecolor $headoutlinecolor] + puts $f [list set remotebgcolor $remotebgcolor] + puts $f [list set tagbgcolor $tagbgcolor] + puts $f [list set tagfgcolor $tagfgcolor] + puts $f [list set tagoutlinecolor $tagoutlinecolor] + puts $f [list set reflinecolor $reflinecolor] + puts $f [list set filesepbgcolor $filesepbgcolor] + puts $f [list set filesepfgcolor $filesepfgcolor] + puts $f [list set linehoverbgcolor $linehoverbgcolor] + puts $f [list set linehoverfgcolor $linehoverfgcolor] + puts $f [list set linehoveroutlinecolor $linehoveroutlinecolor] + puts $f [list set mainheadcirclecolor $mainheadcirclecolor] + puts $f [list set workingfilescirclecolor $workingfilescirclecolor] + puts $f [list set indexcirclecolor $indexcirclecolor] + puts $f [list set circlecolors $circlecolors] + puts $f [list set linkfgcolor $linkfgcolor] + puts $f [list set circleoutlinecolor $circleoutlinecolor] puts $f "set geometry(main) [wm geometry .]" puts $f "set geometry(state) [wm state .]" @@ -2762,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 } @@ -2864,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 @@ -3309,6 +3421,7 @@ proc sel_flist {w x y} { } else { catch {$ctext yview [lindex $difffilestart [expr {$l - 2}]]} } + suppress_highlighting_file_for_current_scrollpos } proc pop_flist_menu {w X Y x y} { @@ -4595,6 +4708,8 @@ proc do_file_hl {serial} { set gdtargs [concat -- $relative_paths] } elseif {$gdttype eq [mc "adding/removing string:"]} { set gdtargs [list "-S$highlight_files"] + } elseif {$gdttype eq [mc "changing lines matching:"]} { + set gdtargs [list "-G$highlight_files"] } else { # must be "containing:", i.e. we're searching commit info return @@ -5903,15 +6018,17 @@ proc drawcmittext {id row col} { global linehtag linentag linedtag selectedline global canvxmax boldids boldnameids fgcolor markedid global mainheadid nullid nullid2 circleitem circlecolors ctxbut + global mainheadcirclecolor workingfilescirclecolor indexcirclecolor + global circleoutlinecolor # listed is 0 for boundary, 1 for normal, 2 for negative, 3 for left, 4 for right set listed $cmitlisted($curview,$id) if {$id eq $nullid} { - set ofill red + set ofill $workingfilescirclecolor } elseif {$id eq $nullid2} { - set ofill green + set ofill $indexcirclecolor } elseif {$id eq $mainheadid} { - set ofill yellow + set ofill $mainheadcirclecolor } else { set ofill [lindex $circlecolors $listed] } @@ -5921,21 +6038,21 @@ proc drawcmittext {id row col} { if {$listed <= 2} { set t [$canv create oval [expr {$x - $orad}] [expr {$y - $orad}] \ [expr {$x + $orad - 1}] [expr {$y + $orad - 1}] \ - -fill $ofill -outline $fgcolor -width 1 -tags circle] + -fill $ofill -outline $circleoutlinecolor -width 1 -tags circle] } elseif {$listed == 3} { # triangle pointing left for left-side commits set t [$canv create polygon \ [expr {$x - $orad}] $y \ [expr {$x + $orad - 1}] [expr {$y - $orad}] \ [expr {$x + $orad - 1}] [expr {$y + $orad - 1}] \ - -fill $ofill -outline $fgcolor -width 1 -tags circle] + -fill $ofill -outline $circleoutlinecolor -width 1 -tags circle] } else { # triangle pointing right for right-side commits set t [$canv create polygon \ [expr {$x + $orad - 1}] $y \ [expr {$x - $orad}] [expr {$y - $orad}] \ [expr {$x - $orad}] [expr {$y + $orad - 1}] \ - -fill $ofill -outline $fgcolor -width 1 -tags circle] + -fill $ofill -outline $circleoutlinecolor -width 1 -tags circle] } set circleitem($row) $t $canv raise $t @@ -6319,17 +6436,57 @@ 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 global canv rowtextx curview fgcolor bgcolor ctxbut + global headbgcolor headfgcolor headoutlinecolor remotebgcolor + global tagbgcolor tagfgcolor tagoutlinecolor + global reflinecolor 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)] @@ -6342,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 {} @@ -6357,10 +6513,10 @@ 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 black -tags tag.$id] + -width $lthickness -fill $reflinecolor -tags tag.$id] $canv lower $t foreach tag $marks x $xvals wid $wvals { set tag_quoted [string map {% %%} $tag] @@ -6371,13 +6527,19 @@ proc drawtags {id x xt y1} { # draw a tag set t [$canv create polygon $x [expr {$yt + $delta}] $xl $yt \ $xr $yt $xr $yb $xl $yb $x [expr {$yb - $delta}] \ - -width 1 -outline black -fill yellow -tags tag.$id] - $canv bind $t <1> [list showtag $tag_quoted 1] + -width 1 -outline $tagoutlinecolor -fill $tagbgcolor \ + -tags tag.$id] + 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 if {[incr nheads -1] >= 0} { - set col green + set col $headbgcolor if {$tag eq $mainhead} { set font mainfontbold } @@ -6393,13 +6555,13 @@ proc drawtags {id x xt y1} { set yti [expr {$yt + 1}] set xri [expr {$x + $rwid}] $canv create polygon $xi $yti $xri $yti $xri $yb $xi $yb \ - -width 0 -fill "#ffddaa" -tags tag.$id + -width 0 -fill $remotebgcolor -tags tag.$id } } - set t [$canv create text $xl $y1 -anchor w -text $tag -fill $fgcolor \ + 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] } @@ -6777,6 +6939,7 @@ proc appendwithlinks {text tags} { proc setlink {id lk} { global curview ctext pendinglinks + global linkfgcolor if {[string range $id 0 1] eq "-g"} { set id [string range $id 2 end] @@ -6794,7 +6957,7 @@ proc setlink {id lk} { set known [commitinview $id $curview] } if {$known} { - $ctext tag conf $lk -foreground blue -underline 1 + $ctext tag conf $lk -foreground $linkfgcolor -underline 1 $ctext tag bind $lk <1> [list selbyid $id] $ctext tag bind $lk <Enter> {linkcursor %W 1} $ctext tag bind $lk <Leave> {linkcursor %W -1} @@ -6857,7 +7020,7 @@ proc viewnextline {dir} { # add a list of tag or branch names at position pos # returns the number of names inserted proc appendrefs {pos ids var} { - global ctext linknum curview $var maxrefs + global ctext linknum curview $var maxrefs mainheadid if {[catch {$ctext index $pos}]} { return 0 @@ -6870,24 +7033,54 @@ proc appendrefs {pos ids var} { lappend tags [list $tag $id] } } + + set sep {} + set tags [lsort -index 0 -decreasing $tags] + set nutags 0 + if {[llength $tags] > $maxrefs} { - $ctext insert $pos "[mc "many"] ([llength $tags])" - } else { - set tags [lsort -index 0 -decreasing $tags] - set sep {} - foreach ti $tags { - set id [lindex $ti 1] - set lk link$linknum - incr linknum - $ctext tag delete $lk - $ctext insert $pos $sep - $ctext insert $pos [lindex $ti 0] $lk - setlink $id $lk - set sep ", " + # If we are displaying heads, and there are too many, + # see if there are some important heads to display. + # Currently this means "master" and the current head. + set itags {} + if {$var eq "idheads"} { + set utags {} + foreach ti $tags { + set hname [lindex $ti 0] + set id [lindex $ti 1] + if {($hname eq "master" || $id eq $mainheadid) && + [llength $itags] < $maxrefs} { + lappend itags $ti + } else { + lappend utags $ti + } + } + set tags $utags } + if {$itags ne {}} { + set str [mc "and many more"] + set sep " " + } else { + set str [mc "many"] + } + $ctext insert $pos "$str ([llength $tags])" + set nutags [llength $tags] + set tags $itags + } + + foreach ti $tags { + set id [lindex $ti 1] + set lk link$linknum + incr linknum + $ctext tag delete $lk + $ctext insert $pos $sep + $ctext insert $pos [lindex $ti 0] $lk + setlink $id $lk + set sep ", " } + $ctext tag add wwrap "$pos linestart" "$pos lineend" $ctext conf -state disabled - return [llength $tags] + return [expr {[llength $tags] + $nutags}] } # called when we have finished computing the nearby tags @@ -6977,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 @@ -7118,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 { @@ -7454,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} { @@ -7519,9 +7748,13 @@ proc diffcmd {ids flags} { } proc gettreediffs {ids} { - global treediff treepending + global treediff treepending limitdiffs vfilelimit curview - if {[catch {set gdtf [open [diffcmd $ids {--no-commit-id}] r]}]} return + set cmd [diffcmd $ids {--no-commit-id}] + if {$limitdiffs && $vfilelimit($curview) ne {}} { + set cmd [concat $cmd -- $vfilelimit($curview)] + } + if {[catch {set gdtf [open $cmd r]}]} return set treepending $ids set treediff {} @@ -7565,17 +7798,7 @@ proc gettreediffline {gdtf ids} { return [expr {$nr >= $max? 2: 1}] } close $gdtf - if {$limitdiffs && $vfilelimit($curview) ne {}} { - set flist {} - foreach f $treediff { - if {[path_filter $vfilelimit($curview) $f]} { - lappend flist $f - } - } - set treediffs($ids) $flist - } else { - set treediffs($ids) $treediff - } + set treediffs($ids) $treediff unset treepending if {$cmitmode eq "tree" && [llength $diffids] == 1} { gettree $diffids @@ -7613,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} { @@ -7645,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] } @@ -7717,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 @@ -7732,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] + } 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 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] + } 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" } - set fname [encoding convertfrom $fname] - set i [lsearch -exact $treediffs($ids) $fname] - if {$i >= 0} { - setinlist difffilestart $i $curdiffstart + if {$dowords && $worddiff eq [mc "Markup words"]} { + $ctext insert end "\[-$line-\]" $tag$num + } else { + $ctext insert end "$line" $tag$num } - } 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} { + $ctext insert end "\n" $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 {$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" } + lappend tags m$num } - 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 - } - } - 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 {} { @@ -7947,32 +8188,45 @@ proc changediffdisp {} { $ctext tag conf dresult -elide [lindex $diffelide 1] } -proc highlightfile {loc cline} { - global ctext cflist cflist_top +proc highlightfile {cline} { + global cflist cflist_top + + if {![info exists cflist_top]} return - $ctext yview $loc $cflist tag remove highlight $cflist_top.0 "$cflist_top.0 lineend" $cflist tag add highlight $cline.0 "$cline.0 lineend" $cflist see $cline.0 set cflist_top $cline } +proc highlightfile_for_scrollpos {topidx} { + global cmitmode difffilestart + + if {$cmitmode eq "tree"} return + if {![info exists difffilestart]} return + + set top [lindex [split $topidx .] 0] + if {$difffilestart eq {} || $top < [lindex $difffilestart 0]} { + highlightfile 0 + } else { + highlightfile [expr {[bsearch $difffilestart $top] + 2}] + } +} + proc prevfile {} { global difffilestart ctext cmitmode if {$cmitmode eq "tree"} return set prev 0.0 - set prevline 1 set here [$ctext index @0,0] foreach loc $difffilestart { if {[$ctext compare $loc >= $here]} { - highlightfile $prev $prevline + $ctext yview $prev return } set prev $loc - incr prevline } - highlightfile $prev $prevline + $ctext yview $prev } proc nextfile {} { @@ -7980,11 +8234,9 @@ proc nextfile {} { if {$cmitmode eq "tree"} return set here [$ctext index @0,0] - set line 1 foreach loc $difffilestart { - incr line if {[$ctext compare $loc > $here]} { - highlightfile $loc $line + $ctext yview $loc return } } @@ -8030,7 +8282,6 @@ proc settabs {{firstab {}}} { proc incrsearch {name ix op} { global ctext searchstring searchdirn - $ctext tag remove found 1.0 end if {[catch {$ctext index anchor}]} { # no anchor set, use start of selection, or of visible area set sel [$ctext tag ranges sel] @@ -8043,12 +8294,17 @@ proc incrsearch {name ix op} { } } if {$searchstring ne {}} { - set here [$ctext search $searchdirn -- $searchstring anchor] + set here [$ctext search -count mlen $searchdirn -- $searchstring anchor] if {$here ne {}} { $ctext see $here + set mend "$here + $mlen c" + $ctext tag remove sel 1.0 end + $ctext tag add sel $here $mend + suppress_highlighting_file_for_current_scrollpos + highlightfile_for_scrollpos $here } - searchmarkvisible 1 } + rehighlight_search_results } proc dosearch {} { @@ -8071,9 +8327,12 @@ proc dosearch {} { return } $ctext see $match + suppress_highlighting_file_for_current_scrollpos + highlightfile_for_scrollpos $match set mend "$match + $mlen c" $ctext tag add sel $match $mend $ctext mark unset anchor + rehighlight_search_results } } @@ -8097,21 +8356,41 @@ proc dosearchback {} { return } $ctext see $match + suppress_highlighting_file_for_current_scrollpos + highlightfile_for_scrollpos $match set mend "$match + $ml c" $ctext tag add sel $match $mend $ctext mark unset anchor + rehighlight_search_results + } +} + +proc rehighlight_search_results {} { + global ctext searchstring + + $ctext tag remove found 1.0 end + $ctext tag remove currentsearchhit 1.0 end + + if {$searchstring ne {}} { + searchmarkvisible 1 } } proc searchmark {first last} { global ctext searchstring + set sel [$ctext tag ranges sel] + set mend $first.0 while {1} { set match [$ctext search -count mlen -- $searchstring $mend $last.end] if {$match eq {}} break set mend "$match + $mlen c" - $ctext tag add found $match $mend + if {$sel ne {} && [$ctext compare $match == [lindex $sel 0]]} { + $ctext tag add currentsearchhit $match $mend + } else { + $ctext tag add found $match $mend + } } } @@ -8137,8 +8416,23 @@ proc searchmarkvisible {doall} { } } +proc suppress_highlighting_file_for_current_scrollpos {} { + global ctext suppress_highlighting_file_for_this_scrollpos + + set suppress_highlighting_file_for_this_scrollpos [$ctext index @0,0] +} + proc scrolltext {f0 f1} { - global searchstring + global searchstring cmitmode ctext + global suppress_highlighting_file_for_this_scrollpos + + set topidx [$ctext index @0,0] + if {![info exists suppress_highlighting_file_for_this_scrollpos] + || $topidx ne $suppress_highlighting_file_for_this_scrollpos} { + highlightfile_for_scrollpos $topidx + } + + catch {unset suppress_highlighting_file_for_this_scrollpos} .bleft.bottom.sb set $f0 $f1 if {$searchstring ne {}} { @@ -8354,6 +8648,8 @@ proc lineleave {id} { proc linehover {} { global hoverx hovery hoverid hovertimer global canv linespc lthickness + global linehoverbgcolor linehoverfgcolor linehoveroutlinecolor + global commitinfo set text [lindex $commitinfo($hoverid) 0] @@ -8367,10 +8663,11 @@ proc linehover {} { set x1 [expr {$x + [font measure mainfont $text] + 2 * $lthickness}] set y1 [expr {$y + $linespc + 2 * $lthickness}] set t [$canv create rectangle $x0 $y0 $x1 $y1 \ - -fill \#ffff80 -outline black -width 1 -tags hover] + -fill $linehoverbgcolor -outline $linehoveroutlinecolor \ + -width 1 -tags hover] $canv raise $t set t [$canv create text $x $y -anchor nw -text $text -tags hover \ - -font mainfont] + -font mainfont -fill $linehoverfgcolor] $canv raise $t } @@ -8934,12 +9231,13 @@ proc domktag {} { proc redrawtags {id} { global canv linehtag idpos currentid curview cmitlisted markedid global canvxmax iddrawn circleitem mainheadid circlecolors + global mainheadcirclecolor if {![commitinview $id $curview]} return if {![info exists iddrawn($id)]} return set row [rowofcommit $id] if {$id eq $mainheadid} { - set ofill yellow + set ofill $mainheadcirclecolor } else { set ofill [lindex $circlecolors $cmitlisted($curview,$id)] } @@ -9196,6 +9494,67 @@ proc cherrypick {} { notbusy cherrypick } +proc revert {} { + global rowmenuid curview + global mainhead mainheadid + global gitdir + + set oldhead [exec git rev-parse HEAD] + set dheads [descheads $rowmenuid] + if { $dheads eq {} || [lsearch -exact $dheads $oldhead] == -1 } { + set ok [confirm_popup [mc "Commit %s is not\ + included in branch %s -- really revert it?" \ + [string range $rowmenuid 0 7] $mainhead]] + if {!$ok} return + } + nowbusy revert [mc "Reverting"] + update + + if [catch {exec git revert --no-edit $rowmenuid} err] { + notbusy revert + if [regexp {files would be overwritten by merge:(\n(( |\t)+[^\n]+\n)+)}\ + $err match files] { + regsub {\n( |\t)+} $files "\n" files + error_popup [mc "Revert failed because of local changes to\ + the following files:%s Please commit, reset or stash \ + your changes and try again." $files] + } elseif [regexp {error: could not revert} $err] { + if [confirm_popup [mc "Revert failed because of merge conflict.\n\ + Do you wish to run git citool to resolve it?"]] { + # Force citool to read MERGE_MSG + file delete [file join $gitdir "GITGUI_MSG"] + exec_citool {} $rowmenuid + } + } else { error_popup $err } + run updatecommits + return + } + + set newhead [exec git rev-parse HEAD] + if { $newhead eq $oldhead } { + notbusy revert + error_popup [mc "No changes committed"] + return + } + + addnewchild $newhead $oldhead + + if [commitinview $oldhead $curview] { + # XXX this isn't right if we have a path limit... + insertrow $newhead $oldhead $curview + if {$mainhead ne {}} { + movehead $newhead $mainhead + movedhead $newhead $mainhead + } + set mainheadid $newhead + redrawtags $oldhead + redrawtags $newhead + selbyid $newhead + } + + notbusy revert +} + proc resethead {} { global mainhead rowmenuid confirm_ok resettype NS @@ -10509,13 +10868,13 @@ proc anctags {id} { # including id itself if it has a head. proc descheads {id} { global arcnos arcstart arcids archeads idheads cached_dheads - global allparents + global allparents arcout if {![info exists allparents($id)]} { return {} } set aret {} - if {[llength $arcnos($id)] == 1 && [llength $allparents($id)] == 1} { + if {![info exists arcout($id)]} { # part-way along an arc; check it first set a [lindex $arcnos($id) 0] if {$archeads($a) ne {}} { @@ -10663,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 @@ -10673,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 tag $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 {} @@ -10864,7 +11251,7 @@ proc create_prefs_page {w} { proc prefspage_general {notebook} { global NS maxwidth maxgraphpct showneartags showlocalchanges global tabstop limitdiffs autoselect autosellen extdifftool perfile_attrs - global hideremotes want_ttk have_ttk + global hideremotes want_ttk have_ttk maxrefs set page [create_prefs_page $notebook.general] @@ -10893,9 +11280,12 @@ proc prefspage_general {notebook} { ${NS}::label $page.tabstopl -text [mc "Tab spacing"] spinbox $page.tabstop -from 1 -to 20 -width 4 -textvariable tabstop grid x $page.tabstopl $page.tabstop -sticky w - ${NS}::checkbutton $page.ntag -text [mc "Display nearby tags"] \ + ${NS}::checkbutton $page.ntag -text [mc "Display nearby tags/heads"] \ -variable showneartags grid x $page.ntag -sticky w + ${NS}::label $page.maxrefsl -text [mc "Maximum # tags/heads to show"] + spinbox $page.maxrefs -from 1 -to 1000 -width 4 -textvariable maxrefs + grid x $page.maxrefsl $page.maxrefs -sticky w ${NS}::checkbutton $page.ldiff -text [mc "Limit diffs to listed paths"] \ -variable limitdiffs grid x $page.ldiff -sticky w @@ -11533,6 +11923,15 @@ if {[catch {package require Tk 8.4} err]} { exit 1 } +# on OSX bring the current Wish process window to front +if {[tk windowingsystem] eq "aqua"} { + exec osascript -e [format { + tell application "System Events" + set frontmost of processes whose unix id is %d to true + end tell + } [pid] ] +} + # Unset GIT_TRACE var if set if { [info exists ::env(GIT_TRACE)] } { unset ::env(GIT_TRACE) @@ -11620,22 +12019,47 @@ if {[tk windowingsystem] eq "aqua"} { set colors {green red blue magenta darkgrey brown orange} if {[tk windowingsystem] eq "win32"} { set uicolor SystemButtonFace + set uifgcolor SystemButtonText + set uifgdisabledcolor SystemDisabledText set bgcolor SystemWindow - set fgcolor SystemButtonText + set fgcolor SystemWindowText set selectbgcolor SystemHighlight } else { set uicolor grey85 + set uifgcolor black + set uifgdisabledcolor "#999" set bgcolor white set fgcolor black set selectbgcolor gray85 } set diffcolors {red "#00a000" blue} set diffcontext 3 +set mergecolors {red blue green purple brown "#009090" magenta "#808000" "#009000" "#ff0080" cyan "#b07070" "#70b0f0" "#70f0b0" "#f0b070" "#ff70b0"} set ignorespace 0 set worddiff "" set markbgcolor "#e0e0ff" +set headbgcolor green +set headfgcolor black +set headoutlinecolor black +set remotebgcolor #ffddaa +set tagbgcolor yellow +set tagfgcolor black +set tagoutlinecolor black +set reflinecolor black +set filesepbgcolor #aaaaaa +set filesepfgcolor black +set linehoverbgcolor #ffff80 +set linehoverfgcolor black +set linehoveroutlinecolor black +set mainheadcirclecolor yellow +set workingfilescirclecolor red +set indexcirclecolor green set circlecolors {white blue gray blue blue} +set linkfgcolor blue +set circleoutlinecolor $fgcolor +set foundbgcolor yellow +set currentsearchhitbgcolor orange # button for popping up context menus if {[tk windowingsystem] eq "aqua"} { @@ -11663,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 diff --git a/gitk-git/po/sv.po b/gitk-git/po/sv.po index 2f07a2e2d9..df95e01b90 100644 --- a/gitk-git/po/sv.po +++ b/gitk-git/po/sv.po @@ -1,40 +1,50 @@ # Swedish translation for gitk -# Copyright (C) 2005-2010 Paul Mackerras +# Copyright (C) 2005-2013 Paul Mackerras # This file is distributed under the same license as the gitk package. # -# Peter Krefting <peter@softwolves.pp.se>, 2008-2010. # Mikael Magnusson <mikachu@gmail.com>, 2008. +# Peter Krefting <peter@softwolves.pp.se>, 2008, 2009, 2010, 2012, 2013. +# msgid "" msgstr "" "Project-Id-Version: sv\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-12 21:14+0100\n" -"PO-Revision-Date: 2010-09-12 21:16+0100\n" +"POT-Creation-Date: 2013-05-16 08:06+0100\n" +"PO-Revision-Date: 2013-05-16 08:12+0100\n" "Last-Translator: Peter Krefting <peter@softwolves.pp.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" +"Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit" +"Content-Transfer-Encoding: 8bit\n" -#: gitk:115 +#: gitk:140 msgid "Couldn't get list of unmerged files:" msgstr "Kunde inte hämta lista över ej sammanslagna filer:" -#: gitk:274 +#: gitk:210 gitk:2334 +msgid "Color words" +msgstr "Färga ord" + +#: gitk:215 gitk:2334 gitk:7977 gitk:8010 +msgid "Markup words" +msgstr "Märk upp ord" + +#: gitk:312 msgid "Error parsing revisions:" msgstr "Fel vid tolkning av revisioner:" -#: gitk:330 +#: gitk:368 msgid "Error executing --argscmd command:" msgstr "Fel vid körning av --argscmd-kommando:" -#: gitk:343 +#: gitk:381 msgid "No files selected: --merge specified but no files are unmerged." msgstr "" "Inga filer valdes: --merge angavs men det finns inga filer som inte har " "slagits samman." -#: gitk:346 +#: gitk:384 msgid "" "No files selected: --merge specified but no unmerged files are within file " "limit." @@ -42,605 +52,625 @@ msgstr "" "Inga filer valdes: --merge angavs men det finns inga filer inom " "filbegränsningen." -#: gitk:368 gitk:516 +#: gitk:406 gitk:554 msgid "Error executing git log:" msgstr "Fel vid körning av git log:" -#: gitk:386 gitk:532 +#: gitk:424 gitk:570 msgid "Reading" msgstr "Läser" -#: gitk:446 gitk:4271 +#: gitk:484 gitk:4409 msgid "Reading commits..." msgstr "Läser incheckningar..." -#: gitk:449 gitk:1580 gitk:4274 +#: gitk:487 gitk:1625 gitk:4412 msgid "No commits selected" msgstr "Inga incheckningar markerade" -#: gitk:1456 +#: gitk:1499 msgid "Can't parse git log output:" msgstr "Kan inte tolka utdata från git log:" -#: gitk:1676 +#: gitk:1719 msgid "No commit information available" msgstr "Ingen incheckningsinformation är tillgänglig" -#: gitk:1818 +#: gitk:1876 msgid "mc" msgstr "mc" -#: gitk:1853 gitk:4064 gitk:9067 gitk:10607 gitk:10817 +#: gitk:1911 gitk:4202 gitk:9437 gitk:10979 gitk:11258 msgid "OK" msgstr "OK" -#: gitk:1855 gitk:4066 gitk:8657 gitk:8736 gitk:8851 gitk:8900 gitk:9069 -#: gitk:10608 gitk:10818 +#: gitk:1913 gitk:4204 gitk:8964 gitk:9043 gitk:9159 gitk:9208 gitk:9439 +#: gitk:10980 gitk:11259 msgid "Cancel" msgstr "Avbryt" -#: gitk:1980 +#: gitk:2048 msgid "Update" msgstr "Uppdatera" -#: gitk:1981 +#: gitk:2049 msgid "Reload" msgstr "Ladda om" -#: gitk:1982 +#: gitk:2050 msgid "Reread references" msgstr "Läs om referenser" -#: gitk:1983 +#: gitk:2051 msgid "List references" msgstr "Visa referenser" -#: gitk:1985 +#: gitk:2053 msgid "Start git gui" msgstr "Starta git gui" -#: gitk:1987 +#: gitk:2055 msgid "Quit" msgstr "Avsluta" -#: gitk:1979 +#: gitk:2047 msgid "File" msgstr "Arkiv" -#: gitk:1991 +#: gitk:2059 msgid "Preferences" msgstr "Inställningar" -#: gitk:1990 +#: gitk:2058 msgid "Edit" msgstr "Redigera" -#: gitk:1995 +#: gitk:2063 msgid "New view..." msgstr "Ny vy..." -#: gitk:1996 +#: gitk:2064 msgid "Edit view..." msgstr "Ändra vy..." -#: gitk:1997 +#: gitk:2065 msgid "Delete view" msgstr "Ta bort vy" -#: gitk:1999 +#: gitk:2067 msgid "All files" msgstr "Alla filer" -#: gitk:1994 gitk:3817 +#: gitk:2062 gitk:3955 msgid "View" msgstr "Visa" -#: gitk:2004 gitk:2014 gitk:2787 +#: gitk:2072 gitk:2082 gitk:2925 msgid "About gitk" msgstr "Om gitk" -#: gitk:2005 gitk:2019 +#: gitk:2073 gitk:2087 msgid "Key bindings" msgstr "Tangentbordsbindningar" -#: gitk:2003 gitk:2018 +#: gitk:2071 gitk:2086 msgid "Help" msgstr "Hjälp" -#: gitk:2096 gitk:8132 +#: gitk:2164 gitk:8420 msgid "SHA1 ID:" msgstr "SHA1-id:" -#: gitk:2127 +#: gitk:2208 msgid "Row" msgstr "Rad" -#: gitk:2165 +#: gitk:2246 msgid "Find" msgstr "Sök" -#: gitk:2166 +#: gitk:2247 msgid "next" msgstr "nästa" -#: gitk:2167 +#: gitk:2248 msgid "prev" msgstr "föreg" -#: gitk:2168 +#: gitk:2249 msgid "commit" msgstr "incheckning" -#: gitk:2171 gitk:2173 gitk:4432 gitk:4455 gitk:4479 gitk:6420 gitk:6492 -#: gitk:6576 +#: gitk:2252 gitk:2254 gitk:4570 gitk:4593 gitk:4617 gitk:6592 gitk:6664 +#: gitk:6749 msgid "containing:" msgstr "som innehåller:" -#: gitk:2174 gitk:3298 gitk:3303 gitk:4507 +#: gitk:2255 gitk:3437 gitk:3442 gitk:4646 msgid "touching paths:" msgstr "som rör sökväg:" -#: gitk:2175 gitk:4512 +#: gitk:2256 gitk:4660 msgid "adding/removing string:" msgstr "som lägger/till tar bort sträng:" -#: gitk:2184 gitk:2186 +#: gitk:2257 gitk:4662 +msgid "changing lines matching:" +msgstr "ändrar rader som matchar:" + +#: gitk:2266 gitk:2268 gitk:4649 msgid "Exact" msgstr "Exakt" -#: gitk:2186 gitk:4587 gitk:6388 +#: gitk:2268 gitk:4737 gitk:6560 msgid "IgnCase" msgstr "IgnVersaler" -#: gitk:2186 gitk:4481 gitk:4585 gitk:6384 +#: gitk:2268 gitk:4619 gitk:4735 gitk:6556 msgid "Regexp" msgstr "Reg.uttr." -#: gitk:2188 gitk:2189 gitk:4606 gitk:4636 gitk:4643 gitk:6512 gitk:6580 +#: gitk:2270 gitk:2271 gitk:4757 gitk:4787 gitk:4794 gitk:6685 gitk:6753 msgid "All fields" msgstr "Alla fält" -#: gitk:2189 gitk:4604 gitk:4636 gitk:6451 +#: gitk:2271 gitk:4754 gitk:4787 gitk:6623 msgid "Headline" msgstr "Rubrik" -#: gitk:2190 gitk:4604 gitk:6451 gitk:6580 gitk:7013 +#: gitk:2272 gitk:4754 gitk:6623 gitk:6753 gitk:7221 msgid "Comments" msgstr "Kommentarer" -#: gitk:2190 gitk:4604 gitk:4608 gitk:4643 gitk:6451 gitk:6948 gitk:8307 -#: gitk:8322 +#: gitk:2272 gitk:4754 gitk:4759 gitk:4794 gitk:6623 gitk:7156 gitk:8598 +#: gitk:8613 msgid "Author" msgstr "Författare" -#: gitk:2190 gitk:4604 gitk:6451 gitk:6950 +#: gitk:2272 gitk:4754 gitk:6623 gitk:7158 msgid "Committer" msgstr "Incheckare" -#: gitk:2221 +#: gitk:2303 msgid "Search" msgstr "Sök" -#: gitk:2229 +#: gitk:2311 msgid "Diff" msgstr "Diff" -#: gitk:2231 +#: gitk:2313 msgid "Old version" msgstr "Gammal version" -#: gitk:2233 +#: gitk:2315 msgid "New version" msgstr "Ny version" -#: gitk:2235 +#: gitk:2317 msgid "Lines of context" msgstr "Rader sammanhang" -#: gitk:2245 +#: gitk:2327 msgid "Ignore space change" msgstr "Ignorera ändringar i blanksteg" -#: gitk:2304 +#: gitk:2331 gitk:2333 gitk:7735 gitk:7963 +msgid "Line diff" +msgstr "Rad-diff" + +#: gitk:2397 msgid "Patch" msgstr "Patch" -#: gitk:2306 +#: gitk:2399 msgid "Tree" msgstr "Träd" -#: gitk:2463 gitk:2480 +#: gitk:2557 gitk:2577 msgid "Diff this -> selected" msgstr "Diff denna -> markerad" -#: gitk:2464 gitk:2481 +#: gitk:2558 gitk:2578 msgid "Diff selected -> this" msgstr "Diff markerad -> denna" -#: gitk:2465 gitk:2482 +#: gitk:2559 gitk:2579 msgid "Make patch" msgstr "Skapa patch" -#: gitk:2466 gitk:8715 +#: gitk:2560 gitk:9022 msgid "Create tag" msgstr "Skapa tagg" -#: gitk:2467 gitk:8831 +#: gitk:2561 gitk:9139 msgid "Write commit to file" msgstr "Skriv incheckning till fil" -#: gitk:2468 gitk:8888 +#: gitk:2562 gitk:9196 msgid "Create new branch" msgstr "Skapa ny gren" -#: gitk:2469 +#: gitk:2563 msgid "Cherry-pick this commit" msgstr "Plocka denna incheckning" -#: gitk:2470 +#: gitk:2564 msgid "Reset HEAD branch to here" msgstr "Återställ HEAD-grenen hit" -#: gitk:2471 +#: gitk:2565 msgid "Mark this commit" msgstr "Markera denna incheckning" -#: gitk:2472 +#: gitk:2566 msgid "Return to mark" msgstr "Återgå till markering" -#: gitk:2473 +#: gitk:2567 msgid "Find descendant of this and mark" msgstr "Hitta efterföljare till denna och markera" -#: gitk:2474 +#: gitk:2568 msgid "Compare with marked commit" msgstr "Jämför med markerad incheckning" -#: gitk:2488 +#: gitk:2569 gitk:2580 +msgid "Diff this -> marked commit" +msgstr "Diff denna -> markerad incheckning" + +#: gitk:2570 gitk:2581 +msgid "Diff marked commit -> this" +msgstr "Diff markerad incheckning -> denna" + +#: gitk:2571 +msgid "Revert this commit" +msgstr "Ångra denna incheckning" + +#: gitk:2587 msgid "Check out this branch" msgstr "Checka ut denna gren" -#: gitk:2489 +#: gitk:2588 msgid "Remove this branch" msgstr "Ta bort denna gren" -#: gitk:2496 +#: gitk:2595 msgid "Highlight this too" msgstr "Markera även detta" -#: gitk:2497 +#: gitk:2596 msgid "Highlight this only" msgstr "Markera bara detta" -#: gitk:2498 +#: gitk:2597 msgid "External diff" msgstr "Extern diff" -#: gitk:2499 +#: gitk:2598 msgid "Blame parent commit" msgstr "Klandra föräldraincheckning" -#: gitk:2506 +#: gitk:2605 msgid "Show origin of this line" msgstr "Visa ursprunget för den här raden" -#: gitk:2507 +#: gitk:2606 msgid "Run git gui blame on this line" msgstr "Kör git gui blame på den här raden" -#: gitk:2789 +#: gitk:2927 msgid "" "\n" "Gitk - a commit viewer for git\n" "\n" -"Copyright ©9 2005-2010 Paul Mackerras\n" +"Copyright ©9 2005-2011 Paul Mackerras\n" "\n" "Use and redistribute under the terms of the GNU General Public License" msgstr "" "\n" "Gitk - en incheckningsvisare för git\n" "\n" -"Copyright ©9 2005-2010 Paul Mackerras\n" +"Copyright ©9 2005-2011 Paul Mackerras\n" "\n" "Använd och vidareförmedla enligt villkoren i GNU General Public License" -#: gitk:2797 gitk:2862 gitk:9253 +#: gitk:2935 gitk:3000 gitk:9623 msgid "Close" msgstr "Stäng" -#: gitk:2818 +#: gitk:2956 msgid "Gitk key bindings" msgstr "Tangentbordsbindningar för Gitk" -#: gitk:2821 +#: gitk:2959 msgid "Gitk key bindings:" msgstr "Tangentbordsbindningar för Gitk:" -#: gitk:2823 +#: gitk:2961 #, tcl-format msgid "<%s-Q>\t\tQuit" msgstr "<%s-Q>\t\tAvsluta" -#: gitk:2824 +#: gitk:2962 #, tcl-format msgid "<%s-W>\t\tClose window" msgstr "<%s-W>\t\tStäng fönster" -#: gitk:2825 +#: gitk:2963 msgid "<Home>\t\tMove to first commit" msgstr "<Home>\t\tGå till första incheckning" -#: gitk:2826 +#: gitk:2964 msgid "<End>\t\tMove to last commit" msgstr "<End>\t\tGå till sista incheckning" -#: gitk:2827 -msgid "<Up>, p, i\tMove up one commit" -msgstr "<Upp>, p, i\tGå en incheckning upp" +#: gitk:2965 +msgid "<Up>, p, k\tMove up one commit" +msgstr "<Upp>, p, k\tGå en incheckning upp" -#: gitk:2828 -msgid "<Down>, n, k\tMove down one commit" -msgstr "<Ned>, n, k\tGå en incheckning ned" +#: gitk:2966 +msgid "<Down>, n, j\tMove down one commit" +msgstr "<Ned>, n, j\tGå en incheckning ned" -#: gitk:2829 -msgid "<Left>, z, j\tGo back in history list" -msgstr "<Vänster>, z, j\tGå bakåt i historiken" +#: gitk:2967 +msgid "<Left>, z, h\tGo back in history list" +msgstr "<Vänster>, z, h\tGå bakåt i historiken" -#: gitk:2830 +#: gitk:2968 msgid "<Right>, x, l\tGo forward in history list" msgstr "<Höger>, x, l\tGå framåt i historiken" -#: gitk:2831 +#: gitk:2969 msgid "<PageUp>\tMove up one page in commit list" msgstr "<PageUp>\tGå upp en sida i incheckningslistan" -#: gitk:2832 +#: gitk:2970 msgid "<PageDown>\tMove down one page in commit list" msgstr "<PageDown>\tGå ned en sida i incheckningslistan" -#: gitk:2833 +#: gitk:2971 #, tcl-format msgid "<%s-Home>\tScroll to top of commit list" msgstr "<%s-Home>\tRulla till början av incheckningslistan" -#: gitk:2834 +#: gitk:2972 #, tcl-format msgid "<%s-End>\tScroll to bottom of commit list" msgstr "<%s-End>\tRulla till slutet av incheckningslistan" -#: gitk:2835 +#: gitk:2973 #, tcl-format msgid "<%s-Up>\tScroll commit list up one line" msgstr "<%s-Upp>\tRulla incheckningslistan upp ett steg" -#: gitk:2836 +#: gitk:2974 #, tcl-format msgid "<%s-Down>\tScroll commit list down one line" msgstr "<%s-Ned>\tRulla incheckningslistan ned ett steg" -#: gitk:2837 +#: gitk:2975 #, tcl-format msgid "<%s-PageUp>\tScroll commit list up one page" msgstr "<%s-PageUp>\tRulla incheckningslistan upp en sida" -#: gitk:2838 +#: gitk:2976 #, tcl-format msgid "<%s-PageDown>\tScroll commit list down one page" msgstr "<%s-PageDown>\tRulla incheckningslistan ned en sida" -#: gitk:2839 +#: gitk:2977 msgid "<Shift-Up>\tFind backwards (upwards, later commits)" msgstr "<Skift-Upp>\tSök bakåt (uppåt, senare incheckningar)" -#: gitk:2840 +#: gitk:2978 msgid "<Shift-Down>\tFind forwards (downwards, earlier commits)" msgstr "<Skift-Ned>\tSök framåt (nedåt, tidigare incheckningar)" -#: gitk:2841 +#: gitk:2979 msgid "<Delete>, b\tScroll diff view up one page" msgstr "<Delete>, b\tRulla diffvisningen upp en sida" -#: gitk:2842 +#: gitk:2980 msgid "<Backspace>\tScroll diff view up one page" msgstr "<Baksteg>\tRulla diffvisningen upp en sida" -#: gitk:2843 +#: gitk:2981 msgid "<Space>\t\tScroll diff view down one page" msgstr "<Blanksteg>\tRulla diffvisningen ned en sida" -#: gitk:2844 +#: gitk:2982 msgid "u\t\tScroll diff view up 18 lines" msgstr "u\t\tRulla diffvisningen upp 18 rader" -#: gitk:2845 +#: gitk:2983 msgid "d\t\tScroll diff view down 18 lines" msgstr "d\t\tRulla diffvisningen ned 18 rader" -#: gitk:2846 +#: gitk:2984 #, tcl-format msgid "<%s-F>\t\tFind" msgstr "<%s-F>\t\tSök" -#: gitk:2847 +#: gitk:2985 #, tcl-format msgid "<%s-G>\t\tMove to next find hit" msgstr "<%s-G>\t\tGå till nästa sökträff" -#: gitk:2848 +#: gitk:2986 msgid "<Return>\tMove to next find hit" msgstr "<Return>\t\tGå till nästa sökträff" -#: gitk:2849 +#: gitk:2987 msgid "/\t\tFocus the search box" msgstr "/\t\tFokusera sökrutan" -#: gitk:2850 +#: gitk:2988 msgid "?\t\tMove to previous find hit" msgstr "?\t\tGå till föregående sökträff" -#: gitk:2851 +#: gitk:2989 msgid "f\t\tScroll diff view to next file" msgstr "f\t\tRulla diffvisningen till nästa fil" -#: gitk:2852 +#: gitk:2990 #, tcl-format msgid "<%s-S>\t\tSearch for next hit in diff view" msgstr "<%s-S>\t\tGå till nästa sökträff i diffvisningen" -#: gitk:2853 +#: gitk:2991 #, tcl-format msgid "<%s-R>\t\tSearch for previous hit in diff view" msgstr "<%s-R>\t\tGå till föregående sökträff i diffvisningen" -#: gitk:2854 +#: gitk:2992 #, tcl-format msgid "<%s-KP+>\tIncrease font size" msgstr "<%s-Num+>\tÖka teckenstorlek" -#: gitk:2855 +#: gitk:2993 #, tcl-format msgid "<%s-plus>\tIncrease font size" msgstr "<%s-plus>\tÖka teckenstorlek" -#: gitk:2856 +#: gitk:2994 #, tcl-format msgid "<%s-KP->\tDecrease font size" msgstr "<%s-Num->\tMinska teckenstorlek" -#: gitk:2857 +#: gitk:2995 #, tcl-format msgid "<%s-minus>\tDecrease font size" msgstr "<%s-minus>\tMinska teckenstorlek" -#: gitk:2858 +#: gitk:2996 msgid "<F5>\t\tUpdate" msgstr "<F5>\t\tUppdatera" -#: gitk:3313 gitk:3322 +#: gitk:3451 gitk:3460 #, tcl-format msgid "Error creating temporary directory %s:" msgstr "Fel vid skapande av temporär katalog %s:" -#: gitk:3335 +#: gitk:3473 #, tcl-format msgid "Error getting \"%s\" from %s:" msgstr "Fel vid hämtning av \"%s\" från %s:" -#: gitk:3398 +#: gitk:3536 msgid "command failed:" msgstr "kommando misslyckades:" -#: gitk:3547 +#: gitk:3685 msgid "No such commit" msgstr "Incheckning saknas" -#: gitk:3561 +#: gitk:3699 msgid "git gui blame: command failed:" msgstr "git gui blame: kommando misslyckades:" -#: gitk:3592 +#: gitk:3730 #, tcl-format msgid "Couldn't read merge head: %s" msgstr "Kunde inte läsa sammanslagningshuvud: %s" -#: gitk:3600 +#: gitk:3738 #, tcl-format msgid "Error reading index: %s" msgstr "Fel vid läsning av index: %s" -#: gitk:3625 +#: gitk:3763 #, tcl-format msgid "Couldn't start git blame: %s" msgstr "Kunde inte starta git blame: %s" -#: gitk:3628 gitk:6419 +#: gitk:3766 gitk:6591 msgid "Searching" msgstr "Söker" -#: gitk:3660 +#: gitk:3798 #, tcl-format msgid "Error running git blame: %s" msgstr "Fel vid körning av git blame: %s" -#: gitk:3688 +#: gitk:3826 #, tcl-format msgid "That line comes from commit %s, which is not in this view" msgstr "Raden kommer från incheckningen %s, som inte finns i denna vy" -#: gitk:3702 +#: gitk:3840 msgid "External diff viewer failed:" msgstr "Externt diff-verktyg misslyckades:" -#: gitk:3820 +#: gitk:3958 msgid "Gitk view definition" msgstr "Definition av Gitk-vy" -#: gitk:3824 +#: gitk:3962 msgid "Remember this view" msgstr "Spara denna vy" -#: gitk:3825 +#: gitk:3963 msgid "References (space separated list):" msgstr "Referenser (blankstegsavdelad lista):" -#: gitk:3826 +#: gitk:3964 msgid "Branches & tags:" msgstr "Grenar & taggar:" -#: gitk:3827 +#: gitk:3965 msgid "All refs" msgstr "Alla referenser" -#: gitk:3828 +#: gitk:3966 msgid "All (local) branches" msgstr "Alla (lokala) grenar" -#: gitk:3829 +#: gitk:3967 msgid "All tags" msgstr "Alla taggar" -#: gitk:3830 +#: gitk:3968 msgid "All remote-tracking branches" msgstr "Alla fjärrspårande grenar" -#: gitk:3831 +#: gitk:3969 msgid "Commit Info (regular expressions):" msgstr "Incheckningsinfo (reguljära uttryck):" -#: gitk:3832 +#: gitk:3970 msgid "Author:" msgstr "Författare:" -#: gitk:3833 +#: gitk:3971 msgid "Committer:" msgstr "Incheckare:" -#: gitk:3834 +#: gitk:3972 msgid "Commit Message:" msgstr "Incheckningsmeddelande:" -#: gitk:3835 +#: gitk:3973 msgid "Matches all Commit Info criteria" msgstr "Motsvarar alla kriterier för incheckningsinfo" -#: gitk:3836 +#: gitk:3974 msgid "Changes to Files:" msgstr "Ändringar av filer:" -#: gitk:3837 +#: gitk:3975 msgid "Fixed String" msgstr "Fast sträng" -#: gitk:3838 +#: gitk:3976 msgid "Regular Expression" msgstr "Reguljärt uttryck" -#: gitk:3839 +#: gitk:3977 msgid "Search string:" msgstr "Söksträng:" -#: gitk:3840 +#: gitk:3978 msgid "" "Commit Dates (\"2 weeks ago\", \"2009-03-17 15:27:38\", \"March 17, 2009 " "15:27:38\"):" @@ -648,201 +678,201 @@ msgstr "" "Incheckingsdatum (\"2 weeks ago\", \"2009-03-17 15:27:38\", \"March 17, 2009 " "15:27:38\"):" -#: gitk:3841 +#: gitk:3979 msgid "Since:" msgstr "Från:" -#: gitk:3842 +#: gitk:3980 msgid "Until:" msgstr "Till:" -#: gitk:3843 +#: gitk:3981 msgid "Limit and/or skip a number of revisions (positive integer):" msgstr "Begränsa och/eller hoppa över ett antal revisioner (positivt heltal):" -#: gitk:3844 +#: gitk:3982 msgid "Number to show:" msgstr "Antal att visa:" -#: gitk:3845 +#: gitk:3983 msgid "Number to skip:" msgstr "Antal att hoppa över:" -#: gitk:3846 +#: gitk:3984 msgid "Miscellaneous options:" msgstr "Diverse alternativ:" -#: gitk:3847 +#: gitk:3985 msgid "Strictly sort by date" msgstr "Strikt datumsortering" -#: gitk:3848 +#: gitk:3986 msgid "Mark branch sides" msgstr "Markera sidogrenar" -#: gitk:3849 +#: gitk:3987 msgid "Limit to first parent" msgstr "Begränsa till första förälder" -#: gitk:3850 +#: gitk:3988 msgid "Simple history" msgstr "Enkel historik" -#: gitk:3851 +#: gitk:3989 msgid "Additional arguments to git log:" msgstr "Ytterligare argument till git log:" -#: gitk:3852 +#: gitk:3990 msgid "Enter files and directories to include, one per line:" msgstr "Ange filer och kataloger att ta med, en per rad:" -#: gitk:3853 +#: gitk:3991 msgid "Command to generate more commits to include:" msgstr "Kommando för att generera fler incheckningar att ta med:" -#: gitk:3977 +#: gitk:4115 msgid "Gitk: edit view" msgstr "Gitk: redigera vy" -#: gitk:3985 +#: gitk:4123 msgid "-- criteria for selecting revisions" msgstr " - kriterier för val av revisioner" -#: gitk:3990 +#: gitk:4128 msgid "View Name" msgstr "Namn på vy" -#: gitk:4065 +#: gitk:4203 msgid "Apply (F5)" msgstr "Använd (F5)" -#: gitk:4103 +#: gitk:4241 msgid "Error in commit selection arguments:" msgstr "Fel i argument för val av incheckningar:" -#: gitk:4156 gitk:4208 gitk:4656 gitk:4670 gitk:5931 gitk:11551 gitk:11552 +#: gitk:4294 gitk:4346 gitk:4807 gitk:4821 gitk:6087 gitk:12041 gitk:12042 msgid "None" msgstr "Inget" -#: gitk:4604 gitk:6451 gitk:8309 gitk:8324 -msgid "Date" -msgstr "Datum" - -#: gitk:4604 gitk:6451 -msgid "CDate" -msgstr "Skapat datum" - -#: gitk:4753 gitk:4758 +#: gitk:4904 gitk:4909 msgid "Descendant" msgstr "Avkomling" -#: gitk:4754 +#: gitk:4905 msgid "Not descendant" msgstr "Inte avkomling" -#: gitk:4761 gitk:4766 +#: gitk:4912 gitk:4917 msgid "Ancestor" msgstr "Förfader" -#: gitk:4762 +#: gitk:4913 msgid "Not ancestor" msgstr "Inte förfader" -#: gitk:5052 +#: gitk:5203 msgid "Local changes checked in to index but not committed" msgstr "Lokala ändringar sparade i indexet men inte incheckade" -#: gitk:5088 +#: gitk:5239 msgid "Local uncommitted changes, not checked in to index" msgstr "Lokala ändringar, ej sparade i indexet" -#: gitk:6769 +#: gitk:6971 +msgid "and many more" +msgstr "med många flera" + +#: gitk:6974 msgid "many" msgstr "många" -#: gitk:6952 +#: gitk:7160 msgid "Tags:" msgstr "Taggar:" -#: gitk:6969 gitk:6975 gitk:8302 +#: gitk:7177 gitk:7183 gitk:8593 msgid "Parent" msgstr "Förälder" -#: gitk:6980 +#: gitk:7188 msgid "Child" msgstr "Barn" -#: gitk:6989 +#: gitk:7197 msgid "Branch" msgstr "Gren" -#: gitk:6992 +#: gitk:7200 msgid "Follows" msgstr "Följer" -#: gitk:6995 +#: gitk:7203 msgid "Precedes" msgstr "Föregår" -#: gitk:7532 +#: gitk:7742 #, tcl-format msgid "Error getting diffs: %s" msgstr "Fel vid hämtning av diff: %s" -#: gitk:8130 +#: gitk:8418 msgid "Goto:" msgstr "Gå till:" -#: gitk:8151 +#: gitk:8439 #, tcl-format msgid "Short SHA1 id %s is ambiguous" msgstr "Förkortat SHA1-id %s är tvetydigt" -#: gitk:8158 +#: gitk:8446 #, tcl-format msgid "Revision %s is not known" msgstr "Revisionen %s är inte känd" -#: gitk:8168 +#: gitk:8456 #, tcl-format msgid "SHA1 id %s is not known" msgstr "SHA-id:t %s är inte känt" -#: gitk:8170 +#: gitk:8458 #, tcl-format msgid "Revision %s is not in the current view" msgstr "Revisionen %s finns inte i den nuvarande vyn" -#: gitk:8312 +#: gitk:8600 gitk:8615 +msgid "Date" +msgstr "Datum" + +#: gitk:8603 msgid "Children" msgstr "Barn" -#: gitk:8370 +#: gitk:8666 #, tcl-format msgid "Reset %s branch to here" msgstr "Återställ grenen %s hit" -#: gitk:8372 +#: gitk:8668 msgid "Detached head: can't reset" msgstr "Frånkopplad head: kan inte återställa" -#: gitk:8481 gitk:8487 +#: gitk:8773 gitk:8779 msgid "Skipping merge commit " msgstr "Hoppar över sammanslagningsincheckning " -#: gitk:8496 gitk:8501 +#: gitk:8788 gitk:8793 msgid "Error getting patch ID for " msgstr "Fel vid hämtning av patch-id för " -#: gitk:8497 gitk:8502 +#: gitk:8789 gitk:8794 msgid " - stopping\n" msgstr " - stannar\n" -#: gitk:8507 gitk:8510 gitk:8518 gitk:8532 gitk:8541 +#: gitk:8799 gitk:8802 gitk:8810 gitk:8824 gitk:8833 msgid "Commit " msgstr "Incheckning " -#: gitk:8511 +#: gitk:8803 msgid "" " is the same patch as\n" " " @@ -850,7 +880,7 @@ msgstr "" " är samma patch som\n" " " -#: gitk:8519 +#: gitk:8811 msgid "" " differs from\n" " " @@ -858,7 +888,7 @@ msgstr "" " skiljer sig från\n" " " -#: gitk:8521 +#: gitk:8813 msgid "" "Diff of commits:\n" "\n" @@ -866,131 +896,131 @@ msgstr "" "Skillnad mellan incheckningar:\n" "\n" -#: gitk:8533 gitk:8542 +#: gitk:8825 gitk:8834 #, tcl-format msgid " has %s children - stopping\n" msgstr " har %s barn - stannar\n" -#: gitk:8561 +#: gitk:8853 #, tcl-format msgid "Error writing commit to file: %s" msgstr "Fel vid skrivning av incheckning till fil: %s" -#: gitk:8567 +#: gitk:8859 #, tcl-format msgid "Error diffing commits: %s" msgstr "Fel vid jämförelse av incheckningar: %s" -#: gitk:8598 +#: gitk:8905 msgid "Top" msgstr "Topp" -#: gitk:8599 +#: gitk:8906 msgid "From" msgstr "Från" -#: gitk:8604 +#: gitk:8911 msgid "To" msgstr "Till" -#: gitk:8628 +#: gitk:8935 msgid "Generate patch" msgstr "Generera patch" -#: gitk:8630 +#: gitk:8937 msgid "From:" msgstr "Från:" -#: gitk:8639 +#: gitk:8946 msgid "To:" msgstr "Till:" -#: gitk:8648 +#: gitk:8955 msgid "Reverse" msgstr "Vänd" -#: gitk:8650 gitk:8845 +#: gitk:8957 gitk:9153 msgid "Output file:" msgstr "Utdatafil:" -#: gitk:8656 +#: gitk:8963 msgid "Generate" msgstr "Generera" -#: gitk:8694 +#: gitk:9001 msgid "Error creating patch:" msgstr "Fel vid generering av patch:" -#: gitk:8717 gitk:8833 gitk:8890 +#: gitk:9024 gitk:9141 gitk:9198 msgid "ID:" msgstr "Id:" -#: gitk:8726 +#: gitk:9033 msgid "Tag name:" msgstr "Taggnamn:" -#: gitk:8729 +#: gitk:9036 msgid "Tag message is optional" msgstr "Taggmeddelandet är valfritt" -#: gitk:8731 +#: gitk:9038 msgid "Tag message:" msgstr "Taggmeddelande:" -#: gitk:8735 gitk:8899 +#: gitk:9042 gitk:9207 msgid "Create" msgstr "Skapa" -#: gitk:8753 +#: gitk:9060 msgid "No tag name specified" msgstr "Inget taggnamn angavs" -#: gitk:8757 +#: gitk:9064 #, tcl-format msgid "Tag \"%s\" already exists" msgstr "Taggen \"%s\" finns redan" -#: gitk:8767 +#: gitk:9074 msgid "Error creating tag:" msgstr "Fel vid skapande av tagg:" -#: gitk:8842 +#: gitk:9150 msgid "Command:" msgstr "Kommando:" -#: gitk:8850 +#: gitk:9158 msgid "Write" msgstr "Skriv" -#: gitk:8868 +#: gitk:9176 msgid "Error writing commit:" msgstr "Fel vid skrivning av incheckning:" -#: gitk:8895 +#: gitk:9203 msgid "Name:" msgstr "Namn:" -#: gitk:8918 +#: gitk:9226 msgid "Please specify a name for the new branch" msgstr "Ange ett namn för den nya grenen" -#: gitk:8923 +#: gitk:9231 #, tcl-format msgid "Branch '%s' already exists. Overwrite?" msgstr "Grenen \"%s\" finns redan. Skriva över?" -#: gitk:8989 +#: gitk:9298 #, tcl-format msgid "Commit %s is already included in branch %s -- really re-apply it?" msgstr "" "Incheckningen %s finns redan på grenen %s -- skall den verkligen appliceras " "på nytt?" -#: gitk:8994 +#: gitk:9303 msgid "Cherry-picking" msgstr "Plockar" -#: gitk:9003 +#: gitk:9312 #, tcl-format msgid "" "Cherry-pick failed because of local changes to file '%s'.\n" @@ -1000,7 +1030,7 @@ msgstr "" "Checka in, återställ eller spara undan (stash) dina ändringar och försök " "igen." -#: gitk:9009 +#: gitk:9318 msgid "" "Cherry-pick failed because of merge conflict.\n" "Do you wish to run git citool to resolve it?" @@ -1008,32 +1038,59 @@ msgstr "" "Cherry-pick misslyckades på grund av en sammanslagningskonflikt.\n" "Vill du köra git citool för att lösa den?" -#: gitk:9025 +#: gitk:9334 gitk:9392 msgid "No changes committed" msgstr "Inga ändringar incheckade" -#: gitk:9051 +#: gitk:9361 +#, tcl-format +msgid "Commit %s is not included in branch %s -- really revert it?" +msgstr "Incheckningen %s finns inte på grenen %s -- vill du verkligen ångra?" + +#: gitk:9366 +msgid "Reverting" +msgstr "Ångrar" + +#: gitk:9374 +#, 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 "" +"Misslyckades med att ångra på grund av lokala ändringar i följande filer:%s. " +"Checka in, återställ eller spara undan (stash) dina ändringar och försök " +"igen." + +#: gitk:9378 +msgid "" +"Revert failed because of merge conflict.\n" +" Do you wish to run git citool to resolve it?" +msgstr "" +"Misslyckades med att ångra på grund av en sammanslagningskonflikt.\n" +" Vill du köra git citool för att lösa den?" + +#: gitk:9421 msgid "Confirm reset" msgstr "Bekräfta återställning" -#: gitk:9053 +#: gitk:9423 #, tcl-format msgid "Reset branch %s to %s?" msgstr "Återställa grenen %s till %s?" -#: gitk:9055 +#: gitk:9425 msgid "Reset type:" msgstr "Typ av återställning:" -#: gitk:9058 +#: gitk:9428 msgid "Soft: Leave working tree and index untouched" msgstr "Mjuk: Rör inte utcheckning och index" -#: gitk:9061 +#: gitk:9431 msgid "Mixed: Leave working tree untouched, reset index" msgstr "Blandad: Rör inte utcheckning, återställ index" -#: gitk:9064 +#: gitk:9434 msgid "" "Hard: Reset working tree and index\n" "(discard ALL local changes)" @@ -1041,19 +1098,19 @@ msgstr "" "Hård: Återställ utcheckning och index\n" "(förkastar ALLA lokala ändringar)" -#: gitk:9081 +#: gitk:9451 msgid "Resetting" msgstr "Återställer" -#: gitk:9141 +#: gitk:9511 msgid "Checking out" msgstr "Checkar ut" -#: gitk:9194 +#: gitk:9564 msgid "Cannot delete the currently checked-out branch" msgstr "Kan inte ta bort den just nu utcheckade grenen" -#: gitk:9200 +#: gitk:9570 #, tcl-format msgid "" "The commits on branch %s aren't on any other branch.\n" @@ -1062,16 +1119,16 @@ msgstr "" "Incheckningarna på grenen %s existerar inte på någon annan gren.\n" "Vill du verkligen ta bort grenen %s?" -#: gitk:9231 +#: gitk:9601 #, tcl-format msgid "Tags and heads: %s" msgstr "Taggar och huvuden: %s" -#: gitk:9246 +#: gitk:9616 msgid "Filter" msgstr "Filter" -#: gitk:9541 +#: gitk:9912 msgid "" "Error reading commit topology information; branch and preceding/following " "tag information will be incomplete." @@ -1079,206 +1136,223 @@ msgstr "" "Fel vid läsning av information om incheckningstopologi; information om " "grenar och föregående/senare taggar kommer inte vara komplett." -#: gitk:10527 +#: gitk:10899 msgid "Tag" msgstr "Tagg" -#: gitk:10527 +#: gitk:10899 msgid "Id" msgstr "Id" -#: gitk:10576 +#: gitk:10948 msgid "Gitk font chooser" msgstr "Teckensnittsväljare för Gitk" -#: gitk:10593 +#: gitk:10965 msgid "B" msgstr "F" -#: gitk:10596 +#: gitk:10968 msgid "I" msgstr "K" -#: gitk:10714 -msgid "Gitk preferences" -msgstr "Inställningar för Gitk" - -#: gitk:10716 +#: gitk:11086 msgid "Commit list display options" msgstr "Alternativ för incheckningslistvy" -#: gitk:10719 +#: gitk:11089 msgid "Maximum graph width (lines)" msgstr "Maximal grafbredd (rader)" -#: gitk:10722 +#: gitk:11092 #, tcl-format msgid "Maximum graph width (% of pane)" msgstr "Maximal grafbredd (% av ruta)" -#: gitk:10725 +#: gitk:11095 msgid "Show local changes" msgstr "Visa lokala ändringar" -#: gitk:10728 -msgid "Auto-select SHA1" -msgstr "Välj SHA1 automatiskt" +#: gitk:11098 +msgid "Auto-select SHA1 (length)" +msgstr "Välj SHA1 (längd) automatiskt" -#: gitk:10731 +#: gitk:11102 msgid "Hide remote refs" msgstr "Dölj fjärr-referenser" -#: gitk:10735 +#: gitk:11106 msgid "Diff display options" msgstr "Alternativ för diffvy" -#: gitk:10737 +#: gitk:11108 msgid "Tab spacing" msgstr "Blanksteg för tabulatortecken" -#: gitk:10740 -msgid "Display nearby tags" -msgstr "Visa närliggande taggar" +#: gitk:11111 +msgid "Display nearby tags/heads" +msgstr "Visa närliggande taggar/huvuden" + +#: gitk:11114 +msgid "Maximum # tags/heads to show" +msgstr "Maximalt antal taggar/huvuden att visa" -#: gitk:10743 +#: gitk:11117 msgid "Limit diffs to listed paths" msgstr "Begränsa diff till listade sökvägar" -#: gitk:10746 +#: gitk:11120 msgid "Support per-file encodings" msgstr "Stöd för filspecifika teckenkodningar" -#: gitk:10752 gitk:10832 +#: gitk:11126 gitk:11273 msgid "External diff tool" msgstr "Externt diff-verktyg" -#: gitk:10753 +#: gitk:11127 msgid "Choose..." msgstr "Välj..." -#: gitk:10758 +#: gitk:11132 msgid "General options" msgstr "Allmänna inställningar" -#: gitk:10761 +#: gitk:11135 msgid "Use themed widgets" msgstr "Använd tema på fönsterelement" -#: gitk:10763 +#: gitk:11137 msgid "(change requires restart)" msgstr "(ändringen kräver omstart)" -#: gitk:10765 +#: gitk:11139 msgid "(currently unavailable)" msgstr "(för närvarande inte tillgängligt)" -#: gitk:10769 +#: gitk:11150 msgid "Colors: press to choose" msgstr "Färger: tryck för att välja" -#: gitk:10772 +#: gitk:11153 msgid "Interface" msgstr "Gränssnitt" -#: gitk:10773 +#: gitk:11154 msgid "interface" msgstr "gränssnitt" -#: gitk:10776 +#: gitk:11157 msgid "Background" msgstr "Bakgrund" -#: gitk:10777 gitk:10807 +#: gitk:11158 gitk:11188 msgid "background" msgstr "bakgrund" -#: gitk:10780 +#: gitk:11161 msgid "Foreground" msgstr "Förgrund" -#: gitk:10781 +#: gitk:11162 msgid "foreground" msgstr "förgrund" -#: gitk:10784 +#: gitk:11165 msgid "Diff: old lines" msgstr "Diff: gamla rader" -#: gitk:10785 +#: gitk:11166 msgid "diff old lines" msgstr "diff gamla rader" -#: gitk:10789 +#: gitk:11170 msgid "Diff: new lines" msgstr "Diff: nya rader" -#: gitk:10790 +#: gitk:11171 msgid "diff new lines" msgstr "diff nya rader" -#: gitk:10794 +#: gitk:11175 msgid "Diff: hunk header" msgstr "Diff: delhuvud" -#: gitk:10796 +#: gitk:11177 msgid "diff hunk header" msgstr "diff delhuvud" -#: gitk:10800 +#: gitk:11181 msgid "Marked line bg" msgstr "Markerad rad bakgrund" -#: gitk:10802 +#: gitk:11183 msgid "marked line background" msgstr "markerad rad bakgrund" -#: gitk:10806 +#: gitk:11187 msgid "Select bg" msgstr "Markerad bakgrund" -#: gitk:10810 +#: gitk:11196 msgid "Fonts: press to choose" msgstr "Teckensnitt: tryck för att välja" -#: gitk:10812 +#: gitk:11198 msgid "Main font" msgstr "Huvudteckensnitt" -#: gitk:10813 +#: gitk:11199 msgid "Diff display font" msgstr "Teckensnitt för diffvisning" -#: gitk:10814 +#: gitk:11200 msgid "User interface font" msgstr "Teckensnitt för användargränssnitt" -#: gitk:10842 +#: gitk:11222 +msgid "Gitk preferences" +msgstr "Inställningar för Gitk" + +#: gitk:11231 +msgid "General" +msgstr "Allmänt" + +#: gitk:11232 +msgid "Colors" +msgstr "Färger" + +#: gitk:11233 +msgid "Fonts" +msgstr "Teckensnitt" + +#: gitk:11283 #, tcl-format msgid "Gitk: choose color for %s" msgstr "Gitk: välj färg för %s" -#: gitk:11445 +#: gitk:11937 msgid "Cannot find a git repository here." msgstr "Hittar inget git-arkiv här." -#: gitk:11449 -#, tcl-format -msgid "Cannot find the git directory \"%s\"." -msgstr "Hittar inte git-katalogen \"%s\"." - -#: gitk:11496 +#: gitk:11984 #, tcl-format msgid "Ambiguous argument '%s': both revision and filename" msgstr "Tvetydigt argument \"%s\": både revision och filnamn" -#: gitk:11508 +#: gitk:11996 msgid "Bad arguments to gitk:" msgstr "Felaktiga argument till gitk:" -#: gitk:11604 +#: gitk:12099 msgid "Command line" msgstr "Kommandorad" +#~ msgid "CDate" +#~ msgstr "Skapat datum" + +#~ msgid "Cannot find the git directory \"%s\"." +#~ msgstr "Hittar inte git-katalogen \"%s\"." + #~ msgid "SHA1 ID: " #~ msgstr "SHA1-id: " |