From 49654f1d302fab1b7fd2c257f87c150346ca2663 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Tue, 11 Feb 2025 13:33:03 +0800 Subject: repo_log: Add a log --- git_misc.go | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) (limited to 'git_misc.go') diff --git a/git_misc.go b/git_misc.go index db3982b..a5bcc9e 100644 --- a/git_misc.go +++ b/git_misc.go @@ -39,7 +39,7 @@ func build_display_git_tree(tree *object.Tree) []display_git_tree_entry_t { var err_get_recent_commits = errors.New("Error getting recent commits:") -func get_recent_commits(repo *git.Repository, head_hash plumbing.Hash) (recent_commits []*object.Commit, err error) { +func get_recent_commits(repo *git.Repository, head_hash plumbing.Hash, n int) (recent_commits []*object.Commit, err error) { commit_iter, err := repo.Log(&git.LogOptions{From: head_hash}) if err != nil { err = misc.Wrap_one_error(err_get_recent_commits, err) @@ -47,15 +47,28 @@ func get_recent_commits(repo *git.Repository, head_hash plumbing.Hash) (recent_c } recent_commits = make([]*object.Commit, 0) defer commit_iter.Close() - for range 3 { - this_recent_commit, err := commit_iter.Next() - if errors.Is(err, io.EOF) { - return recent_commits, nil - } else if err != nil { - err = misc.Wrap_one_error(err_get_recent_commits, err) - return nil, err + if n < 0 { + for { + this_recent_commit, err := commit_iter.Next() + if errors.Is(err, io.EOF) { + return recent_commits, nil + } else if err != nil { + err = misc.Wrap_one_error(err_get_recent_commits, err) + return nil, err + } + recent_commits = append(recent_commits, this_recent_commit) + } + } else { + for range n { + this_recent_commit, err := commit_iter.Next() + if errors.Is(err, io.EOF) { + return recent_commits, nil + } else if err != nil { + err = misc.Wrap_one_error(err_get_recent_commits, err) + return nil, err + } + recent_commits = append(recent_commits, this_recent_commit) } - recent_commits = append(recent_commits, this_recent_commit) } return } -- cgit v1.2.3