From 9ae3c5808fcfa468d1f9394c9b16bc02f573ba79 Mon Sep 17 00:00:00 2001 From: Máximo Cuadros Date: Tue, 23 Aug 2016 00:37:36 +0200 Subject: WalkCommitHistory adn Commit.History --- commit.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'commit.go') diff --git a/commit.go b/commit.go index 4a4a202..4a4fe25 100644 --- a/commit.go +++ b/commit.go @@ -125,6 +125,18 @@ func (c *Commit) Decode(o core.Object) (err error) { } } +// History return a slice with the previous commits in the history of this commit +func (c *Commit) History() ([]*Commit, error) { + var commits []*Commit + err := WalkCommitHistory(c, func(commit *Commit) error { + commits = append(commits, commit) + return nil + }) + + ReverseSortCommits(commits) + return commits, err +} + func (c *Commit) String() string { return fmt.Sprintf( "%s %s\nAuthor: %s\nDate: %s\n", @@ -193,3 +205,9 @@ func SortCommits(l []*Commit) { s := &commitSorterer{l} sort.Sort(s) } + +// ReverseSortCommits sort a commit list by commit date, from newer to older. +func ReverseSortCommits(l []*Commit) { + s := &commitSorterer{l} + sort.Sort(sort.Reverse(s)) +} -- cgit