gitk: Let git-rev-list do the argument list parsing

This is a fix for a problem reported by Jim Radford where an argument
list somewhere overflows on repositories with lots of tags.  In fact
it's now unnecessary to use git-rev-parse since git-rev-list can take
all the arguments that git-rev-parse can.  This is inspired by but not
the same as the solutions suggested by Jim Radford and Linus Torvalds.

Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
Paul Mackerras 2006-04-23 18:00:24 +10:00
parent e7da347520
commit 61e56c8823

20
gitk
View File

@ -16,22 +16,6 @@ proc gitdir {} {
}
}
proc parse_args {rargs} {
global parsed_args
if {[catch {
set parse_args [concat --default HEAD $rargs]
set parsed_args [split [eval exec git-rev-parse $parse_args] "\n"]
}]} {
# if git-rev-parse failed for some reason...
if {$rargs == {}} {
set rargs HEAD
}
set parsed_args $rargs
}
return $parsed_args
}
proc start_rev_list {rlargs} {
global startmsecs nextupdate ncmupdate
global commfd leftover tclencoding datemode
@ -46,7 +30,7 @@ proc start_rev_list {rlargs} {
}
if {[catch {
set commfd [open [concat | git-rev-list --header $order \
--parents --boundary $rlargs] r]
--parents --boundary --default HEAD $rlargs] r]
} err]} {
puts stderr "Error executing git-rev-list: $err"
exit 1
@ -65,7 +49,7 @@ proc getcommits {rargs} {
global phase canv mainfont
set phase getcommits
start_rev_list [parse_args $rargs]
start_rev_list $rargs
$canv delete all
$canv create text 3 3 -anchor nw -text "Reading commits..." \
-font $mainfont -tags textitems