aboutsummaryrefslogtreecommitdiff
path: root/models/repo.go
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2014-05-15 09:55:16 +0800
committerLunny Xiao <xiaolunwen@gmail.com>2014-05-15 09:55:16 +0800
commit839a9bb054618c7f3b04dae0b4f5b5b0fbcf1ee2 (patch)
tree1d47a111c869a6130fd092c1fb683d1ac89251bd /models/repo.go
parent9d5e827a1e29fb62a0152867a7e1072fd018e1b4 (diff)
parentb70db618547b2167cac7e35be5405fb385512f30 (diff)
Merge branch 'dev' of github.com:gogits/gogs into dev
Diffstat (limited to 'models/repo.go')
-rw-r--r--models/repo.go24
1 files changed, 21 insertions, 3 deletions
diff --git a/models/repo.go b/models/repo.go
index 4382bd7d..0594c6c6 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -676,15 +676,33 @@ func DeleteRepository(userId, repoId int64, userName string) (err error) {
sess.Rollback()
return err
}
- if _, err = sess.Delete(&Issue{RepoId: repoId}); err != nil {
+ if _, err = sess.Delete(&IssueUser{RepoId: repoId}); err != nil {
sess.Rollback()
return err
}
- if _, err = sess.Delete(&IssueUser{RepoId: repoId}); err != nil {
+ if _, err = sess.Delete(&Milestone{RepoId: repoId}); err != nil {
sess.Rollback()
return err
}
- if _, err = sess.Delete(&Milestone{RepoId: repoId}); err != nil {
+ if _, err = sess.Delete(&Release{RepoId: repoId}); err != nil {
+ sess.Rollback()
+ return err
+ }
+
+ // Delete comments.
+ if err = orm.Iterate(&Issue{RepoId: repoId}, func(idx int, bean interface{}) error {
+ issue := bean.(*Issue)
+ if _, err = sess.Delete(&Comment{IssueId: issue.Id}); err != nil {
+ sess.Rollback()
+ return err
+ }
+ return nil
+ }); err != nil {
+ sess.Rollback()
+ return err
+ }
+
+ if _, err = sess.Delete(&Issue{RepoId: repoId}); err != nil {
sess.Rollback()
return err
}