aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xgitk27
1 files changed, 20 insertions, 7 deletions
diff --git a/gitk b/gitk
index 9bd226ec83..2ab2ccb2b3 100755
--- a/gitk
+++ b/gitk
@@ -491,14 +491,16 @@ proc start_rev_list {view} {
if {$revs eq {}} {
return 0
}
- set args [concat $vflags($view) $revs]
+ set args $vflags($view)
} else {
+ set revs {}
set args $vorigargs($view)
}
if {[catch {
- set fd [safe_open_command [concat git log --no-color -z --pretty=raw $show_notes \
- --parents --boundary $args "--" $files]]
+ set fd [open [concat | git log --no-color -z --pretty=raw $show_notes \
+ --parents --boundary $args --stdin \
+ [list "<<[join [concat $revs "--" $files] "\n"]"]] r]
} err]} {
error_popup "[mc "Error executing git log:"] $err"
return 0
@@ -640,13 +642,18 @@ proc updatecommits {} {
set revs $newrevs
set vposids($view) [lsort -unique [concat $oldpos $vposids($view)]]
}
- set args [concat $vflags($view) $revs --not $oldpos]
+ set args $vflags($view)
+ foreach r $oldpos {
+ lappend revs "^$r"
+ }
} else {
+ set revs {}
set args $vorigargs($view)
}
if {[catch {
- set fd [safe_open_command [concat git log --no-color -z --pretty=raw $show_notes \
- --parents --boundary $args "--" $vfilelimit($view)]]
+ set fd [open [concat | git log --no-color -z --pretty=raw $show_notes \
+ --parents --boundary $args --stdin \
+ [list "<<[join [concat $revs "--" $vfilelimit($view)] "\n"]"]] r]
} err]} {
error_popup "[mc "Error executing git log:"] $err"
return
@@ -10309,10 +10316,16 @@ proc getallcommits {} {
foreach id $seeds {
lappend ids "^$id"
}
+ lappend ids "--"
}
}
if {$ids ne {}} {
- set fd [safe_open_command [concat $cmd $ids]]
+ if {$ids eq "--all"} {
+ set cmd [concat $cmd "--all"]
+ } else {
+ set cmd [concat $cmd --stdin [list "<<[join $ids "\n"]"]]
+ }
+ set fd [open $cmd r]
fconfigure $fd -blocking 0
incr allcommits
nowbusy allcommits