summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgitk52
1 files changed, 22 insertions, 30 deletions
diff --git a/gitk b/gitk
index db61a15..42e96d0 100755
--- a/gitk
+++ b/gitk
@@ -32,26 +32,16 @@ proc parse_args {rargs} {
return $parsed_args
}
-proc getcommits {rargs} {
- global oldcommits commits commfd phase canv mainfont env
+proc start_rev_list {rlargs} {
global startmsecs nextupdate ncmupdate
- global ctext maincursor textcursor leftover gitencoding
+ global commfd leftover gitencoding
- # check that we can find a .git directory somewhere...
- set gitdir [gitdir]
- if {![file isdirectory $gitdir]} {
- error_popup "Cannot find the git directory \"$gitdir\"."
- exit 1
- }
- set oldcommits {}
- set commits {}
- set phase getcommits
set startmsecs [clock clicks -milliseconds]
set nextupdate [expr {$startmsecs + 100}]
set ncmupdate 1
- set parsed_args [parse_args $rargs]
if [catch {
- set commfd [open "|git-rev-list --header --topo-order --parents $parsed_args" r]
+ set commfd [open [concat | git-rev-list --header --topo-order \
+ --parents $rlargs] r]
} err] {
puts stderr "Error executing git-rev-list: $err"
exit 1
@@ -59,11 +49,26 @@ proc getcommits {rargs} {
set leftover {}
fconfigure $commfd -blocking 0 -translation lf -encoding $gitencoding
fileevent $commfd readable [list getcommitlines $commfd]
+ . config -cursor watch
+ settextcursor watch
+}
+
+proc getcommits {rargs} {
+ global oldcommits commits phase canv mainfont env
+
+ # check that we can find a .git directory somewhere...
+ set gitdir [gitdir]
+ if {![file isdirectory $gitdir]} {
+ error_popup "Cannot find the git directory \"$gitdir\"."
+ exit 1
+ }
+ set oldcommits {}
+ set commits {}
+ set phase getcommits
+ start_rev_list [parse_args $rargs]
$canv delete all
$canv create text 3 3 -anchor nw -text "Reading commits..." \
-font $mainfont -tags textitems
- . config -cursor watch
- settextcursor watch
}
proc getcommitlines {commfd} {
@@ -3684,20 +3689,7 @@ proc updatecommits {rargs} {
}
readrefs
- if [catch {
- set commfd [open "|git-rev-list --header --topo-order --parents $ignoreold $args" r]
- } err] {
- puts stderr "Error executing git-rev-list: $err"
- exit 1
- }
- set startmsecs [clock clicks -milliseconds]
- set nextupdate [expr $startmsecs + 100]
- set ncmupdate 1
- set leftover {}
- fconfigure $commfd -blocking 0 -translation lf
- fileevent $commfd readable [list getcommitlines $commfd]
- . config -cursor watch
- settextcursor watch
+ start_rev_list [concat $ignoreold $args]
}
proc showtag {tag isnew} {