summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorevolvedlight <steve@evolvedlight.co.uk>2014-10-10 00:21:36 +0100
committerevolvedlight <steve@evolvedlight.co.uk>2014-10-10 00:21:36 +0100
commit211dc74816c3832f973284f19ad0831da039ac76 (patch)
treef630981dff76f6868dd2ac1badf876a5d648a2a0
parentc9e5e38fcfa759a1d2578d1c7a56ac0e65e2bf78 (diff)
downloadgitea-211dc74816c3832f973284f19ad0831da039ac76.tar.gz
gitea-211dc74816c3832f973284f19ad0831da039ac76.zip
Got the fork count working
-rw-r--r--models/repo.go16
-rw-r--r--routers/repo/repo.go12
2 files changed, 21 insertions, 7 deletions
diff --git a/models/repo.go b/models/repo.go
index 34b7cd8352..2019542102 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -1307,9 +1307,7 @@ func ForkRepository(u *User, oldRepo *Repository) (*Repository, error) {
}
}
- if err = sess.Commit(); err != nil {
- return nil, err
- }
+
if u.IsOrganization() {
t, err := u.GetOwnerTeam()
@@ -1335,7 +1333,16 @@ func ForkRepository(u *User, oldRepo *Repository) (*Repository, error) {
if err = NewRepoAction(u, repo); err != nil {
log.Error(4, "NewRepoAction: %v", err)
}
-
+
+ if _, err = sess.Exec(
+ "UPDATE `repository` SET num_forks = num_forks + 1 WHERE id = ?", oldRepo.Id); err != nil {
+ sess.Rollback()
+ return nil, err
+ }
+
+ if err = sess.Commit(); err != nil {
+ return nil, err
+ }
repoPath := RepoPath(u.Name, repo.Name)
_, stderr, err := process.ExecTimeout(10*time.Minute,
@@ -1350,5 +1357,6 @@ func ForkRepository(u *User, oldRepo *Repository) (*Repository, error) {
}
return repo, nil
+
}
diff --git a/routers/repo/repo.go b/routers/repo/repo.go
index dac0c48b36..8b18eb25bf 100644
--- a/routers/repo/repo.go
+++ b/routers/repo/repo.go
@@ -219,11 +219,17 @@ func Action(ctx *middleware.Context) {
err = models.StarRepo(ctx.User.Id, ctx.Repo.Repository.Id, false)
case "fork":
repo, error := models.ForkRepository(ctx.User, ctx.Repo.Repository)
- log.Info("Tried to fork a repo!")
- log.Info("Repo thing is " + repo.Name)
if error != nil {
+ log.Error(4, "Action(%s): %v", ctx.Params(":action"), error)
+ ctx.JSON(200, map[string]interface{}{
+ "ok": false,
+ "err": error.Error(),
+ })
+ return
+ }
+ if error == nil {
+ ctx.Redirect(setting.AppSubUrl + "/" + repo.Owner.Name + "/" + repo.Name)
- ctx.Redirect(setting.AppSubUrl + "/" + ctx.User.Name + "/" + repo.Name)
return
}
case "desc":