Merge git://git.kernel.org/pub/scm/gitk/gitk
* git://git.kernel.org/pub/scm/gitk/gitk: gitk: Add Russian translation gitk: Fix compare-commits function when we have local changes gitk: Avoid crash if closed while reading references gitk: Handle external diff tool with spaces in the path gitk: Remember and restore the window state with the geometry gitk: Map KP_Divide to focus the search box gitk: Mark some more strings for translation gitk: Mark forgotten string for translation gitk: Make .gitk a hidden file under windows gitk: Add a command to compare two strings of commits gitk: Add a way to mark a commit, plus a "find descendant" command gitk: Fixes for Mac OS X TkAqua gitk: Provide a 32x32 window icon based on the git logo gitk: Provide a window icon if possible gitk: Handle blobs containing a DOS end-of-file markermaint
commit
75b44066f3
321
gitk-git/gitk
321
gitk-git/gitk
|
@ -521,7 +521,7 @@ proc updatecommits {} {
|
||||||
incr viewactive($view)
|
incr viewactive($view)
|
||||||
set viewcomplete($view) 0
|
set viewcomplete($view) 0
|
||||||
reset_pending_select {}
|
reset_pending_select {}
|
||||||
nowbusy $view "Reading"
|
nowbusy $view [mc "Reading"]
|
||||||
if {$showneartags} {
|
if {$showneartags} {
|
||||||
getallcommits
|
getallcommits
|
||||||
}
|
}
|
||||||
|
@ -1830,7 +1830,9 @@ proc setoptions {} {
|
||||||
option add *Button.font uifont startupFile
|
option add *Button.font uifont startupFile
|
||||||
option add *Checkbutton.font uifont startupFile
|
option add *Checkbutton.font uifont startupFile
|
||||||
option add *Radiobutton.font uifont startupFile
|
option add *Radiobutton.font uifont startupFile
|
||||||
option add *Menu.font uifont startupFile
|
if {[tk windowingsystem] ne "aqua"} {
|
||||||
|
option add *Menu.font uifont startupFile
|
||||||
|
}
|
||||||
option add *Menubutton.font uifont startupFile
|
option add *Menubutton.font uifont startupFile
|
||||||
option add *Label.font uifont startupFile
|
option add *Label.font uifont startupFile
|
||||||
option add *Message.font uifont startupFile
|
option add *Message.font uifont startupFile
|
||||||
|
@ -1910,8 +1912,8 @@ proc makewindow {} {
|
||||||
|
|
||||||
# The "mc" arguments here are purely so that xgettext
|
# The "mc" arguments here are purely so that xgettext
|
||||||
# sees the following string as needing to be translated
|
# sees the following string as needing to be translated
|
||||||
makemenu .bar {
|
set file {
|
||||||
{mc "File" cascade {
|
mc "File" cascade {
|
||||||
{mc "Update" command updatecommits -accelerator F5}
|
{mc "Update" command updatecommits -accelerator F5}
|
||||||
{mc "Reload" command reloadcommits -accelerator Meta1-F5}
|
{mc "Reload" command reloadcommits -accelerator Meta1-F5}
|
||||||
{mc "Reread references" command rereadrefs}
|
{mc "Reread references" command rereadrefs}
|
||||||
|
@ -1921,21 +1923,41 @@ proc makewindow {} {
|
||||||
{xx "" separator}
|
{xx "" separator}
|
||||||
{mc "Quit" command doquit -accelerator Meta1-Q}
|
{mc "Quit" command doquit -accelerator Meta1-Q}
|
||||||
}}
|
}}
|
||||||
{mc "Edit" cascade {
|
set edit {
|
||||||
|
mc "Edit" cascade {
|
||||||
{mc "Preferences" command doprefs}
|
{mc "Preferences" command doprefs}
|
||||||
}}
|
}}
|
||||||
{mc "View" cascade {
|
set view {
|
||||||
|
mc "View" cascade {
|
||||||
{mc "New view..." command {newview 0} -accelerator Shift-F4}
|
{mc "New view..." command {newview 0} -accelerator Shift-F4}
|
||||||
{mc "Edit view..." command editview -state disabled -accelerator F4}
|
{mc "Edit view..." command editview -state disabled -accelerator F4}
|
||||||
{mc "Delete view" command delview -state disabled}
|
{mc "Delete view" command delview -state disabled}
|
||||||
{xx "" separator}
|
{xx "" separator}
|
||||||
{mc "All files" radiobutton {selectedview 0} -command {showview 0}}
|
{mc "All files" radiobutton {selectedview 0} -command {showview 0}}
|
||||||
}}
|
}}
|
||||||
{mc "Help" cascade {
|
if {[tk windowingsystem] ne "aqua"} {
|
||||||
|
set help {
|
||||||
|
mc "Help" cascade {
|
||||||
{mc "About gitk" command about}
|
{mc "About gitk" command about}
|
||||||
{mc "Key bindings" command keys}
|
{mc "Key bindings" command keys}
|
||||||
}}
|
}}
|
||||||
|
set bar [list $file $edit $view $help]
|
||||||
|
} else {
|
||||||
|
proc ::tk::mac::ShowPreferences {} {doprefs}
|
||||||
|
proc ::tk::mac::Quit {} {doquit}
|
||||||
|
lset file end [lreplace [lindex $file end] end-1 end]
|
||||||
|
set apple {
|
||||||
|
xx "Apple" cascade {
|
||||||
|
{mc "About gitk" command about}
|
||||||
|
{xx "" separator}
|
||||||
|
}}
|
||||||
|
set help {
|
||||||
|
mc "Help" cascade {
|
||||||
|
{mc "Key bindings" command keys}
|
||||||
|
}}
|
||||||
|
set bar [list $apple $file $view $help]
|
||||||
}
|
}
|
||||||
|
makemenu .bar $bar
|
||||||
. configure -menu .bar
|
. configure -menu .bar
|
||||||
|
|
||||||
# the gui has upper and lower half, parts of a paned window.
|
# the gui has upper and lower half, parts of a paned window.
|
||||||
|
@ -2229,10 +2251,16 @@ proc makewindow {} {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if {[info exists geometry(state)] && $geometry(state) eq "zoomed"} {
|
||||||
|
wm state . $geometry(state)
|
||||||
|
}
|
||||||
|
|
||||||
if {[tk windowingsystem] eq {aqua}} {
|
if {[tk windowingsystem] eq {aqua}} {
|
||||||
set M1B M1
|
set M1B M1
|
||||||
|
set ::BM "3"
|
||||||
} else {
|
} else {
|
||||||
set M1B Control
|
set M1B Control
|
||||||
|
set ::BM "2"
|
||||||
}
|
}
|
||||||
|
|
||||||
bind .pwbottom <Configure> {resizecdetpanes %W %w}
|
bind .pwbottom <Configure> {resizecdetpanes %W %w}
|
||||||
|
@ -2250,10 +2278,14 @@ proc makewindow {} {
|
||||||
set delta [expr {- (%D)}]
|
set delta [expr {- (%D)}]
|
||||||
allcanvs yview scroll $delta units
|
allcanvs yview scroll $delta units
|
||||||
}
|
}
|
||||||
|
bindall <Shift-MouseWheel> {
|
||||||
|
set delta [expr {- (%D)}]
|
||||||
|
$canv xview scroll $delta units
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bindall <2> "canvscan mark %W %x %y"
|
bindall <$::BM> "canvscan mark %W %x %y"
|
||||||
bindall <B2-Motion> "canvscan dragto %W %x %y"
|
bindall <B$::BM-Motion> "canvscan dragto %W %x %y"
|
||||||
bindkey <Home> selfirstline
|
bindkey <Home> selfirstline
|
||||||
bindkey <End> sellastline
|
bindkey <End> sellastline
|
||||||
bind . <Key-Up> "selnextline -1"
|
bind . <Key-Up> "selnextline -1"
|
||||||
|
@ -2285,6 +2317,7 @@ proc makewindow {} {
|
||||||
bindkey d "$ctext yview scroll 18 units"
|
bindkey d "$ctext yview scroll 18 units"
|
||||||
bindkey u "$ctext yview scroll -18 units"
|
bindkey u "$ctext yview scroll -18 units"
|
||||||
bindkey / {focus $fstring}
|
bindkey / {focus $fstring}
|
||||||
|
bindkey <Key-KP_Divide> {focus $fstring}
|
||||||
bindkey <Key-Return> {dofind 1 1}
|
bindkey <Key-Return> {dofind 1 1}
|
||||||
bindkey ? {dofind -1 1}
|
bindkey ? {dofind -1 1}
|
||||||
bindkey f nextfile
|
bindkey f nextfile
|
||||||
|
@ -2331,6 +2364,10 @@ proc makewindow {} {
|
||||||
{mc "Create new branch" command mkbranch}
|
{mc "Create new branch" command mkbranch}
|
||||||
{mc "Cherry-pick this commit" command cherrypick}
|
{mc "Cherry-pick this commit" command cherrypick}
|
||||||
{mc "Reset HEAD branch to here" command resethead}
|
{mc "Reset HEAD branch to here" command resethead}
|
||||||
|
{mc "Mark this commit" command markhere}
|
||||||
|
{mc "Return to mark" command gotomark}
|
||||||
|
{mc "Find descendant of this and mark" command find_common_desc}
|
||||||
|
{mc "Compare with marked commit" command compare_commits}
|
||||||
}
|
}
|
||||||
$rowctxmenu configure -tearoff 0
|
$rowctxmenu configure -tearoff 0
|
||||||
|
|
||||||
|
@ -2487,6 +2524,9 @@ proc savestuff {w} {
|
||||||
if {![winfo viewable .]} return
|
if {![winfo viewable .]} return
|
||||||
catch {
|
catch {
|
||||||
set f [open "~/.gitk-new" w]
|
set f [open "~/.gitk-new" w]
|
||||||
|
if {$::tcl_platform(platform) eq {windows}} {
|
||||||
|
file attributes "~/.gitk-new" -hidden true
|
||||||
|
}
|
||||||
puts $f [list set mainfont $mainfont]
|
puts $f [list set mainfont $mainfont]
|
||||||
puts $f [list set textfont $textfont]
|
puts $f [list set textfont $textfont]
|
||||||
puts $f [list set uifont $uifont]
|
puts $f [list set uifont $uifont]
|
||||||
|
@ -2512,6 +2552,7 @@ proc savestuff {w} {
|
||||||
puts $f [list set perfile_attrs $perfile_attrs]
|
puts $f [list set perfile_attrs $perfile_attrs]
|
||||||
|
|
||||||
puts $f "set geometry(main) [wm geometry .]"
|
puts $f "set geometry(main) [wm geometry .]"
|
||||||
|
puts $f "set geometry(state) [wm state .]"
|
||||||
puts $f "set geometry(topwidth) [winfo width .tf]"
|
puts $f "set geometry(topwidth) [winfo width .tf]"
|
||||||
puts $f "set geometry(topheight) [winfo height .tf]"
|
puts $f "set geometry(topheight) [winfo height .tf]"
|
||||||
puts $f "set geometry(pwsash0) \"[.tf.histframe.pwclist sash coord 0]\""
|
puts $f "set geometry(pwsash0) \"[.tf.histframe.pwclist sash coord 0]\""
|
||||||
|
@ -3204,9 +3245,8 @@ proc external_diff {} {
|
||||||
set difftofile [external_diff_get_one_file $diffidto $flist_menu_file $diffdir]
|
set difftofile [external_diff_get_one_file $diffidto $flist_menu_file $diffdir]
|
||||||
|
|
||||||
if {$difffromfile ne {} && $difftofile ne {}} {
|
if {$difffromfile ne {} && $difftofile ne {}} {
|
||||||
set cmd [concat | [shellsplit $extdifftool] \
|
set cmd [list [shellsplit $extdifftool] $difffromfile $difftofile]
|
||||||
[list $difffromfile $difftofile]]
|
if {[catch {set fl [open |$cmd r]} err]} {
|
||||||
if {[catch {set fl [open $cmd r]} err]} {
|
|
||||||
file delete -force $diffdir
|
file delete -force $diffdir
|
||||||
error_popup "$extdifftool: [mc "command failed:"] $err"
|
error_popup "$extdifftool: [mc "command failed:"] $err"
|
||||||
} else {
|
} else {
|
||||||
|
@ -3737,7 +3777,7 @@ proc editview {} {
|
||||||
set newviewopts($curview,perm) $viewperm($curview)
|
set newviewopts($curview,perm) $viewperm($curview)
|
||||||
set newviewopts($curview,cmd) $viewargscmd($curview)
|
set newviewopts($curview,cmd) $viewargscmd($curview)
|
||||||
decode_view_opts $curview $viewargs($curview)
|
decode_view_opts $curview $viewargs($curview)
|
||||||
vieweditor $top $curview "Gitk: edit view $viewname($curview)"
|
vieweditor $top $curview "[mc "Gitk: edit view"] $viewname($curview)"
|
||||||
}
|
}
|
||||||
|
|
||||||
proc vieweditor {top n title} {
|
proc vieweditor {top n title} {
|
||||||
|
@ -4046,7 +4086,7 @@ proc ishighlighted {id} {
|
||||||
}
|
}
|
||||||
|
|
||||||
proc bolden {id font} {
|
proc bolden {id font} {
|
||||||
global canv linehtag currentid boldids need_redisplay
|
global canv linehtag currentid boldids need_redisplay markedid
|
||||||
|
|
||||||
# need_redisplay = 1 means the display is stale and about to be redrawn
|
# need_redisplay = 1 means the display is stale and about to be redrawn
|
||||||
if {$need_redisplay} return
|
if {$need_redisplay} return
|
||||||
|
@ -4059,6 +4099,9 @@ proc bolden {id font} {
|
||||||
-fill [$canv cget -selectbackground]]
|
-fill [$canv cget -selectbackground]]
|
||||||
$canv lower $t
|
$canv lower $t
|
||||||
}
|
}
|
||||||
|
if {[info exists markedid] && $id eq $markedid} {
|
||||||
|
make_idmark $id
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
proc bolden_name {id font} {
|
proc bolden_name {id font} {
|
||||||
|
@ -5563,7 +5606,7 @@ proc drawcmittext {id row col} {
|
||||||
global cmitlisted commitinfo rowidlist parentlist
|
global cmitlisted commitinfo rowidlist parentlist
|
||||||
global rowtextx idpos idtags idheads idotherrefs
|
global rowtextx idpos idtags idheads idotherrefs
|
||||||
global linehtag linentag linedtag selectedline
|
global linehtag linentag linedtag selectedline
|
||||||
global canvxmax boldids boldnameids fgcolor
|
global canvxmax boldids boldnameids fgcolor markedid
|
||||||
global mainheadid nullid nullid2 circleitem circlecolors ctxbut
|
global mainheadid nullid nullid2 circleitem circlecolors ctxbut
|
||||||
|
|
||||||
# listed is 0 for boundary, 1 for normal, 2 for negative, 3 for left, 4 for right
|
# listed is 0 for boundary, 1 for normal, 2 for negative, 3 for left, 4 for right
|
||||||
|
@ -5645,6 +5688,9 @@ proc drawcmittext {id row col} {
|
||||||
if {$selectedline == $row} {
|
if {$selectedline == $row} {
|
||||||
make_secsel $id
|
make_secsel $id
|
||||||
}
|
}
|
||||||
|
if {[info exists markedid] && $markedid eq $id} {
|
||||||
|
make_idmark $id
|
||||||
|
}
|
||||||
set xr [expr {$xt + [font measure $font $headline]}]
|
set xr [expr {$xt + [font measure $font $headline]}]
|
||||||
if {$xr > $canvxmax} {
|
if {$xr > $canvxmax} {
|
||||||
set canvxmax $xr
|
set canvxmax $xr
|
||||||
|
@ -6443,6 +6489,17 @@ proc setlink {id lk} {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proc appendshortlink {id {pre {}} {post {}}} {
|
||||||
|
global ctext linknum
|
||||||
|
|
||||||
|
$ctext insert end $pre
|
||||||
|
$ctext tag delete link$linknum
|
||||||
|
$ctext insert end [string range $id 0 7] link$linknum
|
||||||
|
$ctext insert end $post
|
||||||
|
setlink $id link$linknum
|
||||||
|
incr linknum
|
||||||
|
}
|
||||||
|
|
||||||
proc makelink {id} {
|
proc makelink {id} {
|
||||||
global pendinglinks
|
global pendinglinks
|
||||||
|
|
||||||
|
@ -6499,7 +6556,7 @@ proc appendrefs {pos ids var} {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if {[llength $tags] > $maxrefs} {
|
if {[llength $tags] > $maxrefs} {
|
||||||
$ctext insert $pos "many ([llength $tags])"
|
$ctext insert $pos "[mc "many"] ([llength $tags])"
|
||||||
} else {
|
} else {
|
||||||
set tags [lsort -index 0 -decreasing $tags]
|
set tags [lsort -index 0 -decreasing $tags]
|
||||||
set sep {}
|
set sep {}
|
||||||
|
@ -6586,6 +6643,16 @@ proc make_secsel {id} {
|
||||||
$canv3 lower $t
|
$canv3 lower $t
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proc make_idmark {id} {
|
||||||
|
global linehtag canv fgcolor
|
||||||
|
|
||||||
|
if {![info exists linehtag($id)]} return
|
||||||
|
$canv delete markid
|
||||||
|
set t [eval $canv create rect [$canv bbox $linehtag($id)] \
|
||||||
|
-tags markid -outline $fgcolor]
|
||||||
|
$canv raise $t
|
||||||
|
}
|
||||||
|
|
||||||
proc selectline {l isnew {desired_loc {}}} {
|
proc selectline {l isnew {desired_loc {}}} {
|
||||||
global canv ctext commitinfo selectedline
|
global canv ctext commitinfo selectedline
|
||||||
global canvy0 linespc parents children curview
|
global canvy0 linespc parents children curview
|
||||||
|
@ -7216,7 +7283,7 @@ proc getblobdiffs {ids} {
|
||||||
set diffnparents 0
|
set diffnparents 0
|
||||||
set diffinhdr 0
|
set diffinhdr 0
|
||||||
set diffencoding [get_path_encoding {}]
|
set diffencoding [get_path_encoding {}]
|
||||||
fconfigure $bdf -blocking 0 -encoding binary
|
fconfigure $bdf -blocking 0 -encoding binary -eofchar {}
|
||||||
set blobdifffd($ids) $bdf
|
set blobdifffd($ids) $bdf
|
||||||
filerun $bdf [list getblobdiffline $bdf $diffids]
|
filerun $bdf [list getblobdiffline $bdf $diffids]
|
||||||
}
|
}
|
||||||
|
@ -7367,7 +7434,8 @@ proc getblobdiffline {bdf ids} {
|
||||||
$ctext insert end "$line\n" filesep
|
$ctext insert end "$line\n" filesep
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
set line [encoding convertfrom $diffencoding $line]
|
set line [string map {\x1A ^Z} \
|
||||||
|
[encoding convertfrom $diffencoding $line]]
|
||||||
# parse the prefix - one ' ', '-' or '+' for each parent
|
# parse the prefix - one ' ', '-' or '+' for each parent
|
||||||
set prefix [string range $line 0 [expr {$diffnparents - 1}]]
|
set prefix [string range $line 0 [expr {$diffnparents - 1}]]
|
||||||
set tag [expr {$diffnparents > 1? "m": "d"}]
|
set tag [expr {$diffnparents > 1? "m": "d"}]
|
||||||
|
@ -7970,7 +8038,7 @@ proc mstime {} {
|
||||||
|
|
||||||
proc rowmenu {x y id} {
|
proc rowmenu {x y id} {
|
||||||
global rowctxmenu selectedline rowmenuid curview
|
global rowctxmenu selectedline rowmenuid curview
|
||||||
global nullid nullid2 fakerowmenu mainhead
|
global nullid nullid2 fakerowmenu mainhead markedid
|
||||||
|
|
||||||
stopfinding
|
stopfinding
|
||||||
set rowmenuid $id
|
set rowmenuid $id
|
||||||
|
@ -7986,6 +8054,15 @@ proc rowmenu {x y id} {
|
||||||
} else {
|
} else {
|
||||||
$menu entryconfigure 7 -label [mc "Detached head: can't reset" $mainhead] -state disabled
|
$menu entryconfigure 7 -label [mc "Detached head: can't reset" $mainhead] -state disabled
|
||||||
}
|
}
|
||||||
|
if {[info exists markedid] && $markedid ne $id} {
|
||||||
|
$menu entryconfigure 9 -state normal
|
||||||
|
$menu entryconfigure 10 -state normal
|
||||||
|
$menu entryconfigure 11 -state normal
|
||||||
|
} else {
|
||||||
|
$menu entryconfigure 9 -state disabled
|
||||||
|
$menu entryconfigure 10 -state disabled
|
||||||
|
$menu entryconfigure 11 -state disabled
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
set menu $fakerowmenu
|
set menu $fakerowmenu
|
||||||
}
|
}
|
||||||
|
@ -7995,6 +8072,162 @@ proc rowmenu {x y id} {
|
||||||
tk_popup $menu $x $y
|
tk_popup $menu $x $y
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proc markhere {} {
|
||||||
|
global rowmenuid markedid canv
|
||||||
|
|
||||||
|
set markedid $rowmenuid
|
||||||
|
make_idmark $markedid
|
||||||
|
}
|
||||||
|
|
||||||
|
proc gotomark {} {
|
||||||
|
global markedid
|
||||||
|
|
||||||
|
if {[info exists markedid]} {
|
||||||
|
selbyid $markedid
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc replace_by_kids {l r} {
|
||||||
|
global curview children
|
||||||
|
|
||||||
|
set id [commitonrow $r]
|
||||||
|
set l [lreplace $l 0 0]
|
||||||
|
foreach kid $children($curview,$id) {
|
||||||
|
lappend l [rowofcommit $kid]
|
||||||
|
}
|
||||||
|
return [lsort -integer -decreasing -unique $l]
|
||||||
|
}
|
||||||
|
|
||||||
|
proc find_common_desc {} {
|
||||||
|
global markedid rowmenuid curview children
|
||||||
|
|
||||||
|
if {![info exists markedid]} return
|
||||||
|
if {![commitinview $markedid $curview] ||
|
||||||
|
![commitinview $rowmenuid $curview]} return
|
||||||
|
#set t1 [clock clicks -milliseconds]
|
||||||
|
set l1 [list [rowofcommit $markedid]]
|
||||||
|
set l2 [list [rowofcommit $rowmenuid]]
|
||||||
|
while 1 {
|
||||||
|
set r1 [lindex $l1 0]
|
||||||
|
set r2 [lindex $l2 0]
|
||||||
|
if {$r1 eq {} || $r2 eq {}} break
|
||||||
|
if {$r1 == $r2} {
|
||||||
|
selectline $r1 1
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if {$r1 > $r2} {
|
||||||
|
set l1 [replace_by_kids $l1 $r1]
|
||||||
|
} else {
|
||||||
|
set l2 [replace_by_kids $l2 $r2]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#set t2 [clock clicks -milliseconds]
|
||||||
|
#puts "took [expr {$t2-$t1}]ms"
|
||||||
|
}
|
||||||
|
|
||||||
|
proc compare_commits {} {
|
||||||
|
global markedid rowmenuid curview children
|
||||||
|
|
||||||
|
if {![info exists markedid]} return
|
||||||
|
if {![commitinview $markedid $curview]} return
|
||||||
|
addtohistory [list do_cmp_commits $markedid $rowmenuid]
|
||||||
|
do_cmp_commits $markedid $rowmenuid
|
||||||
|
}
|
||||||
|
|
||||||
|
proc getpatchid {id} {
|
||||||
|
global patchids
|
||||||
|
|
||||||
|
if {![info exists patchids($id)]} {
|
||||||
|
set cmd [diffcmd [list $id] {-p --root}]
|
||||||
|
# trim off the initial "|"
|
||||||
|
set cmd [lrange $cmd 1 end]
|
||||||
|
if {[catch {
|
||||||
|
set x [eval exec $cmd | git patch-id]
|
||||||
|
set patchids($id) [lindex $x 0]
|
||||||
|
}]} {
|
||||||
|
set patchids($id) "error"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $patchids($id)
|
||||||
|
}
|
||||||
|
|
||||||
|
proc do_cmp_commits {a b} {
|
||||||
|
global ctext curview parents children patchids commitinfo
|
||||||
|
|
||||||
|
$ctext conf -state normal
|
||||||
|
clear_ctext
|
||||||
|
init_flist {}
|
||||||
|
for {set i 0} {$i < 100} {incr i} {
|
||||||
|
set skipa 0
|
||||||
|
set skipb 0
|
||||||
|
if {[llength $parents($curview,$a)] > 1} {
|
||||||
|
appendshortlink $a [mc "Skipping merge commit "] "\n"
|
||||||
|
set skipa 1
|
||||||
|
} else {
|
||||||
|
set patcha [getpatchid $a]
|
||||||
|
}
|
||||||
|
if {[llength $parents($curview,$b)] > 1} {
|
||||||
|
appendshortlink $b [mc "Skipping merge commit "] "\n"
|
||||||
|
set skipb 1
|
||||||
|
} else {
|
||||||
|
set patchb [getpatchid $b]
|
||||||
|
}
|
||||||
|
if {!$skipa && !$skipb} {
|
||||||
|
set heada [lindex $commitinfo($a) 0]
|
||||||
|
set headb [lindex $commitinfo($b) 0]
|
||||||
|
if {$patcha eq "error"} {
|
||||||
|
appendshortlink $a [mc "Error getting patch ID for "] \
|
||||||
|
[mc " - stopping\n"]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if {$patchb eq "error"} {
|
||||||
|
appendshortlink $b [mc "Error getting patch ID for "] \
|
||||||
|
[mc " - stopping\n"]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if {$patcha eq $patchb} {
|
||||||
|
if {$heada eq $headb} {
|
||||||
|
appendshortlink $a [mc "Commit "]
|
||||||
|
appendshortlink $b " == " " $heada\n"
|
||||||
|
} else {
|
||||||
|
appendshortlink $a [mc "Commit "] " $heada\n"
|
||||||
|
appendshortlink $b [mc " is the same patch as\n "] \
|
||||||
|
" $headb\n"
|
||||||
|
}
|
||||||
|
set skipa 1
|
||||||
|
set skipb 1
|
||||||
|
} else {
|
||||||
|
$ctext insert end "\n"
|
||||||
|
appendshortlink $a [mc "Commit "] " $heada\n"
|
||||||
|
appendshortlink $b [mc " differs from\n "] \
|
||||||
|
" $headb\n"
|
||||||
|
$ctext insert end [mc "- stopping\n"]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if {$skipa} {
|
||||||
|
if {[llength $children($curview,$a)] != 1} {
|
||||||
|
$ctext insert end "\n"
|
||||||
|
appendshortlink $a [mc "Commit "] \
|
||||||
|
[mc " has %s children - stopping\n" \
|
||||||
|
[llength $children($curview,$a)]]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
set a [lindex $children($curview,$a) 0]
|
||||||
|
}
|
||||||
|
if {$skipb} {
|
||||||
|
if {[llength $children($curview,$b)] != 1} {
|
||||||
|
appendshortlink $b [mc "Commit "] \
|
||||||
|
[mc " has %s children - stopping\n" \
|
||||||
|
[llength $children($curview,$b)]]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
set b [lindex $children($curview,$b) 0]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$ctext conf -state disabled
|
||||||
|
}
|
||||||
|
|
||||||
proc diffvssel {dirn} {
|
proc diffvssel {dirn} {
|
||||||
global rowmenuid selectedline
|
global rowmenuid selectedline
|
||||||
|
|
||||||
|
@ -8189,7 +8422,7 @@ proc domktag {} {
|
||||||
}
|
}
|
||||||
|
|
||||||
proc redrawtags {id} {
|
proc redrawtags {id} {
|
||||||
global canv linehtag idpos currentid curview cmitlisted
|
global canv linehtag idpos currentid curview cmitlisted markedid
|
||||||
global canvxmax iddrawn circleitem mainheadid circlecolors
|
global canvxmax iddrawn circleitem mainheadid circlecolors
|
||||||
|
|
||||||
if {![commitinview $id $curview]} return
|
if {![commitinview $id $curview]} return
|
||||||
|
@ -8214,6 +8447,9 @@ proc redrawtags {id} {
|
||||||
if {[info exists currentid] && $currentid == $id} {
|
if {[info exists currentid] && $currentid == $id} {
|
||||||
make_secsel $id
|
make_secsel $id
|
||||||
}
|
}
|
||||||
|
if {[info exists markedid] && $markedid eq $id} {
|
||||||
|
make_idmark $id
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
proc mktagcan {} {
|
proc mktagcan {} {
|
||||||
|
@ -10197,7 +10433,7 @@ proc doprefs {} {
|
||||||
proc choose_extdiff {} {
|
proc choose_extdiff {} {
|
||||||
global extdifftool
|
global extdifftool
|
||||||
|
|
||||||
set prog [tk_getOpenFile -title "External diff tool" -multiple false]
|
set prog [tk_getOpenFile -title [mc "External diff tool"] -multiple false]
|
||||||
if {$prog ne {}} {
|
if {$prog ne {}} {
|
||||||
set extdifftool $prog
|
set extdifftool $prog
|
||||||
}
|
}
|
||||||
|
@ -10240,6 +10476,7 @@ proc setfg {c} {
|
||||||
}
|
}
|
||||||
allcanvs itemconf text -fill $c
|
allcanvs itemconf text -fill $c
|
||||||
$canv itemconf circle -outline $c
|
$canv itemconf circle -outline $c
|
||||||
|
$canv itemconf markid -outline $c
|
||||||
}
|
}
|
||||||
|
|
||||||
proc prefscan {} {
|
proc prefscan {} {
|
||||||
|
@ -10689,9 +10926,15 @@ catch {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
set mainfont {Helvetica 9}
|
if {[tk windowingsystem] eq "aqua"} {
|
||||||
set textfont {Courier 9}
|
set mainfont {{Lucida Grande} 9}
|
||||||
set uifont {Helvetica 9 bold}
|
set textfont {Monaco 9}
|
||||||
|
set uifont {{Lucida Grande} 9 bold}
|
||||||
|
} else {
|
||||||
|
set mainfont {Helvetica 9}
|
||||||
|
set textfont {Courier 9}
|
||||||
|
set uifont {Helvetica 9 bold}
|
||||||
|
}
|
||||||
set tabstop 8
|
set tabstop 8
|
||||||
set findmergefiles 0
|
set findmergefiles 0
|
||||||
set maxgraphpct 50
|
set maxgraphpct 50
|
||||||
|
@ -10712,7 +10955,11 @@ set datetimeformat "%Y-%m-%d %H:%M:%S"
|
||||||
set autoselect 1
|
set autoselect 1
|
||||||
set perfile_attrs 0
|
set perfile_attrs 0
|
||||||
|
|
||||||
set extdifftool "meld"
|
if {[tk windowingsystem] eq "aqua"} {
|
||||||
|
set extdifftool "opendiff"
|
||||||
|
} else {
|
||||||
|
set extdifftool "meld"
|
||||||
|
}
|
||||||
|
|
||||||
set colors {green red blue magenta darkgrey brown orange}
|
set colors {green red blue magenta darkgrey brown orange}
|
||||||
set bgcolor white
|
set bgcolor white
|
||||||
|
@ -10883,9 +11130,33 @@ set lserial 0
|
||||||
set isworktree [expr {[exec git rev-parse --is-inside-work-tree] == "true"}]
|
set isworktree [expr {[exec git rev-parse --is-inside-work-tree] == "true"}]
|
||||||
setcoords
|
setcoords
|
||||||
makewindow
|
makewindow
|
||||||
|
catch {
|
||||||
|
image create photo gitlogo -width 16 -height 16
|
||||||
|
|
||||||
|
image create photo gitlogominus -width 4 -height 2
|
||||||
|
gitlogominus put #C00000 -to 0 0 4 2
|
||||||
|
gitlogo copy gitlogominus -to 1 5
|
||||||
|
gitlogo copy gitlogominus -to 6 5
|
||||||
|
gitlogo copy gitlogominus -to 11 5
|
||||||
|
image delete gitlogominus
|
||||||
|
|
||||||
|
image create photo gitlogoplus -width 4 -height 4
|
||||||
|
gitlogoplus put #008000 -to 1 0 3 4
|
||||||
|
gitlogoplus put #008000 -to 0 1 4 3
|
||||||
|
gitlogo copy gitlogoplus -to 1 9
|
||||||
|
gitlogo copy gitlogoplus -to 6 9
|
||||||
|
gitlogo copy gitlogoplus -to 11 9
|
||||||
|
image delete gitlogoplus
|
||||||
|
|
||||||
|
image create photo gitlogo32 -width 32 -height 32
|
||||||
|
gitlogo32 copy gitlogo -zoom 2 2
|
||||||
|
|
||||||
|
wm iconphoto . -default gitlogo gitlogo32
|
||||||
|
}
|
||||||
# wait for the window to become visible
|
# wait for the window to become visible
|
||||||
tkwait visibility .
|
tkwait visibility .
|
||||||
wm title . "[file tail $argv0]: [file tail [pwd]]"
|
wm title . "[file tail $argv0]: [file tail [pwd]]"
|
||||||
|
update
|
||||||
readrefs
|
readrefs
|
||||||
|
|
||||||
if {$cmdline_files ne {} || $revtreeargs ne {} || $revtreeargscmd ne {}} {
|
if {$cmdline_files ne {} || $revtreeargs ne {} || $revtreeargscmd ne {}} {
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue