set phase getcommits
set startmsecs [clock clicks -milliseconds]
set nextupdate [expr $startmsecs + 100]
- set ncmupdate 0
+ set ncmupdate 1
if [catch {
set parse_args [concat --default HEAD $rargs]
set parsed_args [split [eval exec git-rev-parse $parse_args] "\n"]
global commits parents cdate children nchildren
global commitlisted phase commitinfo nextupdate
global stopped redisplaying leftover
- global numcommits ncmupdate
set stuff [read $commfd]
if {$stuff == {}} {
set commitlisted($id) 1
parsecommit $id $cmit 1
drawcommit $id
- if {[clock clicks -milliseconds] >= $nextupdate
- && $numcommits >= $ncmupdate + 100} {
- doupdate
- set ncmupdate $numcommits
+ if {[clock clicks -milliseconds] >= $nextupdate} {
+ doupdate 1
}
while {$redisplaying} {
set redisplaying 0
foreach id $commits {
drawcommit $id
if {$stopped} break
- if {[clock clicks -milliseconds] >= $nextupdate
- && $numcommits >= $ncmupdate + 100} {
- doupdate
- set ncmupdate $numcommits
+ if {[clock clicks -milliseconds] >= $nextupdate} {
+ doupdate 1
}
}
}
}
}
-proc doupdate {} {
- global commfd nextupdate
+proc doupdate {reading} {
+ global commfd nextupdate numcommits ncmupdate
- incr nextupdate 100
- fileevent $commfd readable {}
+ if {$reading} {
+ fileevent $commfd readable {}
+ }
update
- fileevent $commfd readable [list getcommitlines $commfd]
+ set nextupdate [expr {[clock clicks -milliseconds] + 100}]
+ if {$numcommits < 100} {
+ set ncmupdate [expr {$numcommits + 1}]
+ } elseif {$numcommits < 10000} {
+ set ncmupdate [expr {$numcommits + 10}]
+ } else {
+ set ncmupdate [expr {$numcommits + 100}]
+ }
+ if {$reading} {
+ fileevent $commfd readable [list getcommitlines $commfd]
+ }
}
proc readcommit {id} {
}
if {[clock clicks -milliseconds] >= $nextupdate
&& $numcommits >= $ncmupdate} {
- doupdate
- set ncmupdate $numcommits
+ doupdate 1
if {$stopped} break
}
}
if {$startcommits == {}} return
set startmsecs [clock clicks -milliseconds]
set nextupdate [expr $startmsecs + 100]
- set ncmupdate 0
+ set ncmupdate 1
initgraph
set todo [lindex $startcommits 0]
drawrest 0 1
drawslants $level
}
if {[clock clicks -milliseconds] >= $nextupdate
- && $numcommits >= $ncmupdate + 100} {
- update
- incr nextupdate 100
- set ncmupdate $numcommits
+ && $numcommits >= $ncmupdate} {
+ doupdate 0
}
}
}