Bläddra i källkod

Fix loadOneBranch panic (#29938) (#29939)

Backport #29938

Try to fix #29936

Far from ideal, but still better than panic.
tags/v1.21.9
wxiaoguang 2 månader sedan
förälder
incheckning
b4a6c6fd7a
Inget konto är kopplat till bidragsgivarens mejladress
2 ändrade filer med 7 tillägg och 5 borttagningar
  1. 1
    1
      modules/git/repo.go
  2. 6
    4
      services/repository/branch.go

+ 1
- 1
modules/git/repo.go Visa fil

@@ -248,7 +248,7 @@ type DivergeObject struct {
// 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) {
cmd := NewCommand(ctx, "rev-list", "--count", "--left-right").
AddDynamicArguments(baseBranch + "..." + targetBranch)
AddDynamicArguments(baseBranch + "..." + targetBranch).AddArguments("--")
stdout, _, err := cmd.RunStdString(&RunOpts{Dir: repoPath})
if err != nil {
return do, err

+ 6
- 4
services/repository/branch.go Visa fil

@@ -128,10 +128,7 @@ func loadOneBranch(ctx context.Context, repo *repo_model.Repository, dbBranch *g
p := protectedBranches.GetFirstMatched(branchName)
isProtected := p != nil

divergence := &git.DivergeObject{
Ahead: -1,
Behind: -1,
}
var divergence *git.DivergeObject

// it's not default branch
if repo.DefaultBranch != dbBranch.Name && !dbBranch.IsDeleted {
@@ -142,6 +139,11 @@ func loadOneBranch(ctx context.Context, repo *repo_model.Repository, dbBranch *g
}
}

if divergence == nil {
// tolerate error that we can't get divergence
divergence = &git.DivergeObject{Ahead: -1, Behind: -1}
}

pr, err := issues_model.GetLatestPullRequestByHeadInfo(repo.ID, branchName)
if err != nil {
return nil, fmt.Errorf("GetLatestPullRequestByHeadInfo: %v", err)

Laddar…
Avbryt
Spara