Skip to content

Commit 68f27f9

Browse files
committed
Fix deleted branch isn't removed when push the branch again (go-gitea#9516)
1 parent a3928fd commit 68f27f9

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

models/branches.go

+6
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,12 @@ func (deletedBranch *DeletedBranch) LoadUser() {
480480
deletedBranch.DeletedBy = user
481481
}
482482

483+
// RemoveDeletedBranch removes all deleted branches
484+
func RemoveDeletedBranch(repoID int64, branch string) error {
485+
_, err := x.Where("repo_id=? AND name=?", repoID, branch).Delete(new(DeletedBranch))
486+
return err
487+
}
488+
483489
// RemoveOldDeletedBranches removes old deleted branches
484490
func RemoveOldDeletedBranches() {
485491
log.Trace("Doing: DeletedBranchesCleanup")

modules/repofiles/update.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -453,10 +453,15 @@ func PushUpdate(repo *models.Repository, branch string, opts models.PushUpdateOp
453453
}
454454
}
455455
} else if !isDelRef {
456+
branchName := opts.RefFullName[len(git.BranchPrefix):]
457+
if err = models.RemoveDeletedBranch(repo.ID, branchName); err != nil {
458+
log.Error("models.RemoveDeletedBranch %s/%s failed: %v", repo.ID, branchName, err)
459+
}
460+
456461
// If is branch reference
457462

458463
// Clear cache for branch commit count
459-
cache.Remove(repo.GetCommitsCountCacheKey(opts.RefFullName[len(git.BranchPrefix):], true))
464+
cache.Remove(repo.GetCommitsCountCacheKey(branchName, true))
460465

461466
newCommit, err := gitRepo.GetCommit(opts.NewCommitID)
462467
if err != nil {

0 commit comments

Comments
 (0)