Skip to content

Commit cdac263

Browse files
GiteaBotlunny
andauthored
Only git operations should update last changed of a repository (go-gitea#34388) (go-gitea#34427)
Backport go-gitea#34388 by @lunny Try to fix go-gitea#32046 Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
1 parent a5c7df7 commit cdac263

File tree

19 files changed

+28
-33
lines changed

19 files changed

+28
-33
lines changed

models/actions/run.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ func (run *ActionRun) IsSchedule() bool {
171171

172172
func updateRepoRunsNumbers(ctx context.Context, repo *repo_model.Repository) error {
173173
_, err := db.GetEngine(ctx).ID(repo.ID).
174+
NoAutoTime().
174175
SetExpr("num_action_runs",
175176
builder.Select("count(*)").From("action_run").
176177
Where(builder.Eq{"repo_id": repo.ID}),

models/repo/transfer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ func CreatePendingRepositoryTransfer(ctx context.Context, doer, newOwner *user_m
249249
}
250250

251251
repo.Status = RepositoryPendingTransfer
252-
if err := UpdateRepositoryCols(ctx, repo, "status"); err != nil {
252+
if err := UpdateRepositoryColsNoAutoTime(ctx, repo, "status"); err != nil {
253253
return err
254254
}
255255

models/repo/update.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func UpdateRepositoryOwnerNames(ctx context.Context, ownerID int64, ownerName st
2525
}
2626
defer committer.Close()
2727

28-
if _, err := db.GetEngine(ctx).Where("owner_id = ?", ownerID).Cols("owner_name").Update(&Repository{
28+
if _, err := db.GetEngine(ctx).Where("owner_id = ?", ownerID).Cols("owner_name").NoAutoTime().Update(&Repository{
2929
OwnerName: ownerName,
3030
}); err != nil {
3131
return err
@@ -40,8 +40,8 @@ func UpdateRepositoryUpdatedTime(ctx context.Context, repoID int64, updateTime t
4040
return err
4141
}
4242

43-
// UpdateRepositoryCols updates repository's columns
44-
func UpdateRepositoryCols(ctx context.Context, repo *Repository, cols ...string) error {
43+
// UpdateRepositoryColsWithAutoTime updates repository's columns
44+
func UpdateRepositoryColsWithAutoTime(ctx context.Context, repo *Repository, cols ...string) error {
4545
_, err := db.GetEngine(ctx).ID(repo.ID).Cols(cols...).Update(repo)
4646
return err
4747
}

routers/private/hook_post_receive.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ func HookPostReceive(ctx *gitea_context.PrivateContext) {
220220
}
221221

222222
if len(cols) > 0 {
223-
if err := repo_model.UpdateRepositoryCols(ctx, repo, cols...); err != nil {
223+
if err := repo_model.UpdateRepositoryColsNoAutoTime(ctx, repo, cols...); err != nil {
224224
log.Error("Failed to Update: %s/%s Error: %v", ownerName, repoName, err)
225225
ctx.JSON(http.StatusInternalServerError, private.HookPostReceiveResult{
226226
Err: fmt.Sprintf("Failed to Update: %s/%s Error: %v", ownerName, repoName, err),

routers/web/repo/editor.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -376,12 +376,6 @@ func editFilePost(ctx *context.Context, form forms.EditRepoFileForm, isNewFile b
376376
}
377377
}
378378

379-
if ctx.Repo.Repository.IsEmpty {
380-
if isEmpty, err := ctx.Repo.GitRepo.IsEmpty(); err == nil && !isEmpty {
381-
_ = repo_model.UpdateRepositoryCols(ctx, &repo_model.Repository{ID: ctx.Repo.Repository.ID, IsEmpty: false}, "is_empty")
382-
}
383-
}
384-
385379
redirectForCommitChoice(ctx, form.CommitChoice, branchName, form.TreePath)
386380
}
387381

@@ -790,7 +784,7 @@ func UploadFilePost(ctx *context.Context) {
790784

791785
if ctx.Repo.Repository.IsEmpty {
792786
if isEmpty, err := ctx.Repo.GitRepo.IsEmpty(); err == nil && !isEmpty {
793-
_ = repo_model.UpdateRepositoryCols(ctx, &repo_model.Repository{ID: ctx.Repo.Repository.ID, IsEmpty: false}, "is_empty")
787+
_ = repo_model.UpdateRepositoryColsWithAutoTime(ctx, &repo_model.Repository{ID: ctx.Repo.Repository.ID, IsEmpty: false}, "is_empty")
794788
}
795789
}
796790

routers/web/repo/wiki.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ func findWikiRepoCommit(ctx *context.Context) (*git.Repository, *git.Commit, err
109109
return wikiGitRepo, nil, errBranch
110110
}
111111
// update the default branch in the database
112-
errDb := repo_model.UpdateRepositoryCols(ctx, &repo_model.Repository{ID: ctx.Repo.Repository.ID, DefaultWikiBranch: gitRepoDefaultBranch}, "default_wiki_branch")
112+
errDb := repo_model.UpdateRepositoryColsNoAutoTime(ctx, &repo_model.Repository{ID: ctx.Repo.Repository.ID, DefaultWikiBranch: gitRepoDefaultBranch}, "default_wiki_branch")
113113
if errDb != nil {
114114
return wikiGitRepo, nil, errDb
115115
}

routers/web/repo/wiki_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ 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.UpdateRepositoryCols(db.DefaultContext, &repo_model.Repository{ID: 1, DefaultWikiBranch: "wrong-branch"}))
248+
assert.NoError(t, repo_model.UpdateRepositoryColsNoAutoTime(db.DefaultContext, &repo_model.Repository{ID: 1, DefaultWikiBranch: "wrong-branch"}))
249249

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

services/migrations/gitea_uploader.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ func (g *GiteaLocalUploader) CreateRepo(ctx context.Context, repo *base.Reposito
148148
return err
149149
}
150150
g.repo.ObjectFormatName = objectFormat.Name()
151-
return repo_model.UpdateRepositoryCols(ctx, g.repo, "object_format_name")
151+
return repo_model.UpdateRepositoryColsNoAutoTime(ctx, g.repo, "object_format_name")
152152
}
153153

154154
// Close closes this uploader
@@ -975,7 +975,7 @@ func (g *GiteaLocalUploader) Finish(ctx context.Context) error {
975975
}
976976

977977
g.repo.Status = repo_model.RepositoryReady
978-
return repo_model.UpdateRepositoryCols(ctx, g.repo, "status")
978+
return repo_model.UpdateRepositoryColsWithAutoTime(ctx, g.repo, "status")
979979
}
980980

981981
func (g *GiteaLocalUploader) remapUser(ctx context.Context, source user_model.ExternalUserMigrated, target user_model.ExternalUserRemappable) error {

services/mirror/mirror_pull.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ func UpdateAddress(ctx context.Context, m *repo_model.Mirror, addr string) error
7171
// erase authentication before storing in database
7272
u.User = nil
7373
m.Repo.OriginalURL = u.String()
74-
return repo_model.UpdateRepositoryCols(ctx, m.Repo, "original_url")
74+
return repo_model.UpdateRepositoryColsNoAutoTime(ctx, m.Repo, "original_url")
7575
}
7676

7777
// mirrorSyncResult contains information of a updated reference.
@@ -653,7 +653,7 @@ func checkAndUpdateEmptyRepository(ctx context.Context, m *repo_model.Mirror, re
653653
}
654654
m.Repo.IsEmpty = false
655655
// Update the is empty and default_branch columns
656-
if err := repo_model.UpdateRepositoryCols(ctx, m.Repo, "default_branch", "is_empty"); err != nil {
656+
if err := repo_model.UpdateRepositoryColsWithAutoTime(ctx, m.Repo, "default_branch", "is_empty"); err != nil {
657657
log.Error("Failed to update default branch of repository %-v. Error: %v", m.Repo, err)
658658
desc := fmt.Sprintf("Failed to update default branch of repository '%s': %v", m.Repo.RepoPath(), err)
659659
if err = system_model.CreateRepositoryNotice(desc); err != nil {

services/repository/adopt.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ func AdoptRepository(ctx context.Context, doer, owner *user_model.User, opts Cre
100100

101101
// 4 - update repository status
102102
repo.Status = repo_model.RepositoryReady
103-
if err = repo_model.UpdateRepositoryCols(ctx, repo, "status"); err != nil {
103+
if err = repo_model.UpdateRepositoryColsWithAutoTime(ctx, repo, "status"); err != nil {
104104
return nil, fmt.Errorf("UpdateRepositoryCols: %w", err)
105105
}
106106

0 commit comments

Comments
 (0)