mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Pass 'not' to commit count (#24473)
Due to #24409 , we can now specify '--not' when getting all commits from a repo to exclude commits from a different branch. When I wrote that PR, I forgot to also update the code that counts the number of commits in the repo. So now, if the --not option is used, it may return too many commits, which can indicate that another page of data is available when it is not. This PR passes --not to the commands that count the number of commits in a repo
This commit is contained in:
		@@ -146,6 +146,7 @@ func GetAllCommits(ctx *context.APIContext) {
 | 
			
		||||
 | 
			
		||||
	sha := ctx.FormString("sha")
 | 
			
		||||
	path := ctx.FormString("path")
 | 
			
		||||
	not := ctx.FormString("not")
 | 
			
		||||
 | 
			
		||||
	var (
 | 
			
		||||
		commitsCountTotal int64
 | 
			
		||||
@@ -178,14 +179,18 @@ func GetAllCommits(ctx *context.APIContext) {
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Total commit count
 | 
			
		||||
		commitsCountTotal, err = baseCommit.CommitsCount()
 | 
			
		||||
		commitsCountTotal, err = git.CommitsCount(ctx.Repo.GitRepo.Ctx, git.CommitsCountOptions{
 | 
			
		||||
			RepoPath: ctx.Repo.GitRepo.Path,
 | 
			
		||||
			Not:      not,
 | 
			
		||||
			Revision: []string{baseCommit.ID.String()},
 | 
			
		||||
		})
 | 
			
		||||
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			ctx.Error(http.StatusInternalServerError, "GetCommitsCount", err)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Query commits
 | 
			
		||||
		not := ctx.FormString("not")
 | 
			
		||||
		commits, err = baseCommit.CommitsByRange(listOptions.Page, listOptions.PageSize, not)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			ctx.Error(http.StatusInternalServerError, "CommitsByRange", err)
 | 
			
		||||
@@ -196,7 +201,14 @@ func GetAllCommits(ctx *context.APIContext) {
 | 
			
		||||
			sha = ctx.Repo.Repository.DefaultBranch
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		commitsCountTotal, err = ctx.Repo.GitRepo.FileCommitsCount(sha, path)
 | 
			
		||||
		commitsCountTotal, err = git.CommitsCount(ctx,
 | 
			
		||||
			git.CommitsCountOptions{
 | 
			
		||||
				RepoPath: ctx.Repo.GitRepo.Path,
 | 
			
		||||
				Not:      not,
 | 
			
		||||
				Revision: []string{sha},
 | 
			
		||||
				RelPath:  []string{path},
 | 
			
		||||
			})
 | 
			
		||||
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			ctx.Error(http.StatusInternalServerError, "FileCommitsCount", err)
 | 
			
		||||
			return
 | 
			
		||||
@@ -205,7 +217,14 @@ func GetAllCommits(ctx *context.APIContext) {
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		commits, err = ctx.Repo.GitRepo.CommitsByFileAndRange(sha, path, listOptions.Page)
 | 
			
		||||
		commits, err = ctx.Repo.GitRepo.CommitsByFileAndRange(
 | 
			
		||||
			git.CommitsByFileAndRangeOptions{
 | 
			
		||||
				Revision: sha,
 | 
			
		||||
				File:     path,
 | 
			
		||||
				Not:      not,
 | 
			
		||||
				Page:     listOptions.Page,
 | 
			
		||||
			})
 | 
			
		||||
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			ctx.Error(http.StatusInternalServerError, "CommitsByFileAndRange", err)
 | 
			
		||||
			return
 | 
			
		||||
 
 | 
			
		||||
@@ -429,7 +429,12 @@ func ListPageRevisions(ctx *context.APIContext) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// get Commit Count
 | 
			
		||||
	commitsHistory, err := wikiRepo.CommitsByFileAndRange("master", pageFilename, page)
 | 
			
		||||
	commitsHistory, err := wikiRepo.CommitsByFileAndRange(
 | 
			
		||||
		git.CommitsByFileAndRangeOptions{
 | 
			
		||||
			Revision: "master",
 | 
			
		||||
			File:     pageFilename,
 | 
			
		||||
			Page:     page,
 | 
			
		||||
		})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.Error(http.StatusInternalServerError, "CommitsByFileAndRange", err)
 | 
			
		||||
		return
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@ import (
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/models/repo"
 | 
			
		||||
	"code.gitea.io/gitea/modules/context"
 | 
			
		||||
	"code.gitea.io/gitea/modules/git"
 | 
			
		||||
	"code.gitea.io/gitea/modules/util"
 | 
			
		||||
 | 
			
		||||
	"github.com/gorilla/feeds"
 | 
			
		||||
@@ -21,7 +22,12 @@ func ShowFileFeed(ctx *context.Context, repo *repo.Repository, formatType string
 | 
			
		||||
	if len(fileName) == 0 {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	commits, err := ctx.Repo.GitRepo.CommitsByFileAndRange(ctx.Repo.RefName, fileName, 1)
 | 
			
		||||
	commits, err := ctx.Repo.GitRepo.CommitsByFileAndRange(
 | 
			
		||||
		git.CommitsByFileAndRangeOptions{
 | 
			
		||||
			Revision: ctx.Repo.RefName,
 | 
			
		||||
			File:     fileName,
 | 
			
		||||
			Page:     1,
 | 
			
		||||
		})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.ServerError("ShowBranchFeed", err)
 | 
			
		||||
		return
 | 
			
		||||
 
 | 
			
		||||
@@ -230,7 +230,12 @@ func FileHistory(ctx *context.Context) {
 | 
			
		||||
		page = 1
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	commits, err := ctx.Repo.GitRepo.CommitsByFileAndRange(ctx.Repo.RefName, fileName, page)
 | 
			
		||||
	commits, err := ctx.Repo.GitRepo.CommitsByFileAndRange(
 | 
			
		||||
		git.CommitsByFileAndRangeOptions{
 | 
			
		||||
			Revision: ctx.Repo.RefName,
 | 
			
		||||
			File:     fileName,
 | 
			
		||||
			Page:     page,
 | 
			
		||||
		})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.ServerError("CommitsByFileAndRange", err)
 | 
			
		||||
		return
 | 
			
		||||
 
 | 
			
		||||
@@ -376,7 +376,12 @@ func renderRevisionPage(ctx *context.Context) (*git.Repository, *git.TreeEntry)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// get Commit Count
 | 
			
		||||
	commitsHistory, err := wikiRepo.CommitsByFileAndRange(wiki_service.DefaultBranch, pageFilename, page)
 | 
			
		||||
	commitsHistory, err := wikiRepo.CommitsByFileAndRange(
 | 
			
		||||
		git.CommitsByFileAndRangeOptions{
 | 
			
		||||
			Revision: wiki_service.DefaultBranch,
 | 
			
		||||
			File:     pageFilename,
 | 
			
		||||
			Page:     page,
 | 
			
		||||
		})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if wikiRepo != nil {
 | 
			
		||||
			wikiRepo.Close()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user