diff options
author | Runxi Yu <me@runxiyu.org> | 2025-03-21 16:55:53 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-03-21 16:56:51 +0800 |
commit | 44626e60bf2bac53e2e3988874d310e7882eaabf (patch) | |
tree | 6e5e096fc6d568fb1c330e78508cef952e8c0d1a /http_handle_repo_index.go | |
parent | Bump Go version to 1.24.1 (diff) | |
download | forge-44626e60bf2bac53e2e3988874d310e7882eaabf.tar.gz forge-44626e60bf2bac53e2e3988874d310e7882eaabf.tar.zst forge-44626e60bf2bac53e2e3988874d310e7882eaabf.zip |
Output git logs incrementally
Diffstat (limited to 'http_handle_repo_index.go')
-rw-r--r-- | http_handle_repo_index.go | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/http_handle_repo_index.go b/http_handle_repo_index.go index cb3fcdc..a22c75f 100644 --- a/http_handle_repo_index.go +++ b/http_handle_repo_index.go @@ -4,6 +4,7 @@ package main import ( + "iter" "net/http" "strings" @@ -19,7 +20,8 @@ func httpHandleRepoIndex(w http.ResponseWriter, r *http.Request, params map[stri var groupPath []string var refHash plumbing.Hash var err error - var recentCommits []*object.Commit + var commitIter object.CommitIter + var commitIterSeq iter.Seq[*object.Commit] var commitObj *object.Commit var tree *object.Tree var notes []string @@ -46,10 +48,11 @@ func httpHandleRepoIndex(w http.ResponseWriter, r *http.Request, params map[stri } params["branches"] = branches - if recentCommits, err = getRecentCommits(repo, refHash, 3); err != nil { + if commitIter, err = repo.Log(&git.LogOptions{From: refHash}); err != nil { goto no_ref } - params["commits"] = recentCommits + commitIterSeq, params["commits_err"] = commitIterSeqErr(commitIter) + params["commits"] = iterSeqLimit(commitIterSeq, 3) if commitObj, err = repo.CommitObject(refHash); err != nil { goto no_ref |