···5757}
58585959func (c *commitPathIter) getNextFileCommit() (*Commit, error) {
6060+ var parentTree, currentTree *Tree
6161+6062 for {
6163 // Parent-commit can be nil if the current-commit is the initial commit
6264 parentCommit, parentCommitErr := c.sourceIter.Next()
···6870 parentCommit = nil
6971 }
70727171- // Fetch the trees of the current and parent commits
7272- currentTree, currTreeErr := c.currentCommit.Tree()
7373- if currTreeErr != nil {
7474- return nil, currTreeErr
7373+ if parentTree == nil {
7474+ var currTreeErr error
7575+ currentTree, currTreeErr = c.currentCommit.Tree()
7676+ if currTreeErr != nil {
7777+ return nil, currTreeErr
7878+ }
7979+ } else {
8080+ currentTree = parentTree
8181+ parentTree = nil
7582 }
76837777- var parentTree *Tree
7884 if parentCommit != nil {
7985 var parentTreeErr error
8086 parentTree, parentTreeErr = parentCommit.Tree()
+3-1
plumbing/object/treenoder.go
···8888 }
8989 }
90909191- return transformChildren(parent)
9191+ var err error
9292+ t.children, err = transformChildren(parent)
9393+ return t.children, err
9294}
93959496// Returns the children of a tree as treenoders.