Browse Source

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>
maint
Stefan Dotterweich 9 years ago committed by Paul Mackerras
parent
commit
d92aa57039
  1. 5
      gitk

5
gitk

@ -1315,7 +1315,7 @@ proc commitonrow {row} { @@ -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} { @@ -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]
}
}

Loading…
Cancel
Save