Fix count for commit graph last page (#8843)

* Fix count for commit graph last page

* Remove used once variable

* Move func to model

* capitalize method name

* fix error message
tokarchuk/v1.17
jaqra 5 years ago committed by Lauris BH
parent 1f90147f39
commit 065bbddab9
  1. 10
      modules/git/commit.go
  2. 5
      modules/git/repo.go
  3. 8
      routers/repo/commit.go

@ -248,6 +248,16 @@ func CommitChanges(repoPath string, opts CommitChangesOptions) error {
return err return err
} }
// AllCommitsCount returns count of all commits in repository
func AllCommitsCount(repoPath string) (int64, error) {
stdout, err := NewCommand("rev-list", "--all", "--count").RunInDir(repoPath)
if err != nil {
return 0, err
}
return strconv.ParseInt(strings.TrimSpace(stdout), 10, 64)
}
func commitsCount(repoPath, revision, relpath string) (int64, error) { func commitsCount(repoPath, revision, relpath string) (int64, error) {
cmd := NewCommand("rev-list", "--count") cmd := NewCommand("rev-list", "--count")
cmd.AddArguments(revision) cmd.AddArguments(revision)

@ -46,6 +46,11 @@ type GPGSettings struct {
const prettyLogFormat = `--pretty=format:%H` const prettyLogFormat = `--pretty=format:%H`
// GetAllCommitsCount returns count of all commits in repository
func (repo *Repository) GetAllCommitsCount() (int64, error) {
return AllCommitsCount(repo.Path)
}
func (repo *Repository) parsePrettyFormatLogToList(logs []byte) (*list.List, error) { func (repo *Repository) parsePrettyFormatLogToList(logs []byte) (*list.List, error) {
l := list.New() l := list.New()
if len(logs) == 0 { if len(logs) == 0 {

@ -91,6 +91,12 @@ func Graph(ctx *context.Context) {
return return
} }
allCommitsCount, err := ctx.Repo.GitRepo.GetAllCommitsCount()
if err != nil {
ctx.ServerError("GetAllCommitsCount", err)
return
}
page := ctx.QueryInt("page") page := ctx.QueryInt("page")
graph, err := models.GetCommitGraph(ctx.Repo.GitRepo, page) graph, err := models.GetCommitGraph(ctx.Repo.GitRepo, page)
@ -105,7 +111,7 @@ func Graph(ctx *context.Context) {
ctx.Data["CommitCount"] = commitsCount ctx.Data["CommitCount"] = commitsCount
ctx.Data["Branch"] = ctx.Repo.BranchName ctx.Data["Branch"] = ctx.Repo.BranchName
ctx.Data["RequireGitGraph"] = true ctx.Data["RequireGitGraph"] = true
ctx.Data["Page"] = context.NewPagination(int(commitsCount), setting.UI.GraphMaxCommitNum, page, 5) ctx.Data["Page"] = context.NewPagination(int(allCommitsCount), setting.UI.GraphMaxCommitNum, page, 5)
ctx.HTML(200, tplGraph) ctx.HTML(200, tplGraph)
} }

Loading…
Cancel
Save