mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-01 15:19:09 +01:00
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.
(cherry picked from commit 5a8568459d22e57cac506465463660526ca6a08f)
Conflicts:
services/repository/branch.go
conflict because of [GITEA] Fix typo in formatting error e71b5a038e
This commit is contained in:
parent
5ccf79d05c
commit
b496317b5a
1 changed files with 7 additions and 6 deletions
|
@ -430,13 +430,12 @@ func DeleteBranch(ctx context.Context, doer *user_model.User, repo *repo_model.R
|
||||||
}
|
}
|
||||||
|
|
||||||
rawBranch, err := git_model.GetBranch(ctx, repo.ID, branchName)
|
rawBranch, err := git_model.GetBranch(ctx, repo.ID, branchName)
|
||||||
if err != nil {
|
if err != nil && !git_model.IsErrBranchNotExist(err) {
|
||||||
return fmt.Errorf("GetBranch: %v", err)
|
return fmt.Errorf("GetBranch: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if rawBranch.IsDeleted {
|
// database branch record not exist or it's a deleted branch
|
||||||
return nil
|
notExist := git_model.IsErrBranchNotExist(err) || rawBranch.IsDeleted
|
||||||
}
|
|
||||||
|
|
||||||
commit, err := gitRepo.GetBranchCommit(branchName)
|
commit, err := gitRepo.GetBranchCommit(branchName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -444,8 +443,10 @@ func DeleteBranch(ctx context.Context, doer *user_model.User, repo *repo_model.R
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := db.WithTx(ctx, func(ctx context.Context) error {
|
if err := db.WithTx(ctx, func(ctx context.Context) error {
|
||||||
if err := git_model.AddDeletedBranch(ctx, repo.ID, branchName, doer.ID); err != nil {
|
if !notExist {
|
||||||
return err
|
if err := git_model.AddDeletedBranch(ctx, repo.ID, branchName, doer.ID); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return gitRepo.DeleteBranch(branchName, git.DeleteBranchOptions{
|
return gitRepo.DeleteBranch(branchName, git.DeleteBranchOptions{
|
||||||
|
|
Loading…
Reference in a new issue