Skip to content

Commit 5a85684

Browse files
authored
Fix bug when deleting a migrated branch (#32075)
After migrating a repository with pull request, the branch is missed and after the pull request merged, the branch cannot be deleted.
1 parent 4947bec commit 5a85684

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

services/repository/branch.go

+7-6
Original file line numberDiff line numberDiff line change
@@ -483,22 +483,23 @@ func DeleteBranch(ctx context.Context, doer *user_model.User, repo *repo_model.R
483483
}
484484

485485
rawBranch, err := git_model.GetBranch(ctx, repo.ID, branchName)
486-
if err != nil {
486+
if err != nil && !git_model.IsErrBranchNotExist(err) {
487487
return fmt.Errorf("GetBranch: %vc", err)
488488
}
489489

490-
if rawBranch.IsDeleted {
491-
return nil
492-
}
490+
// database branch record not exist or it's a deleted branch
491+
notExist := git_model.IsErrBranchNotExist(err) || rawBranch.IsDeleted
493492

494493
commit, err := gitRepo.GetBranchCommit(branchName)
495494
if err != nil {
496495
return err
497496
}
498497

499498
if err := db.WithTx(ctx, func(ctx context.Context) error {
500-
if err := git_model.AddDeletedBranch(ctx, repo.ID, branchName, doer.ID); err != nil {
501-
return err
499+
if !notExist {
500+
if err := git_model.AddDeletedBranch(ctx, repo.ID, branchName, doer.ID); err != nil {
501+
return err
502+
}
502503
}
503504

504505
return gitRepo.DeleteBranch(branchName, git.DeleteBranchOptions{

0 commit comments

Comments
 (0)