diff options
author | onee-only <kimww0306@gmail.com> | 2024-03-05 09:33:22 +0900 |
---|---|---|
committer | onee-only <kimww0306@gmail.com> | 2024-03-05 09:33:22 +0900 |
commit | fc222017c0c8e72a7b0a30aab46b494cbc92d3ab (patch) | |
tree | 419a84386efaf700a7f1ce16fd3a5bcf76f1dcaa /plumbing | |
parent | fb04aa392c8d4c259cb5b21c1cb4c6f8076e600b (diff) | |
download | go-git-fc222017c0c8e72a7b0a30aab46b494cbc92d3ab.tar.gz |
plumbing: object, Make first commit visible on logs filtered with filename. Fixes #191
Diffstat (limited to 'plumbing')
-rw-r--r-- | plumbing/object/commit_walker_path.go | 3 | ||||
-rw-r--r-- | plumbing/object/commit_walker_test.go | 26 |
2 files changed, 28 insertions, 1 deletions
diff --git a/plumbing/object/commit_walker_path.go b/plumbing/object/commit_walker_path.go index aa0ca15..e054966 100644 --- a/plumbing/object/commit_walker_path.go +++ b/plumbing/object/commit_walker_path.go @@ -115,7 +115,8 @@ func (c *commitPathIter) hasFileChange(changes Changes, parent *Commit) bool { // filename matches, now check if source iterator contains all commits (from all refs) if c.checkParent { - if parent != nil && isParentHash(parent.Hash, c.currentCommit) { + // Check if parent is beyond the initial commit + if parent == nil || isParentHash(parent.Hash, c.currentCommit) { return true } continue diff --git a/plumbing/object/commit_walker_test.go b/plumbing/object/commit_walker_test.go index c47d68b..fa0ca7d 100644 --- a/plumbing/object/commit_walker_test.go +++ b/plumbing/object/commit_walker_test.go @@ -228,3 +228,29 @@ func (s *CommitWalkerSuite) TestCommitBSFIteratorWithIgnore(c *C) { c.Assert(commit.Hash.String(), Equals, expected[i]) } } + +func (s *CommitWalkerSuite) TestCommitPathIteratorInitialCommit(c *C) { + commit := s.commit(c, plumbing.NewHash(s.Fixture.Head)) + + fileName := "LICENSE" + + var commits []*Commit + NewCommitPathIterFromIter( + func(path string) bool { return path == fileName }, + NewCommitIterCTime(commit, nil, nil), + true, + ).ForEach(func(c *Commit) error { + commits = append(commits, c) + return nil + }) + + expected := []string{ + "b029517f6300c2da0f4b651b8642506cd6aaf45d", + } + + c.Assert(commits, HasLen, len(expected)) + + for i, commit := range commits { + c.Assert(commit.Hash.String(), Equals, expected[i]) + } +} |