mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 10:56:10 +01:00 
			
		
		
		
	Fix #166
This commit is contained in:
		| @@ -210,6 +210,7 @@ func runWeb(*cli.Context) { | |||||||
| 		r.Get("/raw/:branchname/**", repo.SingleDownload) | 		r.Get("/raw/:branchname/**", repo.SingleDownload) | ||||||
| 		r.Get("/commits/:branchname", repo.Commits) | 		r.Get("/commits/:branchname", repo.Commits) | ||||||
| 		r.Get("/commits/:branchname/search", repo.SearchCommits) | 		r.Get("/commits/:branchname/search", repo.SearchCommits) | ||||||
|  | 		r.Get("/commits/:branchname/**", repo.FileHistory) | ||||||
| 		r.Get("/commit/:branchname", repo.Diff) | 		r.Get("/commit/:branchname", repo.Diff) | ||||||
| 		r.Get("/commit/:branchname/**", repo.Diff) | 		r.Get("/commit/:branchname/**", repo.Diff) | ||||||
| 		r.Get("/releases", repo.Releases) | 		r.Get("/releases", repo.Releases) | ||||||
|   | |||||||
| @@ -50,7 +50,7 @@ func Commits(ctx *middleware.Context, params martini.Params) { | |||||||
| 	//both `git log branchName` and `git log commitId` work | 	//both `git log branchName` and `git log commitId` work | ||||||
| 	commits, err := ctx.Repo.Commit.CommitsByRange(page) | 	commits, err := ctx.Repo.Commit.CommitsByRange(page) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		ctx.Handle(500, "repo.Commits(get commits)", err) | 		ctx.Handle(500, "repo.Commits(CommitsByRange)", err) | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -149,3 +149,65 @@ func SearchCommits(ctx *middleware.Context, params martini.Params) { | |||||||
| 	ctx.Data["IsRepoToolbarCommits"] = true | 	ctx.Data["IsRepoToolbarCommits"] = true | ||||||
| 	ctx.HTML(200, "repo/commits") | 	ctx.HTML(200, "repo/commits") | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func FileHistory(ctx *middleware.Context, params martini.Params) { | ||||||
|  | 	fileName := params["_1"] | ||||||
|  | 	if len(fileName) == 0 { | ||||||
|  | 		Commits(ctx, params) | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	userName := ctx.Repo.Owner.Name | ||||||
|  | 	repoName := ctx.Repo.Repository.Name | ||||||
|  | 	branchName := params["branchname"] | ||||||
|  |  | ||||||
|  | 	brs, err := ctx.Repo.GitRepo.GetBranches() | ||||||
|  | 	if err != nil { | ||||||
|  | 		ctx.Handle(500, "repo.FileHistory", err) | ||||||
|  | 		return | ||||||
|  | 	} else if len(brs) == 0 { | ||||||
|  | 		ctx.Handle(404, "repo.FileHistory", nil) | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	commitsCount, err := ctx.Repo.GitRepo.FileCommitsCount(branchName, fileName) | ||||||
|  | 	if err != nil { | ||||||
|  | 		ctx.Handle(500, "repo.FileHistory(GetCommitsCount)", err) | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 	if commitsCount == 0 { | ||||||
|  | 		ctx.Handle(404, "repo.FileHistory", nil) | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Calculate and validate page number. | ||||||
|  | 	page, _ := base.StrTo(ctx.Query("p")).Int() | ||||||
|  | 	if page < 1 { | ||||||
|  | 		page = 1 | ||||||
|  | 	} | ||||||
|  | 	lastPage := page - 1 | ||||||
|  | 	if lastPage < 0 { | ||||||
|  | 		lastPage = 0 | ||||||
|  | 	} | ||||||
|  | 	nextPage := page + 1 | ||||||
|  | 	if nextPage*50 > commitsCount { | ||||||
|  | 		nextPage = 0 | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	//both `git log branchName` and `git log commitId` work | ||||||
|  | 	commits, err := ctx.Repo.GitRepo.CommitsByFileAndRange(branchName, fileName, page) | ||||||
|  | 	if err != nil { | ||||||
|  | 		ctx.Handle(500, "repo.FileHistory(CommitsByRange)", err) | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	ctx.Data["Username"] = userName | ||||||
|  | 	ctx.Data["Reponame"] = repoName | ||||||
|  | 	ctx.Data["FileName"] = fileName | ||||||
|  | 	ctx.Data["CommitCount"] = commitsCount | ||||||
|  | 	ctx.Data["Commits"] = commits | ||||||
|  | 	ctx.Data["LastPageNum"] = lastPage | ||||||
|  | 	ctx.Data["NextPageNum"] = nextPage | ||||||
|  | 	ctx.Data["IsRepoToolbarCommits"] = true | ||||||
|  | 	ctx.HTML(200, "repo/commits") | ||||||
|  | } | ||||||
|   | |||||||
| @@ -254,6 +254,7 @@ func Single(ctx *middleware.Context, params martini.Params) { | |||||||
|  |  | ||||||
| 	ctx.Data["LastCommit"] = ctx.Repo.Commit | 	ctx.Data["LastCommit"] = ctx.Repo.Commit | ||||||
| 	ctx.Data["Paths"] = Paths | 	ctx.Data["Paths"] = Paths | ||||||
|  | 	ctx.Data["TreeName"] = treename | ||||||
| 	ctx.Data["Treenames"] = treenames | 	ctx.Data["Treenames"] = treenames | ||||||
| 	ctx.Data["TreePath"] = treePath | 	ctx.Data["TreePath"] = treePath | ||||||
| 	ctx.Data["BranchLink"] = branchLink | 	ctx.Data["BranchLink"] = branchLink | ||||||
|   | |||||||
| @@ -41,8 +41,8 @@ | |||||||
|             </table> |             </table> | ||||||
|         </div> |         </div> | ||||||
|         {{if not .IsSearchPage}}<ul class="pagination" id="commits-pager"> |         {{if not .IsSearchPage}}<ul class="pagination" id="commits-pager"> | ||||||
|             {{if .LastPageNum}}<li><a href="{{.RepoLink}}/commits/{{.BranchName}}?p={{.LastPageNum}}" rel="nofollow">« Newer</a></li>{{end}} |             {{if .LastPageNum}}<li><a href="{{.RepoLink}}/commits/{{.BranchName}}{{if .FileName}}/{{.FileName}}{{end}}?p={{.LastPageNum}}" rel="nofollow">« Newer</a></li>{{end}} | ||||||
|             {{if .NextPageNum}}<li><a href="{{.RepoLink}}/commits/{{.BranchName}}?p={{.NextPageNum}}" rel="nofollow">» Older</a></li>{{end}} |             {{if .NextPageNum}}<li><a href="{{.RepoLink}}/commits/{{.BranchName}}{{if .FileName}}/{{.FileName}}{{end}}?p={{.NextPageNum}}" rel="nofollow">» Older</a></li>{{end}} | ||||||
|         </ul>{{end}} |         </ul>{{end}} | ||||||
|     </div> |     </div> | ||||||
| </div> | </div> | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ | |||||||
|             <a class="btn btn-default hidden" href="#">Edit</a> |             <a class="btn btn-default hidden" href="#">Edit</a> | ||||||
|             <a class="btn btn-default" href="{{.FileLink}}" rel="nofollow">Raw</a> |             <a class="btn btn-default" href="{{.FileLink}}" rel="nofollow">Raw</a> | ||||||
|             <a class="btn btn-default hidden" href="#">Blame</a> |             <a class="btn btn-default hidden" href="#">Blame</a> | ||||||
|             <a class="btn btn-default hidden" href="#">History</a> |             <a class="btn btn-default" href="{{.RepoLink}}/commits/{{.BranchName}}/{{.TreeName}}">History</a> | ||||||
|             <a class="btn btn-danger hidden" href="#">Delete</a> |             <a class="btn btn-danger hidden" href="#">Delete</a> | ||||||
|         </div> |         </div> | ||||||
|         {{end}} |         {{end}} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user