Skip to content

Commit be94f7b

Browse files
GiteaBotwxiaoguang
andauthored
Ignore trivial errors when updating push data (#33864) (#33887)
Backport #33864 by wxiaoguang Fix #23213 Co-authored-by: wxiaoguang <[email protected]>
1 parent 9054a66 commit be94f7b

File tree

2 files changed

+20
-18
lines changed

2 files changed

+20
-18
lines changed

services/gitdiff/gitdiff.go

-2
Original file line numberDiff line numberDiff line change
@@ -1377,10 +1377,8 @@ func GetWhitespaceFlag(whitespaceBehavior string) git.TrustedCmdArgs {
13771377
"ignore-eol": {"--ignore-space-at-eol"},
13781378
"show-all": nil,
13791379
}
1380-
13811380
if flag, ok := whitespaceFlags[whitespaceBehavior]; ok {
13821381
return flag
13831382
}
1384-
log.Warn("unknown whitespace behavior: %q, default to 'show-all'", whitespaceBehavior)
13851383
return nil
13861384
}

services/repository/push.go

+20-16
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
repo_module "code.gitea.io/gitea/modules/repository"
2424
"code.gitea.io/gitea/modules/setting"
2525
"code.gitea.io/gitea/modules/timeutil"
26+
"code.gitea.io/gitea/modules/util"
2627
issue_service "code.gitea.io/gitea/services/issue"
2728
notify_service "code.gitea.io/gitea/services/notify"
2829
pull_service "code.gitea.io/gitea/services/pull"
@@ -133,23 +134,26 @@ func pushUpdates(optsList []*repo_module.PushUpdateOptions) error {
133134
} else { // is new tag
134135
newCommit, err := gitRepo.GetCommit(opts.NewCommitID)
135136
if err != nil {
136-
return fmt.Errorf("gitRepo.GetCommit(%s) in %s/%s[%d]: %w", opts.NewCommitID, repo.OwnerName, repo.Name, repo.ID, err)
137+
// in case there is dirty data, for example, the "github.com/git/git" repository has tags pointing to non-existing commits
138+
if !errors.Is(err, util.ErrNotExist) {
139+
log.Error("Unable to get tag commit: gitRepo.GetCommit(%s) in %s/%s[%d]: %v", opts.NewCommitID, repo.OwnerName, repo.Name, repo.ID, err)
140+
}
141+
} else {
142+
commits := repo_module.NewPushCommits()
143+
commits.HeadCommit = repo_module.CommitToPushCommit(newCommit)
144+
commits.CompareURL = repo.ComposeCompareURL(objectFormat.EmptyObjectID().String(), opts.NewCommitID)
145+
146+
notify_service.PushCommits(
147+
ctx, pusher, repo,
148+
&repo_module.PushUpdateOptions{
149+
RefFullName: opts.RefFullName,
150+
OldCommitID: objectFormat.EmptyObjectID().String(),
151+
NewCommitID: opts.NewCommitID,
152+
}, commits)
153+
154+
addTags = append(addTags, tagName)
155+
notify_service.CreateRef(ctx, pusher, repo, opts.RefFullName, opts.NewCommitID)
137156
}
138-
139-
commits := repo_module.NewPushCommits()
140-
commits.HeadCommit = repo_module.CommitToPushCommit(newCommit)
141-
commits.CompareURL = repo.ComposeCompareURL(objectFormat.EmptyObjectID().String(), opts.NewCommitID)
142-
143-
notify_service.PushCommits(
144-
ctx, pusher, repo,
145-
&repo_module.PushUpdateOptions{
146-
RefFullName: opts.RefFullName,
147-
OldCommitID: objectFormat.EmptyObjectID().String(),
148-
NewCommitID: opts.NewCommitID,
149-
}, commits)
150-
151-
addTags = append(addTags, tagName)
152-
notify_service.CreateRef(ctx, pusher, repo, opts.RefFullName, opts.NewCommitID)
153157
}
154158
} else if opts.RefFullName.IsBranch() {
155159
if pusher == nil || pusher.ID != opts.PusherID {

0 commit comments

Comments
 (0)