aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--routers/repo/commit.go31
-rw-r--r--routers/repo/wiki.go2
-rw-r--r--routers/routes/routes.go6
-rw-r--r--templates/repo/commit_page.tmpl8
-rw-r--r--templates/repo/commits_list.tmpl4
-rw-r--r--templates/repo/diff/box.tmpl4
-rw-r--r--templates/repo/diff/options_dropdown.tmpl3
7 files changed, 49 insertions, 9 deletions
diff --git a/routers/repo/commit.go b/routers/repo/commit.go
index 77439f8873..a7a8d30d09 100644
--- a/routers/repo/commit.go
+++ b/routers/repo/commit.go
@@ -212,8 +212,25 @@ func Diff(ctx *context.Context) {
userName := ctx.Repo.Owner.Name
repoName := ctx.Repo.Repository.Name
commitID := ctx.Params(":sha")
+ var (
+ gitRepo *git.Repository
+ err error
+ repoPath string
+ )
+
+ if ctx.Data["PageIsWiki"] != nil {
+ gitRepo, err = git.OpenRepository(ctx.Repo.Repository.WikiPath())
+ if err != nil {
+ ctx.ServerError("Repo.GitRepo.GetCommit", err)
+ return
+ }
+ repoPath = ctx.Repo.Repository.WikiPath()
+ } else {
+ gitRepo = ctx.Repo.GitRepo
+ repoPath = models.RepoPath(userName, repoName)
+ }
- commit, err := ctx.Repo.GitRepo.GetCommit(commitID)
+ commit, err := gitRepo.GetCommit(commitID)
if err != nil {
if git.IsErrNotExist(err) {
ctx.NotFound("Repo.GitRepo.GetCommit", err)
@@ -233,7 +250,7 @@ func Diff(ctx *context.Context) {
ctx.Data["CommitStatus"] = models.CalcCommitStatus(statuses)
- diff, err := gitdiff.GetDiffCommit(models.RepoPath(userName, repoName),
+ diff, err := gitdiff.GetDiffCommit(repoPath,
commitID, setting.Git.MaxGitDiffLines,
setting.Git.MaxGitDiffLineCharacters, setting.Git.MaxGitDiffFiles)
if err != nil {
@@ -258,7 +275,7 @@ func Diff(ctx *context.Context) {
var parentCommit *git.Commit
if commit.ParentCount() > 0 {
- parentCommit, err = ctx.Repo.GitRepo.GetCommit(parents[0])
+ parentCommit, err = gitRepo.GetCommit(parents[0])
if err != nil {
ctx.NotFound("GetParentCommit", err)
return
@@ -298,8 +315,14 @@ func Diff(ctx *context.Context) {
// RawDiff dumps diff results of repository in given commit ID to io.Writer
func RawDiff(ctx *context.Context) {
+ var repoPath string
+ if ctx.Data["PageIsWiki"] != nil {
+ repoPath = ctx.Repo.Repository.WikiPath()
+ } else {
+ repoPath = models.RepoPath(ctx.Repo.Owner.Name, ctx.Repo.Repository.Name)
+ }
if err := git.GetRawDiff(
- models.RepoPath(ctx.Repo.Owner.Name, ctx.Repo.Repository.Name),
+ repoPath,
ctx.Params(":sha"),
git.RawDiffType(ctx.Params(":ext")),
ctx.Resp,
diff --git a/routers/repo/wiki.go b/routers/repo/wiki.go
index a01498fb0a..5da01f21ac 100644
--- a/routers/repo/wiki.go
+++ b/routers/repo/wiki.go
@@ -245,6 +245,8 @@ func renderRevisionPage(ctx *context.Context) (*git.Repository, *git.TreeEntry)
ctx.Data["Title"] = pageName
ctx.Data["title"] = pageName
ctx.Data["RequireHighlightJS"] = true
+ ctx.Data["Username"] = ctx.Repo.Owner.Name
+ ctx.Data["Reponame"] = ctx.Repo.Repository.Name
//lookup filename in wiki - get filecontent, gitTree entry , real filename
data, entry, pageFilename, noEntry := wikiContentsByName(ctx, commit, pageName)
diff --git a/routers/routes/routes.go b/routers/routes/routes.go
index a51c1e17af..7f409eb576 100644
--- a/routers/routes/routes.go
+++ b/routers/routes/routes.go
@@ -857,6 +857,8 @@ func RegisterRoutes(m *macaron.Macaron) {
m.Get("/?:page", repo.Wiki)
m.Get("/_pages", repo.WikiPages)
m.Get("/:page/_revision", repo.WikiRevision)
+ m.Get("/commit/:sha([a-f0-9]{7,40})$", repo.SetEditorconfigIfExists, repo.SetDiffViewStyle, repo.Diff)
+ m.Get("/commit/:sha([a-f0-9]{7,40})\\.:ext(patch|diff)", repo.RawDiff)
m.Group("", func() {
m.Combo("/_new").Get(repo.NewWiki).
@@ -865,7 +867,9 @@ func RegisterRoutes(m *macaron.Macaron) {
Post(bindIgnErr(auth.NewWikiForm{}), repo.EditWikiPost)
m.Post("/:page/delete", repo.DeleteWikiPagePost)
}, context.RepoMustNotBeArchived(), reqSignIn, reqRepoWikiWriter)
- }, repo.MustEnableWiki, context.RepoRef())
+ }, repo.MustEnableWiki, context.RepoRef(), func(ctx *context.Context) {
+ ctx.Data["PageIsWiki"] = true
+ })
m.Group("/wiki", func() {
m.Get("/raw/*", repo.WikiRaw)
diff --git a/templates/repo/commit_page.tmpl b/templates/repo/commit_page.tmpl
index 372cc4fb93..f19292fd99 100644
--- a/templates/repo/commit_page.tmpl
+++ b/templates/repo/commit_page.tmpl
@@ -18,9 +18,11 @@
{{end}}
{{end}}
<div class="ui top attached info clearing segment {{$class}}">
+ {{if not $.PageIsWiki}}
<a class="ui floated right blue tiny button" href="{{EscapePound .SourcePath}}">
{{.i18n.Tr "repo.diff.browse_source"}}
</a>
+ {{end}}
<h3><span class="message-wrapper"><span class="commit-summary" title="{{.Commit.Summary}}">{{RenderCommitMessage .Commit.Message $.RepoLink $.Repository.ComposeMetas}}</span></span>{{template "repo/commit_status" .CommitStatus}}</h3>
{{if IsMultilineCommitMessage .Commit.Message}}
<pre class="commit-body">{{RenderCommitBody .Commit.Message $.RepoLink $.Repository.ComposeMetas}}</pre>
@@ -61,7 +63,11 @@
</div>
<div class="item">
{{range .Parents}}
- <a class="ui blue sha label" href="{{$.RepoLink}}/commit/{{.}}">{{ShortSha .}}</a>
+ {{if $.PageIsWiki}}
+ <a class="ui blue sha label" href="{{$.RepoLink}}/wiki/commit/{{.}}">{{ShortSha .}}</a>
+ {{else}}
+ <a class="ui blue sha label" href="{{$.RepoLink}}/commit/{{.}}">{{ShortSha .}}</a>
+ {{end}}
{{end}}
</div>
{{end}}
diff --git a/templates/repo/commits_list.tmpl b/templates/repo/commits_list.tmpl
index 92da6c1b29..ad2369c042 100644
--- a/templates/repo/commits_list.tmpl
+++ b/templates/repo/commits_list.tmpl
@@ -39,7 +39,9 @@
{{$class = (printf "%s%s" $class " isWarning")}}
{{end}}
{{end}}
- {{if $.Reponame}}
+ {{if $.PageIsWiki}}
+ <a href="{{AppSubUrl}}/{{$.Username}}/{{$.Reponame}}/wiki/commit/{{.ID}}" rel="nofollow" class="{{$class}}">
+ {{else if $.Reponame}}
<a href="{{AppSubUrl}}/{{$.Username}}/{{$.Reponame}}/commit/{{.ID}}" rel="nofollow" class="{{$class}}">
{{else}}
<span class="{{$class}}">
diff --git a/templates/repo/diff/box.tmpl b/templates/repo/diff/box.tmpl
index a789350525..b6d1fdf3a0 100644
--- a/templates/repo/diff/box.tmpl
+++ b/templates/repo/diff/box.tmpl
@@ -69,7 +69,7 @@
</div>
<span class="file">{{$file.Name}}</span>
<div>{{$.i18n.Tr "repo.diff.file_suppressed"}}</div>
- {{if not $file.IsSubmodule}}
+ {{if and (not $file.IsSubmodule) (not $.PageIsWiki)}}
{{if $file.IsDeleted}}
<a class="ui basic grey tiny button" rel="nofollow" href="{{EscapePound $.BeforeSourcePath}}/{{EscapePound .Name}}">{{$.i18n.Tr "repo.diff.view_file"}}</a>
{{else}}
@@ -103,7 +103,7 @@
{{end}}
</div>
<span class="file">{{if $file.IsRenamed}}{{$file.OldName}} &rarr; {{end}}{{$file.Name}}{{if .IsLFSFile}} ({{$.i18n.Tr "repo.stored_lfs"}}){{end}}</span>
- {{if not $file.IsSubmodule}}
+ {{if and (not $file.IsSubmodule) (not $.PageIsWiki)}}
{{if $file.IsDeleted}}
<a class="ui basic grey tiny button" rel="nofollow" href="{{EscapePound $.BeforeSourcePath}}/{{EscapePound .Name}}">{{$.i18n.Tr "repo.diff.view_file"}}</a>
{{else}}
diff --git a/templates/repo/diff/options_dropdown.tmpl b/templates/repo/diff/options_dropdown.tmpl
index 4bc6a3b994..8dcf398240 100644
--- a/templates/repo/diff/options_dropdown.tmpl
+++ b/templates/repo/diff/options_dropdown.tmpl
@@ -6,6 +6,9 @@
{{if .Issue.Index}}
<a class="item" href="{{$.RepoLink}}/pulls/{{.Issue.Index}}.patch" download="{{.Issue.Index}}.patch">{{.i18n.Tr "repo.diff.download_patch"}}</a>
<a class="item" href="{{$.RepoLink}}/pulls/{{.Issue.Index}}.diff" download="{{.Issue.Index}}.diff">{{.i18n.Tr "repo.diff.download_diff"}}</a>
+ {{else if $.PageIsWiki}}
+ <a class="item" href="{{$.RepoLink}}/wiki/commit/{{.Commit.ID.String}}.patch" download="{{ShortSha .Commit.ID.String}}.patch">{{.i18n.Tr "repo.diff.download_patch"}}</a>
+ <a class="item" href="{{$.RepoLink}}/wiki/commit/{{.Commit.ID.String}}.diff" download="{{ShortSha .Commit.ID.String}}.diff">{{.i18n.Tr "repo.diff.download_diff"}}</a>
{{else if .Commit.ID.String}}
<a class="item" href="{{$.RepoLink}}/commit/{{.Commit.ID.String}}.patch" download="{{ShortSha .Commit.ID.String}}.patch">{{.i18n.Tr "repo.diff.download_patch"}}</a>
<a class="item" href="{{$.RepoLink}}/commit/{{.Commit.ID.String}}.diff" download="{{ShortSha .Commit.ID.String}}.diff">{{.i18n.Tr "repo.diff.download_diff"}}</a>