Skip to content

Commit fdfa791

Browse files
committed
ScanRepositoryUsingGraph(): take a context argument
1 parent 559b030 commit fdfa791

File tree

3 files changed

+15
-12
lines changed

3 files changed

+15
-12
lines changed

git-sizer.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main
22

33
import (
4+
"context"
45
"encoding/json"
56
"errors"
67
"fmt"
@@ -93,14 +94,17 @@ var ReleaseVersion string
9394
var BuildVersion string
9495

9596
func main() {
96-
err := mainImplementation(os.Stdout, os.Stderr, os.Args[1:])
97+
ctx, cancel := context.WithCancel(context.Background())
98+
defer cancel()
99+
100+
err := mainImplementation(ctx, os.Stdout, os.Stderr, os.Args[1:])
97101
if err != nil {
98102
fmt.Fprintf(os.Stderr, "error: %s\n", err)
99103
os.Exit(1)
100104
}
101105
}
102106

103-
func mainImplementation(stdout, stderr io.Writer, args []string) error {
107+
func mainImplementation(ctx context.Context, stdout, stderr io.Writer, args []string) error {
104108
var nameStyle sizes.NameStyle = sizes.NameStyleFull
105109
var cpuprofile string
106110
var jsonOutput bool
@@ -288,7 +292,7 @@ func mainImplementation(stdout, stderr io.Writer, args []string) error {
288292
progressMeter = meter.NewProgressMeter(stderr, 100*time.Millisecond)
289293
}
290294

291-
historySize, err := sizes.ScanRepositoryUsingGraph(repo, rg, nameStyle, progressMeter)
295+
historySize, err := sizes.ScanRepositoryUsingGraph(ctx, repo, rg, nameStyle, progressMeter)
292296
if err != nil {
293297
return fmt.Errorf("error scanning repository: %w", err)
294298
}

git_sizer_test.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main_test
22

33
import (
44
"bytes"
5+
"context"
56
"encoding/json"
67
"fmt"
78
"io"
@@ -563,7 +564,7 @@ func TestBomb(t *testing.T) {
563564
newGitBomb(t, repo, 10, 10, "boom!\n")
564565

565566
h, err := sizes.ScanRepositoryUsingGraph(
566-
repo.Repository(t),
567+
context.Background(), repo.Repository(t),
567568
refGrouper{}, sizes.NameStyleFull, meter.NoProgressMeter,
568569
)
569570
require.NoError(t, err)
@@ -636,7 +637,7 @@ func TestTaggedTags(t *testing.T) {
636637
require.NoError(t, cmd.Run(), "creating tag 3")
637638

638639
h, err := sizes.ScanRepositoryUsingGraph(
639-
repo.Repository(t),
640+
context.Background(), repo.Repository(t),
640641
refGrouper{}, sizes.NameStyleNone, meter.NoProgressMeter,
641642
)
642643
require.NoError(t, err, "scanning repository")
@@ -658,7 +659,7 @@ func TestFromSubdir(t *testing.T) {
658659
require.NoError(t, cmd.Run(), "creating commit")
659660

660661
h, err := sizes.ScanRepositoryUsingGraph(
661-
repo.Repository(t),
662+
context.Background(), repo.Repository(t),
662663
refGrouper{}, sizes.NameStyleNone, meter.NoProgressMeter,
663664
)
664665
require.NoError(t, err, "scanning repository")
@@ -711,7 +712,7 @@ func TestSubmodule(t *testing.T) {
711712

712713
// Analyze the main repo:
713714
h, err := sizes.ScanRepositoryUsingGraph(
714-
mainRepo.Repository(t),
715+
context.Background(), mainRepo.Repository(t),
715716
refGrouper{}, sizes.NameStyleNone, meter.NoProgressMeter,
716717
)
717718
require.NoError(t, err, "scanning repository")
@@ -724,7 +725,7 @@ func TestSubmodule(t *testing.T) {
724725
Path: filepath.Join(mainRepo.Path, "sub"),
725726
}
726727
h, err = sizes.ScanRepositoryUsingGraph(
727-
submRepo2.Repository(t),
728+
context.Background(), submRepo2.Repository(t),
728729
refGrouper{}, sizes.NameStyleNone, meter.NoProgressMeter,
729730
)
730731
require.NoError(t, err, "scanning repository")

sizes/graph.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,18 @@ import (
1919
//
2020
// It returns the size data for the repository.
2121
func ScanRepositoryUsingGraph(
22+
ctx context.Context,
2223
repo *git.Repository, rg RefGrouper, nameStyle NameStyle,
2324
progressMeter meter.Progress,
2425
) (HistorySize, error) {
25-
ctx, cancel := context.WithCancel(context.TODO())
26-
defer cancel()
27-
2826
graph := NewGraph(nameStyle)
2927

3028
refsSeen, err := CollectReferences(ctx, repo, rg)
3129
if err != nil {
3230
return HistorySize{}, fmt.Errorf("reading references: %w", err)
3331
}
3432

35-
objIter, err := repo.NewObjectIter(context.TODO())
33+
objIter, err := repo.NewObjectIter(ctx)
3634
if err != nil {
3735
return HistorySize{}, err
3836
}

0 commit comments

Comments
 (0)