Skip to content

Commit 73dae86

Browse files
committed
ScanRepositoryUsingGraph(): keep track of reference groups
1 parent 3ddf88e commit 73dae86

1 file changed

Lines changed: 19 additions & 5 deletions

File tree

sizes/graph.go

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ type RefGrouper interface {
4141
Groups() []RefGroup
4242
}
4343

44+
type refSeen struct {
45+
git.Reference
46+
groups []RefGroupSymbol
47+
}
48+
4449
func ScanRepositoryUsingGraph(
4550
repo *git.Repository, rg RefGrouper, nameStyle NameStyle, progress bool,
4651
) (HistorySize, error) {
@@ -73,7 +78,7 @@ func ScanRepositoryUsingGraph(
7378
}()
7479

7580
errChan := make(chan error, 1)
76-
var refs []git.Reference
81+
var refsSeen []refSeen
7782
// Feed the references that we want into the stdin of the object
7883
// iterator:
7984
go func() {
@@ -91,11 +96,20 @@ func ScanRepositoryUsingGraph(
9196
break
9297
}
9398

94-
walk, _ := rg.Categorize(ref.Refname)
99+
walk, groups := rg.Categorize(ref.Refname)
100+
101+
refsSeen = append(
102+
refsSeen,
103+
refSeen{
104+
Reference: ref,
105+
groups: groups,
106+
},
107+
)
108+
95109
if !walk {
96110
continue
97111
}
98-
refs = append(refs, ref)
112+
99113
_, err = bufin.WriteString(ref.OID.String())
100114
if err != nil {
101115
errChan <- err
@@ -356,9 +370,9 @@ func ScanRepositoryUsingGraph(
356370
}
357371

358372
progressMeter.Start("Processing references: %d")
359-
for _, ref := range refs {
373+
for _, refSeen := range refsSeen {
360374
progressMeter.Inc()
361-
graph.RegisterReference(ref)
375+
graph.RegisterReference(refSeen.Reference)
362376
}
363377
progressMeter.Done()
364378

0 commit comments

Comments
 (0)