X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=gitk;h=ba4644f450215682d7465ada26878d626f72fa00;hb=HEAD;hp=91c11a368f71809e290ec669387849aea25dda76;hpb=ef030b8547eaeea1ef992310536b0b637e0c9431;p=git.git diff --git a/gitk b/gitk index 91c11a36..ba4644f4 100755 --- a/gitk +++ b/gitk @@ -238,6 +238,7 @@ proc updatecommits {} { catch {unset selectedline} catch {unset thickerline} catch {unset viewdata($n)} + discardallcommits readrefs showview $n } @@ -4988,15 +4989,30 @@ proc wrcomcan {} { # Stuff for finding nearby tags proc getallcommits {} { - global allcstart allcommits + global allcstart allcommits allcfd set fd [open [concat | git rev-list --all --topo-order --parents] r] + set allcfd $fd fconfigure $fd -blocking 0 set allcommits "reading" nowbusy allcommits restartgetall $fd } +proc discardallcommits {} { + global allparents allchildren allcommits allcfd + global desc_tags anc_tags alldtags tagisdesc allids desc_heads + + if {![info exists allcommits]} return + if {$allcommits eq "reading"} { + catch {close $allcfd} + } + foreach v {allcommits allchildren allparents allids desc_tags anc_tags + alldtags tagisdesc desc_heads} { + catch {unset $v} + } +} + proc restartgetall {fd} { global allcstart @@ -5180,6 +5196,24 @@ proc rereadrefs {} { } } +proc listrefs {id} { + global idtags idheads idotherrefs + + set x {} + if {[info exists idtags($id)]} { + set x $idtags($id) + } + set y {} + if {[info exists idheads($id)]} { + set y $idheads($id) + } + set z {} + if {[info exists idotherrefs($id)]} { + set z $idotherrefs($id) + } + return [list $x $y $z] +} + proc showtag {tag isnew} { global ctext tagcontents tagids linknum