Skip to content

Commit d508da2

Browse files
committed
Don't record unwalked references with the path resolver
Recording unwalked references with the path resolver means that the footnote for an extreme object might use an unwalked references in the "names" for the object, even though the object must necessarily also be reachable from at least one reference that _was_ walked. Fix this by not recording unwalked references with the path resolver.
1 parent 3d385d3 commit d508da2

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

sizes/graph.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ type RefGrouper interface {
4343

4444
type refSeen struct {
4545
git.Reference
46+
walked bool
4647
groups []RefGroupSymbol
4748
}
4849

@@ -102,6 +103,7 @@ func ScanRepositoryUsingGraph(
102103
refsSeen,
103104
refSeen{
104105
Reference: ref,
106+
walked: walk,
105107
groups: groups,
106108
},
107109
)
@@ -372,7 +374,7 @@ func ScanRepositoryUsingGraph(
372374
progressMeter.Start("Processing references: %d")
373375
for _, refSeen := range refsSeen {
374376
progressMeter.Inc()
375-
graph.RegisterReference(refSeen.Reference, refSeen.groups)
377+
graph.RegisterReference(refSeen.Reference, refSeen.walked, refSeen.groups)
376378
}
377379
progressMeter.Done()
378380

@@ -428,15 +430,17 @@ func NewGraph(rg RefGrouper, nameStyle NameStyle) *Graph {
428430
}
429431
}
430432

431-
func (g *Graph) RegisterReference(ref git.Reference, groups []RefGroupSymbol) {
433+
func (g *Graph) RegisterReference(ref git.Reference, walked bool, groups []RefGroupSymbol) {
432434
g.historyLock.Lock()
433435
g.historySize.recordReference(g, ref)
434436
for _, group := range groups {
435437
g.historySize.recordReferenceGroup(g, group)
436438
}
437439
g.historyLock.Unlock()
438440

439-
g.pathResolver.RecordReference(ref)
441+
if walked {
442+
g.pathResolver.RecordReference(ref)
443+
}
440444
}
441445

442446
func (g *Graph) HistorySize() HistorySize {

0 commit comments

Comments
 (0)