Fix loadOneBranch panic (#29938)
Try to fix #29936 Far from ideal, but still better than panic. (cherry picked from commit 21151474e36eecc5b808963b924cd27ec34e0608)
This commit is contained in:
parent
165182a92d
commit
0710de9d0d
|
@ -283,7 +283,7 @@ type DivergeObject struct {
|
||||||
// GetDivergingCommits returns the number of commits a targetBranch is ahead or behind a baseBranch
|
// GetDivergingCommits returns the number of commits a targetBranch is ahead or behind a baseBranch
|
||||||
func GetDivergingCommits(ctx context.Context, repoPath, baseBranch, targetBranch string) (do DivergeObject, err error) {
|
func GetDivergingCommits(ctx context.Context, repoPath, baseBranch, targetBranch string) (do DivergeObject, err error) {
|
||||||
cmd := NewCommand(ctx, "rev-list", "--count", "--left-right").
|
cmd := NewCommand(ctx, "rev-list", "--count", "--left-right").
|
||||||
AddDynamicArguments(baseBranch + "..." + targetBranch)
|
AddDynamicArguments(baseBranch + "..." + targetBranch).AddArguments("--")
|
||||||
stdout, _, err := cmd.RunStdString(&RunOpts{Dir: repoPath})
|
stdout, _, err := cmd.RunStdString(&RunOpts{Dir: repoPath})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return do, err
|
return do, err
|
||||||
|
|
|
@ -127,10 +127,7 @@ func loadOneBranch(ctx context.Context, repo *repo_model.Repository, dbBranch *g
|
||||||
p := protectedBranches.GetFirstMatched(branchName)
|
p := protectedBranches.GetFirstMatched(branchName)
|
||||||
isProtected := p != nil
|
isProtected := p != nil
|
||||||
|
|
||||||
divergence := &git.DivergeObject{
|
var divergence *git.DivergeObject
|
||||||
Ahead: -1,
|
|
||||||
Behind: -1,
|
|
||||||
}
|
|
||||||
|
|
||||||
// it's not default branch
|
// it's not default branch
|
||||||
if repo.DefaultBranch != dbBranch.Name && !dbBranch.IsDeleted {
|
if repo.DefaultBranch != dbBranch.Name && !dbBranch.IsDeleted {
|
||||||
|
@ -141,6 +138,11 @@ func loadOneBranch(ctx context.Context, repo *repo_model.Repository, dbBranch *g
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if divergence == nil {
|
||||||
|
// tolerate the error that we cannot get divergence
|
||||||
|
divergence = &git.DivergeObject{Ahead: -1, Behind: -1}
|
||||||
|
}
|
||||||
|
|
||||||
pr, err := issues_model.GetLatestPullRequestByHeadInfo(ctx, repo.ID, branchName)
|
pr, err := issues_model.GetLatestPullRequestByHeadInfo(ctx, repo.ID, branchName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("GetLatestPullRequestByHeadInfo: %v", err)
|
return nil, fmt.Errorf("GetLatestPullRequestByHeadInfo: %v", err)
|
||||||
|
|
Loading…
Reference in a new issue