[PATCH v3] gitk: Fix missing commits when using -S or -G
- From
Stefan Dotterweich <stefandotterweich@gmx.de>
- Date
- Jun 4, 2016, 08:47 UTC
- Message-ID
- <1f857709-3c47-d4a1-b858-3288347416f8@gmx.de>
- In-Reply-To
- <fea42c3e-a028-3204-690f-88843d31c264@gmx.de>
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 <stefandotterweich@gmx.de> ---
Here is an updated version of the patch. Feel free to change it if anything is missing.
gitk-git/gitk | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/gitk-git/gitk b/gitk-git/gitk index 805a1c7..572da4a 100755 --- a/gitk-git/gitk +++ b/gitk-git/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] } }
-- 2.8.0