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 closevargs() 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.
Signed-off-by: Stefan Dotterweich <redacted>
---
gitk | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gitk b/gitk
index 805a1c7..b0da174 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 numcommits
set missing_parents 0
set scripts {}@@ -1339,7 +1339,7 @@ proc closevarcs {v} {
modify_arc $v $b
}
lappend varccommits($v,$b) $p
- incr commitidx($v)
+ set numcommits [incr commitidx($v)]
set scripts [check_interest $p $scripts]
}
}--
2.7.4