diff options
author | Paul Mackerras <paulus@samba.org> | 2007-09-15 09:33:39 +1000 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-09-15 09:33:39 +1000 |
commit | 3e6b893f33476e7969c7bd5b8914e8bcc62385e3 (patch) | |
tree | 1b1b68d681ca477386999c7eb9169301ce575ca2 | |
parent | f56782aef4b3d7339461d8f12ff15f6258d9871d (diff) | |
download | git-3e6b893f33476e7969c7bd5b8914e8bcc62385e3.tar.gz git-3e6b893f33476e7969c7bd5b8914e8bcc62385e3.tar.xz |
gitk: Get rid of lookingforhead, use commitinterest instead
Now that we have a general-purpose way of taking some action when a
commit ID of interest is encountered, use that for triggering the
git diff-index process when we find the currently checked-out head,
rather than the special-purpose lookingforhead variable.
Also do the commitinterest processing in getcommitlines rather than
in showstuff.
Signed-off-by: Paul Mackerras <paulus@samba.org>
-rwxr-xr-x | gitk | 42 |
1 files changed, 17 insertions, 25 deletions
@@ -83,7 +83,7 @@ proc start_rev_list {view} { global startmsecs global commfd leftover tclencoding datemode global viewargs viewfiles commitidx viewcomplete vnextroot - global lookingforhead showlocalchanges + global showlocalchanges commitinterest mainheadid set startmsecs [clock clicks -milliseconds] set commitidx($view) 0 @@ -102,7 +102,9 @@ proc start_rev_list {view} { } set commfd($view) $fd set leftover($view) {} - set lookingforhead $showlocalchanges + if {$showlocalchanges} { + lappend commitinterest($mainheadid) {dodiffindex} + } fconfigure $fd -blocking 0 -translation lf -eofchar {} if {$tclencoding != {}} { fconfigure $fd -encoding $tclencoding @@ -147,7 +149,7 @@ proc strrep {n} { } proc getcommitlines {fd view} { - global commitlisted + global commitlisted commitinterest global leftover commfd global displayorder commitidx viewcomplete commitrow commitdata global parentlist children curview hlview @@ -303,6 +305,12 @@ proc getcommitlines {fd view} { lappend vdisporder($view) $id lappend vcmitlisted($view) $listed } + if {[info exists commitinterest($id)]} { + foreach script $commitinterest($id) { + eval [string map [list "%I" $id] $script] + } + unset commitinterest($id) + } set gotsome 1 } if {$gotsome} { @@ -2715,7 +2723,7 @@ proc layoutmore {} { proc showstuff {canshow last} { global numcommits commitrow pending_select selectedline curview - global lookingforhead mainheadid displayorder selectfirst + global mainheadid displayorder selectfirst global lastscrollset commitinterest if {$numcommits == 0} { @@ -2723,15 +2731,6 @@ proc showstuff {canshow last} { set phase "incrdraw" allcanvs delete all } - for {set l $numcommits} {$l < $canshow} {incr l} { - set id [lindex $displayorder $l] - if {[info exists commitinterest($id)]} { - foreach script $commitinterest($id) { - eval [string map [list "%I" $id] $script] - } - unset commitinterest($id) - } - } set r0 $numcommits set prev $numcommits set numcommits $canshow @@ -2762,28 +2761,22 @@ proc showstuff {canshow last} { set selectfirst 0 } } - if {$lookingforhead && [info exists commitrow($curview,$mainheadid)] - && ($last || $commitrow($curview,$mainheadid) < $numcommits - 1)} { - set lookingforhead 0 - dodiffindex - } } proc doshowlocalchanges {} { - global lookingforhead curview mainheadid phase commitrow + global curview mainheadid phase commitrow if {[info exists commitrow($curview,$mainheadid)] && ($phase eq {} || $commitrow($curview,$mainheadid) < $numcommits - 1)} { dodiffindex } elseif {$phase ne {}} { - set lookingforhead 1 + lappend commitinterest($mainheadid) {} } } proc dohidelocalchanges {} { - global lookingforhead localfrow localirow lserial + global localfrow localirow lserial - set lookingforhead 0 if {$localfrow >= 0} { removerow $localfrow set localfrow -1 @@ -2800,8 +2793,9 @@ proc dohidelocalchanges {} { # spawn off a process to do git diff-index --cached HEAD proc dodiffindex {} { - global localirow localfrow lserial + global localirow localfrow lserial showlocalchanges + if {!$showlocalchanges} return incr lserial set localfrow -1 set localirow -1 @@ -6188,7 +6182,6 @@ proc cherrypick {} { proc resethead {} { global mainheadid mainhead rowmenuid confirm_ok resettype - global showlocalchanges set confirm_ok 0 set w ".confirmreset" @@ -8249,7 +8242,6 @@ set cmdlineok 0 set stopped 0 set stuffsaved 0 set patchnum 0 -set lookingforhead 0 set localirow -1 set localfrow -1 set lserial 0 |