Skip to content

Commit 960a844

Browse files
committed
add context to repo_index commands
1 parent d22836f commit 960a844

File tree

5 files changed

+26
-26
lines changed

5 files changed

+26
-26
lines changed

modules/git/repo_index.go

+15-15
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,15 @@ func (repo *Repository) ReadTreeToIndex(ctx context.Context, treeish string, ind
3434
if err != nil {
3535
return err
3636
}
37-
return repo.readTreeToIndex(id, indexFilename...)
37+
return repo.readTreeToIndex(ctx, id, indexFilename...)
3838
}
3939

40-
func (repo *Repository) readTreeToIndex(id ObjectID, indexFilename ...string) error {
40+
func (repo *Repository) readTreeToIndex(ctx context.Context, id ObjectID, indexFilename ...string) error {
4141
var env []string
4242
if len(indexFilename) > 0 {
4343
env = append(os.Environ(), "GIT_INDEX_FILE="+indexFilename[0])
4444
}
45-
_, _, err := NewCommand("read-tree").AddDynamicArguments(id.String()).RunStdString(repo.Ctx, &RunOpts{Dir: repo.Path, Env: env})
45+
_, _, err := NewCommand("read-tree").AddDynamicArguments(id.String()).RunStdString(ctx, &RunOpts{Dir: repo.Path, Env: env})
4646
if err != nil {
4747
return err
4848
}
@@ -82,15 +82,15 @@ func (repo *Repository) ReadTreeToTemporaryIndex(ctx context.Context, treeish st
8282
}
8383

8484
// EmptyIndex empties the index
85-
func (repo *Repository) EmptyIndex() error {
86-
_, _, err := NewCommand("read-tree", "--empty").RunStdString(repo.Ctx, &RunOpts{Dir: repo.Path})
85+
func (repo *Repository) EmptyIndex(ctx context.Context) error {
86+
_, _, err := NewCommand("read-tree", "--empty").RunStdString(ctx, &RunOpts{Dir: repo.Path})
8787
return err
8888
}
8989

9090
// LsFiles checks if the given filenames are in the index
91-
func (repo *Repository) LsFiles(filenames ...string) ([]string, error) {
91+
func (repo *Repository) LsFiles(ctx context.Context, filenames ...string) ([]string, error) {
9292
cmd := NewCommand("ls-files", "-z").AddDashesAndList(filenames...)
93-
res, _, err := cmd.RunStdBytes(repo.Ctx, &RunOpts{Dir: repo.Path})
93+
res, _, err := cmd.RunStdBytes(ctx, &RunOpts{Dir: repo.Path})
9494
if err != nil {
9595
return nil, err
9696
}
@@ -103,7 +103,7 @@ func (repo *Repository) LsFiles(filenames ...string) ([]string, error) {
103103
}
104104

105105
// RemoveFilesFromIndex removes given filenames from the index - it does not check whether they are present.
106-
func (repo *Repository) RemoveFilesFromIndex(filenames ...string) error {
106+
func (repo *Repository) RemoveFilesFromIndex(ctx context.Context, filenames ...string) error {
107107
objectFormat, err := repo.GetObjectFormat()
108108
if err != nil {
109109
return err
@@ -118,7 +118,7 @@ func (repo *Repository) RemoveFilesFromIndex(filenames ...string) error {
118118
buffer.WriteString("0 blob " + objectFormat.EmptyObjectID().String() + "\t" + file + "\000")
119119
}
120120
}
121-
return cmd.Run(repo.Ctx, &RunOpts{
121+
return cmd.Run(ctx, &RunOpts{
122122
Dir: repo.Path,
123123
Stdin: bytes.NewReader(buffer.Bytes()),
124124
Stdout: stdout,
@@ -133,7 +133,7 @@ type IndexObjectInfo struct {
133133
}
134134

135135
// AddObjectsToIndex adds the provided object hashes to the index at the provided filenames
136-
func (repo *Repository) AddObjectsToIndex(objects ...IndexObjectInfo) error {
136+
func (repo *Repository) AddObjectsToIndex(ctx context.Context, objects ...IndexObjectInfo) error {
137137
cmd := NewCommand("update-index", "--add", "--replace", "-z", "--index-info")
138138
stdout := new(bytes.Buffer)
139139
stderr := new(bytes.Buffer)
@@ -142,7 +142,7 @@ func (repo *Repository) AddObjectsToIndex(objects ...IndexObjectInfo) error {
142142
// using format: mode SP type SP sha1 TAB path
143143
buffer.WriteString(object.Mode + " blob " + object.Object.String() + "\t" + object.Filename + "\000")
144144
}
145-
return cmd.Run(repo.Ctx, &RunOpts{
145+
return cmd.Run(ctx, &RunOpts{
146146
Dir: repo.Path,
147147
Stdin: bytes.NewReader(buffer.Bytes()),
148148
Stdout: stdout,
@@ -151,13 +151,13 @@ func (repo *Repository) AddObjectsToIndex(objects ...IndexObjectInfo) error {
151151
}
152152

153153
// AddObjectToIndex adds the provided object hash to the index at the provided filename
154-
func (repo *Repository) AddObjectToIndex(mode string, object ObjectID, filename string) error {
155-
return repo.AddObjectsToIndex(IndexObjectInfo{Mode: mode, Object: object, Filename: filename})
154+
func (repo *Repository) AddObjectToIndex(ctx context.Context, mode string, object ObjectID, filename string) error {
155+
return repo.AddObjectsToIndex(ctx, IndexObjectInfo{Mode: mode, Object: object, Filename: filename})
156156
}
157157

158158
// WriteTree writes the current index as a tree to the object db and returns its hash
159-
func (repo *Repository) WriteTree() (*Tree, error) {
160-
stdout, _, runErr := NewCommand("write-tree").RunStdString(repo.Ctx, &RunOpts{Dir: repo.Path})
159+
func (repo *Repository) WriteTree(ctx context.Context) (*Tree, error) {
160+
stdout, _, runErr := NewCommand("write-tree").RunStdString(ctx, &RunOpts{Dir: repo.Path})
161161
if runErr != nil {
162162
return nil, runErr
163163
}

routers/web/repo/setting/lfs.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ func LFSLocks(ctx *context.Context) {
174174
}
175175
ctx.Data["Lockables"] = lockables
176176

177-
filelist, err := gitRepo.LsFiles(filenames...)
177+
filelist, err := gitRepo.LsFiles(ctx, filenames...)
178178
if err != nil {
179179
log.Error("Unable to lsfiles in %s (%v)", tmpBasePath, err)
180180
ctx.ServerError("LFSLocks", err)

services/pull/patch.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -298,10 +298,10 @@ func AttemptThreeWayMerge(ctx context.Context, gitPath string, gitRepo *git.Repo
298298
}
299299

300300
// Add and remove files in one command, as this is slow with many files otherwise
301-
if err := gitRepo.RemoveFilesFromIndex(filesToRemove...); err != nil {
301+
if err := gitRepo.RemoveFilesFromIndex(ctx, filesToRemove...); err != nil {
302302
return false, nil, err
303303
}
304-
if err := gitRepo.AddObjectsToIndex(filesToAdd...); err != nil {
304+
if err := gitRepo.AddObjectsToIndex(ctx, filesToAdd...); err != nil {
305305
return false, nil, err
306306
}
307307

services/repository/contributors_graph.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ func GetContributorStats(ctx context.Context, cache cache.StringCache, repo *rep
111111
}
112112

113113
// getExtendedCommitStats return the list of *ExtendedCommitStats for the given revision
114-
func getExtendedCommitStats(repo *git.Repository, revision string /*, limit int */) ([]*ExtendedCommitStats, error) {
114+
func getExtendedCommitStats(ctx context.Context, repo *git.Repository, revision string /*, limit int */) ([]*ExtendedCommitStats, error) {
115115
baseCommit, err := repo.GetCommit(revision)
116116
if err != nil {
117117
return nil, err
@@ -131,7 +131,7 @@ func getExtendedCommitStats(repo *git.Repository, revision string /*, limit int
131131

132132
var extendedCommitStats []*ExtendedCommitStats
133133
stderr := new(strings.Builder)
134-
err = gitCmd.Run(repo.Ctx, &git.RunOpts{
134+
err = gitCmd.Run(ctx, &git.RunOpts{
135135
Dir: repo.Path,
136136
Stdout: stdoutWriter,
137137
Stderr: stderr,
@@ -212,7 +212,7 @@ func generateContributorStats(genDone chan struct{}, cache cache.StringCache, ca
212212
if len(revision) == 0 {
213213
revision = repo.DefaultBranch
214214
}
215-
extendedCommitStats, err := getExtendedCommitStats(gitRepo, revision)
215+
extendedCommitStats, err := getExtendedCommitStats(ctx, gitRepo, revision)
216216
if err != nil {
217217
_ = cache.PutJSON(cacheKey, fmt.Errorf("ExtendedCommitStats: %w", err), contributorStatsCacheTimeout)
218218
return

services/wiki/wiki.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ func updateWikiPage(ctx context.Context, doer *user_model.User, repo *repo_model
163163
}
164164

165165
if isOldWikiExist {
166-
err := gitRepo.RemoveFilesFromIndex(oldWikiPath)
166+
err := gitRepo.RemoveFilesFromIndex(ctx, oldWikiPath)
167167
if err != nil {
168168
log.Error("RemoveFilesFromIndex failed: %v", err)
169169
return err
@@ -179,12 +179,12 @@ func updateWikiPage(ctx context.Context, doer *user_model.User, repo *repo_model
179179
return err
180180
}
181181

182-
if err := gitRepo.AddObjectToIndex("100644", objectHash, newWikiPath); err != nil {
182+
if err := gitRepo.AddObjectToIndex(ctx, "100644", objectHash, newWikiPath); err != nil {
183183
log.Error("AddObjectToIndex failed: %v", err)
184184
return err
185185
}
186186

187-
tree, err := gitRepo.WriteTree()
187+
tree, err := gitRepo.WriteTree(ctx)
188188
if err != nil {
189189
log.Error("WriteTree failed: %v", err)
190190
return err
@@ -300,7 +300,7 @@ func DeleteWikiPage(ctx context.Context, doer *user_model.User, repo *repo_model
300300
return err
301301
}
302302
if found {
303-
err := gitRepo.RemoveFilesFromIndex(wikiPath)
303+
err := gitRepo.RemoveFilesFromIndex(ctx, wikiPath)
304304
if err != nil {
305305
return err
306306
}
@@ -310,7 +310,7 @@ func DeleteWikiPage(ctx context.Context, doer *user_model.User, repo *repo_model
310310

311311
// FIXME: The wiki doesn't have lfs support at present - if this changes need to check attributes here
312312

313-
tree, err := gitRepo.WriteTree()
313+
tree, err := gitRepo.WriteTree(ctx)
314314
if err != nil {
315315
return err
316316
}

0 commit comments

Comments
 (0)