Skip to content

Commit 3bcf2e5

Browse files
6543zeripath
andauthored
Close the gitrepo when deleting the repository (#15876) (#15887)
Signed-off-by: Andrew Thornton <[email protected]> Co-authored-by: zeripath <[email protected]>
1 parent ad54f00 commit 3bcf2e5

File tree

4 files changed

+14
-0
lines changed

4 files changed

+14
-0
lines changed

modules/migrations/gitea_uploader.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -849,6 +849,7 @@ func (g *GiteaLocalUploader) CreateReviews(reviews ...*base.Review) error {
849849
// Rollback when migrating failed, this will rollback all the changes.
850850
func (g *GiteaLocalUploader) Rollback() error {
851851
if g.repo != nil && g.repo.ID > 0 {
852+
g.gitRepo.Close()
852853
if err := models.DeleteRepository(g.doer, g.repo.OwnerID, g.repo.ID); err != nil {
853854
return err
854855
}

routers/admin/repos.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ func DeleteRepo(ctx *context.Context) {
4646
return
4747
}
4848

49+
if ctx.Repo != nil && ctx.Repo.GitRepo != nil && ctx.Repo.Repository != nil && ctx.Repo.Repository.ID == repo.ID {
50+
ctx.Repo.GitRepo.Close()
51+
}
52+
4953
if err := repo_service.DeleteRepository(ctx.User, repo); err != nil {
5054
ctx.ServerError("DeleteRepository", err)
5155
return

routers/api/v1/repo/repo.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -885,6 +885,10 @@ func Delete(ctx *context.APIContext) {
885885
return
886886
}
887887

888+
if ctx.Repo.GitRepo != nil {
889+
ctx.Repo.GitRepo.Close()
890+
}
891+
888892
if err := repo_service.DeleteRepository(ctx.User, repo); err != nil {
889893
ctx.Error(http.StatusInternalServerError, "DeleteRepository", err)
890894
return

routers/repo/setting.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,11 @@ func SettingsPost(ctx *context.Context) {
539539
return
540540
}
541541

542+
// Close the gitrepository before doing this.
543+
if ctx.Repo.GitRepo != nil {
544+
ctx.Repo.GitRepo.Close()
545+
}
546+
542547
if err := repo_service.DeleteRepository(ctx.User, ctx.Repo.Repository); err != nil {
543548
ctx.ServerError("DeleteRepository", err)
544549
return

0 commit comments

Comments
 (0)