summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2006-04-23 08:00:24 (GMT)
committerPaul Mackerras <paulus@samba.org>2006-04-23 08:00:24 (GMT)
commit61e56c8823afd2c5a753a4969330ead0ba850c66 (patch)
tree88b026a3a9f171ea9d075326cbc2d49f91b26dde
parente7da347520486ce33bb77d241b574787c0ec18e8 (diff)
downloadgit-61e56c8823afd2c5a753a4969330ead0ba850c66.zip
git-61e56c8823afd2c5a753a4969330ead0ba850c66.tar.gz
git-61e56c8823afd2c5a753a4969330ead0ba850c66.tar.bz2
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>
-rwxr-xr-xgitk20
1 files changed, 2 insertions, 18 deletions
diff --git a/gitk b/gitk
index 87e7162..5362b76 100755
--- a/gitk
+++ b/gitk
@@ -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