]> source.dussan.org Git - gitea.git/commitdiff
Fix count for commit graph last page (#8843)
authorjaqra <48099350+jaqra@users.noreply.github.com>
Thu, 7 Nov 2019 18:09:51 +0000 (21:09 +0300)
committerLauris BH <lauris@nix.lv>
Thu, 7 Nov 2019 18:09:51 +0000 (20:09 +0200)
* Fix count for commit graph last page

* Remove used once variable

* Move func to model

* capitalize method name

* fix error message

modules/git/commit.go
modules/git/repo.go
routers/repo/commit.go

index 45b943e79eef6f4bfdfe9729e773a2a5351a2ef7..ce55dd55f633a687426228514ee024e0c857473c 100644 (file)
@@ -248,6 +248,16 @@ func CommitChanges(repoPath string, opts CommitChangesOptions) error {
        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) {
        cmd := NewCommand("rev-list", "--count")
        cmd.AddArguments(revision)
index e1d75ca4aaa52ec4002ec7f0d6b88ac943374ff6..4c6690b9133e56969bd6cc64cc713dc388037efa 100644 (file)
@@ -46,6 +46,11 @@ type GPGSettings struct {
 
 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) {
        l := list.New()
        if len(logs) == 0 {
index 550e4c3a9cd6da95b935d112753bb6e4ee7ee268..f067729ca94de34a2106a1fba0ac947e931f224e 100644 (file)
@@ -91,6 +91,12 @@ func Graph(ctx *context.Context) {
                return
        }
 
+       allCommitsCount, err := ctx.Repo.GitRepo.GetAllCommitsCount()
+       if err != nil {
+               ctx.ServerError("GetAllCommitsCount", err)
+               return
+       }
+
        page := ctx.QueryInt("page")
 
        graph, err := models.GetCommitGraph(ctx.Repo.GitRepo, page)
@@ -105,7 +111,7 @@ func Graph(ctx *context.Context) {
        ctx.Data["CommitCount"] = commitsCount
        ctx.Data["Branch"] = ctx.Repo.BranchName
        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)
 }