@@ -14,7 +14,7 @@ import (
1414 repo_model "code.gitea.io/gitea/models/repo"
1515 "code.gitea.io/gitea/models/unit"
1616 user_model "code.gitea.io/gitea/models/user"
17- "code.gitea.io/gitea/modules/git "
17+ "code.gitea.io/gitea/modules/gitrepo "
1818 "code.gitea.io/gitea/modules/globallock"
1919 "code.gitea.io/gitea/modules/log"
2020 "code.gitea.io/gitea/modules/repository"
@@ -34,17 +34,18 @@ func Update(ctx context.Context, pr *issues_model.PullRequest, doer *user_model.
3434 }
3535 defer releaser ()
3636
37+ if err := pr .LoadBaseRepo (ctx ); err != nil {
38+ log .Error ("unable to load BaseRepo for %-v during update-by-merge: %v" , pr , err )
39+ return fmt .Errorf ("unable to load BaseRepo for PR[%d] during update-by-merge: %w" , pr .ID , err )
40+ }
41+
3742 diffCount , err := GetDiverging (ctx , pr )
3843 if err != nil {
3944 return err
4045 } else if diffCount .Behind == 0 {
4146 return fmt .Errorf ("HeadBranch of PR %d is up to date" , pr .Index )
4247 }
4348
44- if err := pr .LoadBaseRepo (ctx ); err != nil {
45- log .Error ("unable to load BaseRepo for %-v during update-by-merge: %v" , pr , err )
46- return fmt .Errorf ("unable to load BaseRepo for PR[%d] during update-by-merge: %w" , pr .ID , err )
47- }
4849 if err := pr .LoadHeadRepo (ctx ); err != nil {
4950 log .Error ("unable to load HeadRepo for PR %-v during update-by-merge: %v" , pr , err )
5051 return fmt .Errorf ("unable to load HeadRepo for PR[%d] during update-by-merge: %w" , pr .ID , err )
@@ -173,17 +174,12 @@ func IsUserAllowedToUpdate(ctx context.Context, pull *issues_model.PullRequest,
173174}
174175
175176// GetDiverging determines how many commits a PR is ahead or behind the PR base branch
176- func GetDiverging (ctx context.Context , pr * issues_model.PullRequest ) (* git .DivergeObject , error ) {
177+ func GetDiverging (ctx context.Context , pr * issues_model.PullRequest ) (* gitrepo .DivergeObject , error ) {
177178 log .Trace ("GetDiverging[%-v]: compare commits" , pr )
178- prCtx , cancel , err := createTemporaryRepoForPR (ctx , pr )
179- if err != nil {
180- if ! git_model .IsErrBranchNotExist (err ) {
181- log .Error ("CreateTemporaryRepoForPR %-v: %v" , pr , err )
182- }
179+
180+ if err := pr .LoadBaseRepo (ctx ); err != nil {
183181 return nil , err
184182 }
185- defer cancel ()
186183
187- diff , err := git .GetDivergingCommits (ctx , prCtx .tmpBasePath , baseBranch , trackingBranch )
188- return & diff , err
184+ return gitrepo .GetDivergingCommits (ctx , pr .BaseRepo , baseBranch , pr .GetGitHeadRefName ())
189185}
0 commit comments