diff options
author | David Kim <dkim@gitlab.com> | 2023-11-03 08:10:18 +0300 |
---|---|---|
committer | David Kim <dkim@gitlab.com> | 2023-11-03 09:03:18 +0300 |
commit | 954cffa7c896abe679d3e2bc2bd0680159963b89 (patch) | |
tree | 75c692bfa3279a3a0e4e4a676e7ed56872244c95 | |
parent | a2162b61e6e77d2363aea406508b6508d71cba9b (diff) |
Remove context from the Instance and pass in instead5646-update-commitdiff-to-collapse-generated-files
-rw-r--r-- | internal/gitaly/linguist/linguist.go | 18 | ||||
-rw-r--r-- | internal/gitaly/linguist/linguist_test.go | 12 | ||||
-rw-r--r-- | internal/gitaly/service/commit/languages.go | 2 | ||||
-rw-r--r-- | internal/gitaly/service/diff/commit_diff.go | 6 |
4 files changed, 18 insertions, 20 deletions
diff --git a/internal/gitaly/linguist/linguist.go b/internal/gitaly/linguist/linguist.go index 3b776fd11..bba628696 100644 --- a/internal/gitaly/linguist/linguist.go +++ b/internal/gitaly/linguist/linguist.go @@ -21,7 +21,6 @@ type ByteCountPerLanguage map[string]uint64 // Instance is a holder of the defined in the system language settings. type Instance struct { - ctx context.Context logger log.Logger catfileCache catfile.Cache repo *localrepo.Repo @@ -29,9 +28,8 @@ type Instance struct { // New creates a new instance that can be used to calculate language stats for // the given repo. -func New(ctx context.Context, logger log.Logger, catfileCache catfile.Cache, repo *localrepo.Repo) *Instance { +func New(logger log.Logger, catfileCache catfile.Cache, repo *localrepo.Repo) *Instance { return &Instance{ - ctx: ctx, logger: logger, catfileCache: catfileCache, repo: repo, @@ -53,7 +51,7 @@ func Color(language string) string { // first then uses the huristics from go-enry if the override is not defined. // Generated files are usually generated based on a template or source file // by running a build tool. -func (inst *Instance) IsGenerated(checkAttrCmd *gitattributes.CheckAttrCmd, filename string, oid git.ObjectID) (bool, error) { +func (inst *Instance) IsGenerated(ctx context.Context, checkAttrCmd *gitattributes.CheckAttrCmd, filename string, oid git.ObjectID) (bool, error) { fileInstance, err := newFileInstance(filename, checkAttrCmd) if err != nil { return false, fmt.Errorf("new file instance: %w", err) @@ -68,7 +66,7 @@ func (inst *Instance) IsGenerated(checkAttrCmd *gitattributes.CheckAttrCmd, file } // Read arbitrary number of bytes considered enough to determine language. - content, err := inst.readPartialObject(oid, 2048) + content, err := inst.readPartialObject(ctx, oid, 2048) if err != nil { return false, fmt.Errorf("read partial content: %w", err) } @@ -77,10 +75,10 @@ func (inst *Instance) IsGenerated(checkAttrCmd *gitattributes.CheckAttrCmd, file } // CheckAttrGenerated returns a CheckAttr that reads linguist-generated override -func (inst *Instance) CheckAttrGenerated(revision git.Revision) (*gitattributes.CheckAttrCmd, func(), error) { +func (inst *Instance) CheckAttrGenerated(ctx context.Context, revision git.Revision) (*gitattributes.CheckAttrCmd, func(), error) { attrs := []string{linguistGenerated} - checkAttr, finishAttr, err := gitattributes.CheckAttr(inst.ctx, inst.repo, revision, attrs) + checkAttr, finishAttr, err := gitattributes.CheckAttr(ctx, inst.repo, revision, attrs) if err != nil { return nil, nil, err } @@ -89,14 +87,14 @@ func (inst *Instance) CheckAttrGenerated(revision git.Revision) (*gitattributes. } // readPartialObject reads given object upto the limit and discard the rest -func (inst *Instance) readPartialObject(oid git.ObjectID, limit int64) ([]byte, error) { - objectReader, cancel, err := inst.catfileCache.ObjectReader(inst.ctx, inst.repo) +func (inst *Instance) readPartialObject(ctx context.Context, oid git.ObjectID, limit int64) ([]byte, error) { + objectReader, cancel, err := inst.catfileCache.ObjectReader(ctx, inst.repo) if err != nil { return nil, fmt.Errorf("new object reader: %w", err) } defer cancel() - blob, err := objectReader.Object(inst.ctx, git.Revision(oid)) + blob, err := objectReader.Object(ctx, git.Revision(oid)) if err != nil { return nil, fmt.Errorf("new object: %w", err) } diff --git a/internal/gitaly/linguist/linguist_test.go b/internal/gitaly/linguist/linguist_test.go index 085306a6c..d3b984ffe 100644 --- a/internal/gitaly/linguist/linguist_test.go +++ b/internal/gitaly/linguist/linguist_test.go @@ -366,7 +366,7 @@ func TestInstance_Stats(t *testing.T) { // We simply run the linguist once before so that it can already // write the cache. - _, err := New(ctx, testhelper.NewLogger(t), catfileCache, repo).Stats(ctx, commitID) + _, err := New(testhelper.NewLogger(t), catfileCache, repo).Stats(ctx, commitID) require.NoError(t, err) require.FileExists(t, filepath.Join(repoPath, languageStatsFilename)) @@ -397,7 +397,7 @@ func TestInstance_Stats(t *testing.T) { )) repo := localrepo.NewTestRepo(t, cfg, repoProto) - _, err := New(ctx, testhelper.NewLogger(t), catfileCache, repo).Stats(ctx, commitID) + _, err := New(testhelper.NewLogger(t), catfileCache, repo).Stats(ctx, commitID) require.NoError(t, err) require.FileExists(t, filepath.Join(repoPath, languageStatsFilename)) @@ -485,7 +485,7 @@ func TestInstance_Stats(t *testing.T) { // Precreate the cache with the old commit. This ensures that // linguist knows to update the cache. - stats, err := New(ctx, testhelper.NewLogger(t), catfileCache, repo).Stats(ctx, oldCommitID) + stats, err := New(testhelper.NewLogger(t), catfileCache, repo).Stats(ctx, oldCommitID) require.NoError(t, err) require.FileExists(t, filepath.Join(repoPath, languageStatsFilename)) require.Equal(t, ByteCountPerLanguage{ @@ -524,7 +524,7 @@ func TestInstance_Stats(t *testing.T) { repoProto, repoPath, objectID := tc.setup(t) repo := localrepo.NewTestRepo(t, cfg, repoProto) - linguist := New(ctx, testhelper.NewLogger(t), catfileCache, repo) + linguist := New(testhelper.NewLogger(t), catfileCache, repo) stats, err := linguist.Stats(ctx, objectID) if tc.expectedErr == "" { require.NoError(t, err) @@ -568,7 +568,7 @@ func TestInstance_Stats_failureGitattributes(t *testing.T) { repo := localrepo.New(logger, locator, gitCmdFactory, catfileCache, repoProto) - linguist := New(ctx, logger, catfileCache, repo) + linguist := New(logger, catfileCache, repo) _, err := linguist.Stats(ctx, commitID) expectedErr := `linguist object iterator: ls-tree skip: new file instance: checking attribute:` @@ -609,7 +609,7 @@ func BenchmarkInstance_Stats(b *testing.B) { }) repo := localrepo.NewTestRepo(b, cfg, repoProto) - linguist := New(ctx, testhelper.NewLogger(b), catfileCache, repo) + linguist := New(testhelper.NewLogger(b), catfileCache, repo) var scratchStat ByteCountPerLanguage var incStats ByteCountPerLanguage diff --git a/internal/gitaly/service/commit/languages.go b/internal/gitaly/service/commit/languages.go index e2c2e48ef..aa87a55f2 100644 --- a/internal/gitaly/service/commit/languages.go +++ b/internal/gitaly/service/commit/languages.go @@ -49,7 +49,7 @@ func (s *server) CommitLanguages(ctx context.Context, req *gitalypb.CommitLangua return nil, structerr.NewInternal("looking up revision: %w", err) } - stats, err := linguist.New(ctx, s.logger, s.catfileCache, repo).Stats(ctx, git.ObjectID(commitID)) + stats, err := linguist.New(s.logger, s.catfileCache, repo).Stats(ctx, git.ObjectID(commitID)) if err != nil { return nil, structerr.NewInternal("language stats: %w", err) } diff --git a/internal/gitaly/service/diff/commit_diff.go b/internal/gitaly/service/diff/commit_diff.go index 63b2215d5..97e4c31f6 100644 --- a/internal/gitaly/service/diff/commit_diff.go +++ b/internal/gitaly/service/diff/commit_diff.go @@ -91,8 +91,8 @@ func (s *server) CommitDiff(in *gitalypb.CommitDiffRequest, stream gitalypb.Diff var checkAttrFinish func() if in.CollapseGenerated && in.CollapseDiffs { - linguistInstance = linguist.New(ctx, s.logger, s.catfileCache, repo) - checkAttrCmd, checkAttrFinish, err = linguistInstance.CheckAttrGenerated(git.Revision(leftSha)) + linguistInstance = linguist.New(s.logger, s.catfileCache, repo) + checkAttrCmd, checkAttrFinish, err = linguistInstance.CheckAttrGenerated(ctx, git.Revision(leftSha)) if err != nil { return structerr.NewAborted("send: %w", err) } @@ -122,7 +122,7 @@ func (s *server) CommitDiff(in *gitalypb.CommitDiffRequest, stream gitalypb.Diff oid = git.ObjectID(diff.ToID) } - linguistGenerated, err := linguistInstance.IsGenerated(checkAttrCmd, string(diff.FromPath), oid) + linguistGenerated, err := linguistInstance.IsGenerated(ctx, checkAttrCmd, string(diff.FromPath), oid) if err != nil { return structerr.NewAborted("send: %w", err) } |