@ -124,7 +124,6 @@ func getFileHashes(c *object.Commit, treePath string, paths []string) (map[strin
func getLastCommitForPaths ( c * object . Commit , treePath string , paths [ ] string ) ( map [ string ] * object . Commit , error ) {
func getLastCommitForPaths ( c * object . Commit , treePath string , paths [ ] string ) ( map [ string ] * object . Commit , error ) {
// We do a tree traversal with nodes sorted by commit time
// We do a tree traversal with nodes sorted by commit time
seen := make ( map [ plumbing . Hash ] bool )
heap := binaryheap . NewWith ( func ( a , b interface { } ) int {
heap := binaryheap . NewWith ( func ( a , b interface { } ) int {
if a . ( * commitAndPaths ) . commit . Committer . When . Before ( b . ( * commitAndPaths ) . commit . Committer . When ) {
if a . ( * commitAndPaths ) . commit . Committer . When . Before ( b . ( * commitAndPaths ) . commit . Committer . When ) {
return 1
return 1
@ -202,15 +201,10 @@ func getLastCommitForPaths(c *object.Commit, treePath string, paths []string) (m
// Add the parent nodes along with remaining paths to the heap for further
// Add the parent nodes along with remaining paths to the heap for further
// processing.
// processing.
for j , parent := range parents {
for j , parent := range parents {
if seen [ parent . ID ( ) ] {
continue
}
seen [ parent . ID ( ) ] = true
// Combine remainingPath with paths available on the parent branch
// Combine remainingPath with paths available on the parent branch
// and make union of them
// and make union of them
var remainingPathsForParent [ ] string
remainingPathsForParent := make ( [ ] string , 0 , len ( remainingPaths ) )
var newRemainingPaths [ ] string
newRemainingPaths := make ( [ ] string , 0 , len ( remainingPaths ) )
for _ , path := range remainingPaths {
for _ , path := range remainingPaths {
if parentHashes [ j ] [ path ] == current . hashes [ path ] {
if parentHashes [ j ] [ path ] == current . hashes [ path ] {
remainingPathsForParent = append ( remainingPathsForParent , path )
remainingPathsForParent = append ( remainingPathsForParent , path )