mirror of
https://github.com/git/git
synced 2024-10-12 11:32:34 +00:00
Fix another invocation of git from gitk with an overly long command-line
Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
This commit is contained in:
parent
275b90bc5b
commit
d30e0a1e17
|
@ -369,7 +369,7 @@ proc start_rev_list {view} {
|
|||
if {$revs eq {}} {
|
||||
return 0
|
||||
}
|
||||
set args [concat $vflags($view) $revs]
|
||||
set args [limit_arg_length [concat $vflags($view) $revs]]
|
||||
} else {
|
||||
set args $vorigargs($view)
|
||||
}
|
||||
|
@ -9480,18 +9480,7 @@ proc getallcommits {} {
|
|||
}
|
||||
}
|
||||
if {$ids ne {}} {
|
||||
set cmd [concat $cmd $ids]
|
||||
# The maximum command line length for the CreateProcess function is 32767 characters, see
|
||||
# http://blogs.msdn.com/oldnewthing/archive/2003/12/10/56028.aspx
|
||||
# Be a little conservative in case Tcl adds some more stuff to the command line we do not
|
||||
# know about and truncate the command line at a SHA1-boundary below 32000 characters.
|
||||
if {[tk windowingsystem] == "win32" &&
|
||||
[string length $cmd] > 32000} {
|
||||
set ndx [string last " " $cmd 32000]
|
||||
if {$ndx != -1} {
|
||||
set cmd [string range $cmd 0 $ndx]
|
||||
}
|
||||
}
|
||||
set cmd [limit_arg_length [concat $cmd $ids]]
|
||||
set fd [open $cmd r]
|
||||
fconfigure $fd -blocking 0
|
||||
incr allcommits
|
||||
|
@ -9502,6 +9491,21 @@ proc getallcommits {} {
|
|||
}
|
||||
}
|
||||
|
||||
# The maximum command line length for the CreateProcess function is 32767 characters, see
|
||||
# http://blogs.msdn.com/oldnewthing/archive/2003/12/10/56028.aspx
|
||||
# Be a little conservative in case Tcl adds some more stuff to the command line we do not
|
||||
# know about and truncate the command line at a SHA1-boundary below 32000 characters.
|
||||
proc limit_arg_length {cmd} {
|
||||
if {[tk windowingsystem] == "win32" &&
|
||||
[string length $cmd] > 32000} {
|
||||
set ndx [string last " " $cmd 32000]
|
||||
if {$ndx != -1} {
|
||||
return [string range $cmd 0 $ndx]
|
||||
}
|
||||
}
|
||||
return $cmd
|
||||
}
|
||||
|
||||
# Since most commits have 1 parent and 1 child, we group strings of
|
||||
# such commits into "arcs" joining branch/merge points (BMPs), which
|
||||
# are commits that either don't have 1 parent or don't have 1 child.
|
||||
|
|
Loading…
Reference in a new issue