summaryrefslogtreecommitdiff
path: root/gitk
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2006-06-06 23:19:45 (GMT)
committerPaul Mackerras <paulus@samba.org>2006-06-06 23:19:45 (GMT)
commit2d71bcccc81e3569d97dd1314c3ca0f080f4a70f (patch)
tree52390a4d159d1b9ffd9757ac39fb12e9619fadca /gitk
parentef030b8547eaeea1ef992310536b0b637e0c9431 (diff)
downloadgit-2d71bcccc81e3569d97dd1314c3ca0f080f4a70f.zip
git-2d71bcccc81e3569d97dd1314c3ca0f080f4a70f.tar.gz
git-2d71bcccc81e3569d97dd1314c3ca0f080f4a70f.tar.bz2
gitk: Re-read the descendent/ancestor tag & head info on update
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'gitk')
-rwxr-xr-xgitk18
1 files changed, 17 insertions, 1 deletions
diff --git a/gitk b/gitk
index 91c11a3..9be10a4 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