|
|
|
@ -483,13 +483,12 @@ func DeleteBranch(ctx context.Context, doer *user_model.User, repo *repo_model.R
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
rawBranch, err := git_model.GetBranch(ctx, repo.ID, branchName)
|
|
|
|
|
if err != nil {
|
|
|
|
|
if err != nil && !git_model.IsErrBranchNotExist(err) {
|
|
|
|
|
return fmt.Errorf("GetBranch: %vc", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if rawBranch.IsDeleted {
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
// database branch record not exist or it's a deleted branch
|
|
|
|
|
notExist := git_model.IsErrBranchNotExist(err) || rawBranch.IsDeleted
|
|
|
|
|
|
|
|
|
|
commit, err := gitRepo.GetBranchCommit(branchName)
|
|
|
|
|
if err != nil {
|
|
|
|
@ -497,8 +496,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 := git_model.AddDeletedBranch(ctx, repo.ID, branchName, doer.ID); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
if !notExist {
|
|
|
|
|
if err := git_model.AddDeletedBranch(ctx, repo.ID, branchName, doer.ID); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return gitRepo.DeleteBranch(branchName, git.DeleteBranchOptions{
|
|
|
|
|