summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Dotterweich <stefandotterweich@gmx.de>2016-06-04 10:47:16 +0200
committerPaul Mackerras <paulus@ozlabs.org>2016-12-12 11:38:29 +1100
commitd92aa57039cf2e4acae6aedfe4a4d6bf39562763 (patch)
tree40147e158dae35af6ececb96d1b0bfff140f927d
parent6e8fda5fd2d30d9e9e83af146b64c5b13ee7f2ef (diff)
downloadgit-d92aa57039cf2e4acae6aedfe4a4d6bf39562763.tar.gz
gitk: Fix missing commits when using -S or -G
When -S or -G is used as a filter option, the resulting commit list rarely contains all matching commits. Only a certain number of commits are displayed and the rest are missing. "git log --boundary -S" does not return as many boundary commits as you might expect. gitk makes up for this in closevarcs() by adding missing parent (boundary) commits. However, it does not change $numcommits, which limits how many commits are shown. In the end, some commits at the end of the commit list are simply not shown. Change $numcommits whenever a missing parent is added to the current view. Signed-off-by: Stefan Dotterweich <stefandotterweich@gmx.de> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
-rwxr-xr-xgitk5
1 files changed, 4 insertions, 1 deletions
diff --git a/gitk b/gitk
index c60f180941..4d531b335a 100755
--- a/gitk
+++ b/gitk
@@ -1315,7 +1315,7 @@ proc commitonrow {row} {
proc closevarcs {v} {
global varctok varccommits varcid parents children
- global cmitlisted commitidx vtokmod
+ global cmitlisted commitidx vtokmod curview numcommits
set missing_parents 0
set scripts {}
@@ -1340,6 +1340,9 @@ proc closevarcs {v} {
}
lappend varccommits($v,$b) $p
incr commitidx($v)
+ if {$v == $curview} {
+ set numcommits $commitidx($v)
+ }
set scripts [check_interest $p $scripts]
}
}