Skip to content

Commit 4ae014b

Browse files
authored
Merge branch 'main' into feature/support-title-body-params
2 parents 025c529 + 224aa64 commit 4ae014b

File tree

12 files changed

+126
-87
lines changed

12 files changed

+126
-87
lines changed

models/issues/pull.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -649,12 +649,6 @@ func GetAllUnmergedAgitPullRequestByPoster(ctx context.Context, uid int64) ([]*P
649649
return pulls, err
650650
}
651651

652-
// Update updates all fields of pull request.
653-
func (pr *PullRequest) Update(ctx context.Context) error {
654-
_, err := db.GetEngine(ctx).ID(pr.ID).AllCols().Update(pr)
655-
return err
656-
}
657-
658652
// UpdateCols updates specific fields of pull request.
659653
func (pr *PullRequest) UpdateCols(ctx context.Context, cols ...string) error {
660654
_, err := db.GetEngine(ctx).ID(pr.ID).Cols(cols...).Update(pr)

models/issues/pull_test.go

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -248,19 +248,6 @@ func TestGetPullRequestByIssueID(t *testing.T) {
248248
assert.True(t, issues_model.IsErrPullRequestNotExist(err))
249249
}
250250

251-
func TestPullRequest_Update(t *testing.T) {
252-
assert.NoError(t, unittest.PrepareTestDatabase())
253-
pr := unittest.AssertExistsAndLoadBean(t, &issues_model.PullRequest{ID: 1})
254-
pr.BaseBranch = "baseBranch"
255-
pr.HeadBranch = "headBranch"
256-
pr.Update(db.DefaultContext)
257-
258-
pr = unittest.AssertExistsAndLoadBean(t, &issues_model.PullRequest{ID: pr.ID})
259-
assert.Equal(t, "baseBranch", pr.BaseBranch)
260-
assert.Equal(t, "headBranch", pr.HeadBranch)
261-
unittest.CheckConsistencyFor(t, pr)
262-
}
263-
264251
func TestPullRequest_UpdateCols(t *testing.T) {
265252
assert.NoError(t, unittest.PrepareTestDatabase())
266253
pr := &issues_model.PullRequest{

models/repo/release.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ func AddReleaseAttachments(ctx context.Context, releaseID int64, attachmentUUIDs
180180
}
181181
attachments[i].ReleaseID = releaseID
182182
// No assign value could be 0, so ignore AllCols().
183-
if _, err = db.GetEngine(ctx).ID(attachments[i].ID).Update(attachments[i]); err != nil {
183+
if _, err = db.GetEngine(ctx).ID(attachments[i].ID).Cols("release_id").Update(attachments[i]); err != nil {
184184
return fmt.Errorf("update attachment [%d]: %w", attachments[i].ID, err)
185185
}
186186
}

models/repo/update.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,18 @@ func UpdateRepositoryUpdatedTime(ctx context.Context, repoID int64, updateTime t
4242

4343
// UpdateRepositoryColsWithAutoTime updates repository's columns
4444
func UpdateRepositoryColsWithAutoTime(ctx context.Context, repo *Repository, cols ...string) error {
45+
if len(cols) == 0 {
46+
return nil
47+
}
4548
_, err := db.GetEngine(ctx).ID(repo.ID).Cols(cols...).Update(repo)
4649
return err
4750
}
4851

4952
// UpdateRepositoryColsNoAutoTime updates repository's columns and but applies time change automatically
5053
func UpdateRepositoryColsNoAutoTime(ctx context.Context, repo *Repository, cols ...string) error {
54+
if len(cols) == 0 {
55+
return nil
56+
}
5157
_, err := db.GetEngine(ctx).ID(repo.ID).Cols(cols...).NoAutoTime().Update(repo)
5258
return err
5359
}

modules/git/commit_info_nogogit.go

Lines changed: 5 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ package git
77

88
import (
99
"context"
10-
"fmt"
11-
"io"
1210
"path"
1311
"sort"
1412

@@ -124,48 +122,25 @@ func GetLastCommitForPaths(ctx context.Context, commit *Commit, treePath string,
124122
return nil, err
125123
}
126124

127-
batchStdinWriter, batchReader, cancel, err := commit.repo.CatFileBatch(ctx)
128-
if err != nil {
129-
return nil, err
130-
}
131-
defer cancel()
132-
133125
commitsMap := map[string]*Commit{}
134126
commitsMap[commit.ID.String()] = commit
135127

136128
commitCommits := map[string]*Commit{}
137129
for path, commitID := range revs {
138-
c, ok := commitsMap[commitID]
139-
if ok {
140-
commitCommits[path] = c
130+
if len(commitID) == 0 {
141131
continue
142132
}
143133

144-
if len(commitID) == 0 {
134+
c, ok := commitsMap[commitID]
135+
if ok {
136+
commitCommits[path] = c
145137
continue
146138
}
147139

148-
_, err := batchStdinWriter.Write([]byte(commitID + "\n"))
149-
if err != nil {
150-
return nil, err
151-
}
152-
_, typ, size, err := ReadBatchLine(batchReader)
140+
c, err := commit.repo.GetCommit(commitID) // Ensure the commit exists in the repository
153141
if err != nil {
154142
return nil, err
155143
}
156-
if typ != "commit" {
157-
if err := DiscardFull(batchReader, size+1); err != nil {
158-
return nil, err
159-
}
160-
return nil, fmt.Errorf("unexpected type: %s for commit id: %s", typ, commitID)
161-
}
162-
c, err = CommitFromReader(commit.repo, MustIDFromString(commitID), io.LimitReader(batchReader, size))
163-
if err != nil {
164-
return nil, err
165-
}
166-
if _, err := batchReader.Discard(1); err != nil {
167-
return nil, err
168-
}
169144
commitCommits[path] = c
170145
}
171146

routers/web/repo/wiki_test.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,12 @@ func TestDefaultWikiBranch(t *testing.T) {
245245
assert.NoError(t, wiki_service.ChangeDefaultWikiBranch(db.DefaultContext, repoWithNoWiki, "main"))
246246

247247
// repo with wiki
248-
assert.NoError(t, repo_model.UpdateRepositoryColsNoAutoTime(db.DefaultContext, &repo_model.Repository{ID: 1, DefaultWikiBranch: "wrong-branch"}))
248+
assert.NoError(t, repo_model.UpdateRepositoryColsNoAutoTime(
249+
db.DefaultContext,
250+
&repo_model.Repository{ID: 1, DefaultWikiBranch: "wrong-branch"},
251+
"default_wiki_branch",
252+
),
253+
)
249254

250255
ctx, _ := contexttest.MockContext(t, "user2/repo1/wiki")
251256
ctx.SetPathParam("*", "Home")

services/repository/adopt.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,8 +196,13 @@ func adoptRepository(ctx context.Context, repo *repo_model.Repository, defaultBr
196196
return fmt.Errorf("setDefaultBranch: %w", err)
197197
}
198198
}
199-
if err = updateRepository(ctx, repo, false); err != nil {
200-
return fmt.Errorf("updateRepository: %w", err)
199+
200+
if err = repo_model.UpdateRepositoryColsNoAutoTime(ctx, repo, "is_empty", "default_branch"); err != nil {
201+
return fmt.Errorf("UpdateRepositoryCols: %w", err)
202+
}
203+
204+
if err = repo_module.UpdateRepoSize(ctx, repo); err != nil {
205+
log.Error("Failed to update size for repository: %v", err)
201206
}
202207

203208
return nil

services/repository/create.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,10 +191,14 @@ func initRepository(ctx context.Context, u *user_model.User, repo *repo_model.Re
191191
}
192192
}
193193

194-
if err = UpdateRepository(ctx, repo, false); err != nil {
194+
if err = repo_model.UpdateRepositoryColsNoAutoTime(ctx, repo, "is_empty", "default_branch", "default_wiki_branch"); err != nil {
195195
return fmt.Errorf("updateRepository: %w", err)
196196
}
197197

198+
if err = repo_module.UpdateRepoSize(ctx, repo); err != nil {
199+
log.Error("Failed to update size for repository: %v", err)
200+
}
201+
198202
return nil
199203
}
200204

services/repository/fork.go

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ func ForkRepository(ctx context.Context, doer, owner *user_model.User, opts Fork
209209

210210
// ConvertForkToNormalRepository convert the provided repo from a forked repo to normal repo
211211
func ConvertForkToNormalRepository(ctx context.Context, repo *repo_model.Repository) error {
212-
err := db.WithTx(ctx, func(ctx context.Context) error {
212+
return db.WithTx(ctx, func(ctx context.Context) error {
213213
repo, err := repo_model.GetRepositoryByID(ctx, repo.ID)
214214
if err != nil {
215215
return err
@@ -226,16 +226,8 @@ func ConvertForkToNormalRepository(ctx context.Context, repo *repo_model.Reposit
226226

227227
repo.IsFork = false
228228
repo.ForkID = 0
229-
230-
if err := updateRepository(ctx, repo, false); err != nil {
231-
log.Error("Unable to update repository %-v whilst converting from fork. Error: %v", repo, err)
232-
return err
233-
}
234-
235-
return nil
229+
return repo_model.UpdateRepositoryColsNoAutoTime(ctx, repo, "is_fork", "fork_id")
236230
})
237-
238-
return err
239231
}
240232

241233
type findForksOptions struct {

services/repository/generate.go

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -253,43 +253,35 @@ func generateRepoCommit(ctx context.Context, repo, templateRepo, generateRepo *r
253253
return initRepoCommit(ctx, tmpDir, repo, repo.Owner, defaultBranch)
254254
}
255255

256-
func generateGitContent(ctx context.Context, repo, templateRepo, generateRepo *repo_model.Repository) (err error) {
257-
tmpDir, cleanup, err := setting.AppDataTempDir("git-repo-content").MkdirTempRandom("gitea-" + repo.Name)
256+
// GenerateGitContent generates git content from a template repository
257+
func GenerateGitContent(ctx context.Context, templateRepo, generateRepo *repo_model.Repository) (err error) {
258+
tmpDir, cleanup, err := setting.AppDataTempDir("git-repo-content").MkdirTempRandom("gitea-" + generateRepo.Name)
258259
if err != nil {
259-
return fmt.Errorf("failed to create temp dir for repository %s: %w", repo.FullName(), err)
260+
return fmt.Errorf("failed to create temp dir for repository %s: %w", generateRepo.FullName(), err)
260261
}
261262
defer cleanup()
262263

263-
if err = generateRepoCommit(ctx, repo, templateRepo, generateRepo, tmpDir); err != nil {
264+
if err = generateRepoCommit(ctx, generateRepo, templateRepo, generateRepo, tmpDir); err != nil {
264265
return fmt.Errorf("generateRepoCommit: %w", err)
265266
}
266267

267268
// re-fetch repo
268-
if repo, err = repo_model.GetRepositoryByID(ctx, repo.ID); err != nil {
269+
if generateRepo, err = repo_model.GetRepositoryByID(ctx, generateRepo.ID); err != nil {
269270
return fmt.Errorf("getRepositoryByID: %w", err)
270271
}
271272

272273
// if there was no default branch supplied when generating the repo, use the default one from the template
273-
if strings.TrimSpace(repo.DefaultBranch) == "" {
274-
repo.DefaultBranch = templateRepo.DefaultBranch
274+
if strings.TrimSpace(generateRepo.DefaultBranch) == "" {
275+
generateRepo.DefaultBranch = templateRepo.DefaultBranch
275276
}
276277

277-
if err = gitrepo.SetDefaultBranch(ctx, repo, repo.DefaultBranch); err != nil {
278+
if err = gitrepo.SetDefaultBranch(ctx, generateRepo, generateRepo.DefaultBranch); err != nil {
278279
return fmt.Errorf("setDefaultBranch: %w", err)
279280
}
280-
if err = UpdateRepository(ctx, repo, false); err != nil {
281+
if err = repo_model.UpdateRepositoryColsNoAutoTime(ctx, generateRepo, "default_branch"); err != nil {
281282
return fmt.Errorf("updateRepository: %w", err)
282283
}
283284

284-
return nil
285-
}
286-
287-
// GenerateGitContent generates git content from a template repository
288-
func GenerateGitContent(ctx context.Context, templateRepo, generateRepo *repo_model.Repository) error {
289-
if err := generateGitContent(ctx, generateRepo, templateRepo, generateRepo); err != nil {
290-
return err
291-
}
292-
293285
if err := repo_module.UpdateRepoSize(ctx, generateRepo); err != nil {
294286
return fmt.Errorf("failed to update size for repository: %w", err)
295287
}

0 commit comments

Comments
 (0)