##// END OF EJS Templates
hgk: read bookmarks
David Soria Parra -
r13461:81af2040 stable
parent child Browse files
Show More
@@ -276,6 +276,7 b' proc parsecommit {id contents listed old'
276 276 set comdate {}
277 277 set rev {}
278 278 set branch {}
279 set bookmark {}
279 280 if {![info exists nchildren($id)]} {
280 281 set children($id) {}
281 282 set nchildren($id) 0
@@ -314,7 +315,9 b' proc parsecommit {id contents listed old'
314 315 set rev [lindex $line 1]
315 316 } elseif {$tag == "branch"} {
316 317 set branch [join [lrange $line 1 end]]
317 }
318 } elseif {$tag == "bookmark"} {
319 set bookmark [join [lrange $line 1 end]]
320 }
318 321 }
319 322 } else {
320 323 if {$comment == {}} {
@@ -338,7 +341,7 b' proc parsecommit {id contents listed old'
338 341 set comdate [clock format $comdate -format "%Y-%m-%d %H:%M:%S"]
339 342 }
340 343 set commitinfo($id) [list $headline $auname $audate \
341 $comname $comdate $comment $rev $branch]
344 $comname $comdate $comment $rev $branch $bookmark]
342 345
343 346 if {[info exists firstparents]} {
344 347 set i [lsearch $firstparents $id]
@@ -369,7 +372,7 b' proc parsecommit {id contents listed old'
369 372 }
370 373
371 374 proc readrefs {} {
372 global tagids idtags headids idheads tagcontents env curid
375 global bookmarkcurrent bookmarkids tagids idtags idbookmarks headids idheads tagcontents env curid
373 376
374 377 set status [catch {exec $env(HG) --config ui.report_untrusted=false id} curid]
375 378 if { $status != 0 } {
@@ -417,6 +420,28 b' proc readrefs {} {'
417 420 }
418 421 }
419 422
423 set status [catch {exec $env(HG) --config ui.report_untrusted=false bookmarks} bookmarks]
424 if { $status != 0 } {
425 puts $::errorInfo
426 if { ![string equal $::errorCode NONE] } {
427 exit 2
428 }
429 }
430 set lines [split $bookmarks "\n"]
431 set bookmarkcurrent 0
432 foreach f $lines {
433 regexp {(\S+)$} $f full
434 regsub {\s+(\S+)$} $f "" direct
435 set sha [split $full ':']
436 set bookmark [lindex $sha 1]
437 set current [string first " * " $direct)]
438 regsub {^\s(\*|\s)\s} $direct "" direct
439 lappend bookmarkids($direct) $bookmark
440 lappend idbookmarks($bookmark) $direct
441 if {$current >= 0} {
442 set bookmarkcurrent $direct
443 }
444 }
420 445 }
421 446
422 447 proc readotherrefs {base dname excl} {
@@ -1042,7 +1067,7 b' proc drawcommitline {level} {'
1042 1067 global canv canv2 canv3 mainfont namefont canvy linespc
1043 1068 global lineid linehtag linentag linedtag commitinfo
1044 1069 global colormap numcommits currentparents dupparents
1045 global idtags idline idheads idotherrefs
1070 global idtags idline idheads idotherrefs idbookmarks
1046 1071 global lineno lthickness mainline mainlinearrow sidelines
1047 1072 global commitlisted rowtextx idpos lastuse displist
1048 1073 global oldnlines olddlevel olddisplist
@@ -1100,7 +1125,7 b' proc drawcommitline {level} {'
1100 1125 set rowtextx($lineno) $xt
1101 1126 set idpos($id) [list $x $xt $y1]
1102 1127 if {[info exists idtags($id)] || [info exists idheads($id)]
1103 || [info exists idotherrefs($id)]} {
1128 || [info exists idotherrefs($id)] || [info exists idbookmarks($id)]} {
1104 1129 set xt [drawtags $id $x $xt $y1]
1105 1130 }
1106 1131 set headline [lindex $commitinfo($id) 0]
@@ -3840,8 +3865,12 b' proc wrcomcan {} {'
3840 3865 }
3841 3866
3842 3867 proc listrefs {id} {
3843 global idtags idheads idotherrefs
3844
3868 global idtags idheads idotherrefs idbookmarks
3869
3870 set w {}
3871 if {[info exists idbookmarks($id)]} {
3872 set w $idbookmarks($id)
3873 }
3845 3874 set x {}
3846 3875 if {[info exists idtags($id)]} {
3847 3876 set x $idtags($id)
@@ -3854,26 +3883,29 b' proc listrefs {id} {'
3854 3883 if {[info exists idotherrefs($id)]} {
3855 3884 set z $idotherrefs($id)
3856 3885 }
3857 return [list $x $y $z]
3886 return [list $w $x $y $z]
3858 3887 }
3859 3888
3860 3889 proc rereadrefs {} {
3861 global idtags idheads idotherrefs
3862 global tagids headids otherrefids
3890 global idbookmarks idtags idheads idotherrefs
3891 global bookmarkids tagids headids otherrefids
3863 3892
3864 3893 set refids [concat [array names idtags] \
3865 [array names idheads] [array names idotherrefs]]
3894 [array names idheads] [array names idotherrefs] \
3895 [array names idbookmarks]]
3866 3896 foreach id $refids {
3867 3897 if {![info exists ref($id)]} {
3868 3898 set ref($id) [listrefs $id]
3869 3899 }
3870 3900 }
3871 foreach v {tagids idtags headids idheads otherrefids idotherrefs} {
3901 foreach v {tagids idtags headids idheads otherrefids idotherrefs \
3902 bookmarkids idbookmarks} {
3872 3903 catch {unset $v}
3873 3904 }
3874 3905 readrefs
3875 3906 set refids [lsort -unique [concat $refids [array names idtags] \
3876 [array names idheads] [array names idotherrefs]]]
3907 [array names idheads] [array names idotherrefs] \
3908 [array names idbookmarks]]]
3877 3909 foreach id $refids {
3878 3910 set v [listrefs $id]
3879 3911 if {![info exists ref($id)] || $ref($id) != $v} {
General Comments 0
You need to be logged in to leave comments. Login now