diff options
author | Richard Mahn <richard_mahn@wycliffeassociates.org> | 2016-08-11 05:48:08 -0700 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2016-08-14 23:52:24 -0700 |
commit | d0a0239bacf02eb004634dfe1bb0a3f7dfe5adb6 (patch) | |
tree | 8459045909d43af85df2afa34f785a0481ae0b9e /routers/repo/branch.go | |
parent | 7e7613cdecf6ceaf97ac280ae98bb9541679963f (diff) | |
download | gitea-d0a0239bacf02eb004634dfe1bb0a3f7dfe5adb6.tar.gz gitea-d0a0239bacf02eb004634dfe1bb0a3f7dfe5adb6.zip |
Squashed commit of the following:
commit 0afcb843d7ffd596991c4885cab768273a6eb42c
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Sun Jul 31 17:13:29 2016 -0600
Removed Upload stats as the upload table is just a temporary table
commit 7ecd73ff5535612d79d471409173ee7f1fcfa157
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Sun Jul 31 08:42:41 2016 -0600
Fix for CodeMirror mode
commit c29b9ab531e2e7af0fb5db24dc17e51027dd1174
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Sun Jul 31 08:03:33 2016 -0600
Made tabbing in editor use spaces
commit 23af384c53206a8a40e11e45bf49d7a149c4adcd
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Sun Jul 31 07:56:46 2016 -0600
Fix for data-url
commit cfb8a97591cb6fc0a92e49563b7b764c524db0e9
Merge: 7fc8a89 991ce42
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Sun Jul 31 07:42:53 2016 -0600
Merge remote-tracking branch 'gogits/develop' into feature-create-and-edit-repo-file
Conflicts:
modules/bindata/bindata.go
public/js/gogs.js
commit 7fc8a89cb495478225b02d613e647f99a1489634
Merge: fd3d86c c03d040
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Sun Jul 31 07:40:00 2016 -0600
Merge branch 'feature-create-and-edit-repo-file' of github.com:richmahn/gogs into feature-create-and-edit-repo-file
commit fd3d86ca6bbc02cfda566a504ffd6b03db4f75ef
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Sun Jul 31 07:39:44 2016 -0600
Code cleanup
commit c03d0401c1049eeeccc32ab1f9c3303c130be5ee
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Fri Jul 29 15:38:23 2016 -0600
Code cleanup
commit 98e1206ccf9f9a4503c020e3a7830cf9f861dfae
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Thu Jul 28 18:36:01 2016 -0600
Code cleanup and fixes
commit c2895dc742f25f8412879c9fa15e18f27f42f194
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Thu Jul 28 18:24:04 2016 -0600
Fixes per Unknwon's requests
commit 6aa7e46b21ad4c96e562daa2eac26a8fb408f8ef
Merge: 889e9fa ad7ea88
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Thu Jul 28 17:13:43 2016 -0600
Merge remote-tracking branch 'gogits/develop' into feature-create-and-edit-repo-file
Conflicts:
modules/bindata/bindata.go
modules/setting/setting.go
commit 889e9faf1bd8559a4979c8f46005d488c1a234d4
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Fri Jul 22 14:09:18 2016 -0600
Fix in gogs.js
commit 47603edf223f147b114be65f3bd27bc1e88827a5
Merge: bb57912 cf85e9e
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Fri Jul 22 14:07:36 2016 -0600
Merge remote-tracking branch 'gogits/develop' into feature-create-and-edit-repo-file
Conflicts:
modules/bindata/bindata.go
public/js/gogs.js
commit bb5791255867a71c11a77b639db050ad09c597a4
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Fri Jul 22 14:02:18 2016 -0600
Update for using CodeMirror mode addon
commit d10d128c51039be19e2af9c66c63db66a9f2ec6d
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Tue Jul 19 16:12:57 2016 -0600
Update for Edit
commit 34a34982025144e3225e389f7849eb6273c1d576
Merge: fa1b752 1c7dcdd
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Tue Jul 19 11:52:02 2016 -0600
Merge remote-tracking branch 'gogits/develop' into feature-create-and-edit-repo-file
Conflicts:
modules/bindata/bindata.go
commit fa1b752be29cd455c5184ddac2ffe80b3489763e
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date: Fri Jul 15 18:35:42 2016 -0600
Feature for editing, creating, uploading and deleting files
Diffstat (limited to 'routers/repo/branch.go')
-rw-r--r-- | routers/repo/branch.go | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/routers/repo/branch.go b/routers/repo/branch.go index 00f30b0f13..453df3745e 100644 --- a/routers/repo/branch.go +++ b/routers/repo/branch.go @@ -5,8 +5,13 @@ package repo import ( + "github.com/gogits/gogs/models" + "github.com/gogits/gogs/modules/auth" "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/context" + "github.com/gogits/gogs/modules/log" + "net/url" + "strings" ) const ( @@ -29,3 +34,53 @@ func Branches(ctx *context.Context) { ctx.Data["Branches"] = brs ctx.HTML(200, BRANCH) } + +func NewBranchPost(ctx *context.Context, form auth.NewBranchForm) { + oldBranchName := form.OldBranchName + branchName := form.BranchName + + if ctx.HasError() || !ctx.Repo.IsWriter() || branchName == oldBranchName { + ctx.Redirect(EscapeUrl(ctx.Repo.RepoLink + "/src/" + oldBranchName)) + return + } + + branchName = url.QueryEscape(strings.Replace(strings.Trim(branchName, " "), " ", "-", -1)) + + if _, err := ctx.Repo.Repository.GetBranch(branchName); err == nil { + ctx.Redirect(EscapeUrl(ctx.Repo.RepoLink + "/src/" + branchName)) + return + } + + if err := ctx.Repo.Repository.CreateNewBranch(ctx.User, oldBranchName, branchName); err != nil { + ctx.Handle(404, "repo.Branches(CreateNewBranch)", err) + log.Error(4, "%s: %v", "EditFile", err) + return + } + + // Was successful, so now need to call models.CommitRepoAction() with the new commitID for webhooks and watchers + if branch, err := ctx.Repo.Repository.GetBranch(branchName); err != nil { + log.Error(4, "repo.Repository.GetBranch(%s): %v", branchName, err) + } else if commit, err := branch.GetCommit(); err != nil { + log.Error(4, "branch.GetCommit(): %v", err) + } else { + pc := &models.PushCommits{ + Len: 1, + Commits: []*models.PushCommit{&models.PushCommit{ + commit.ID.String(), + commit.Message(), + commit.Author.Email, + commit.Author.Name, + }}, + } + oldCommitID := "0000000000000000000000000000000000000000" // New Branch so we use all 0s + newCommitID := commit.ID.String() + if err := models.CommitRepoAction(ctx.User.ID, ctx.Repo.Owner.ID, ctx.User.LowerName, ctx.Repo.Owner.Email, + ctx.Repo.Repository.ID, ctx.Repo.Owner.LowerName, ctx.Repo.Repository.Name, "refs/heads/"+branchName, pc, + oldCommitID, newCommitID); err != nil { + log.Error(4, "models.CommitRepoAction(branch = %s): %v", branchName, err) + } + models.HookQueue.Add(ctx.Repo.Repository.ID) + } + + ctx.Redirect(EscapeUrl(ctx.Repo.RepoLink + "/src/" + branchName)) +} |