Backport #33319 Fix #33271 The only conflict is `reqctx` in `services/repository/merge_upstream.go`, which could keep using `context.Context` in 1.23
This commit is contained in:
parent
e72d001708
commit
8f45a11919
6 changed files with 108 additions and 24 deletions
|
@ -638,9 +638,12 @@ func SetRepoDefaultBranch(ctx context.Context, repo *repo_model.Repository, gitR
|
|||
}
|
||||
|
||||
// BranchDivergingInfo contains the information about the divergence of a head branch to the base branch.
|
||||
// This struct is also used in templates, so it needs to search for all references before changing it.
|
||||
type BranchDivergingInfo struct {
|
||||
// whether the base branch contains new commits which are not in the head branch
|
||||
BaseHasNewCommits bool
|
||||
|
||||
// behind/after are number of commits that the head branch is behind/after the base branch, it's 0 if it's unable to calculate.
|
||||
// there could be a case that BaseHasNewCommits=true while the behind/after are both 0 (unable to calculate).
|
||||
HeadCommitsBehind int
|
||||
HeadCommitsAhead int
|
||||
}
|
||||
|
@ -651,11 +654,20 @@ func GetBranchDivergingInfo(ctx context.Context, baseRepo *repo_model.Repository
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if headGitBranch.IsDeleted {
|
||||
return nil, git_model.ErrBranchNotExist{
|
||||
BranchName: headBranch,
|
||||
}
|
||||
}
|
||||
baseGitBranch, err := git_model.GetBranch(ctx, baseRepo.ID, baseBranch)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if baseGitBranch.IsDeleted {
|
||||
return nil, git_model.ErrBranchNotExist{
|
||||
BranchName: baseBranch,
|
||||
}
|
||||
}
|
||||
|
||||
info := &BranchDivergingInfo{}
|
||||
if headGitBranch.CommitID == baseGitBranch.CommitID {
|
||||
|
@ -692,5 +704,6 @@ func GetBranchDivergingInfo(ctx context.Context, baseRepo *repo_model.Repository
|
|||
}
|
||||
|
||||
info.HeadCommitsBehind, info.HeadCommitsAhead = diff.Behind, diff.Ahead
|
||||
info.BaseHasNewCommits = info.HeadCommitsBehind > 0
|
||||
return info, nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue