diff --git a/git/githistory/rewriter.go b/git/githistory/rewriter.go index aacba2c2..d59fa5df 100644 --- a/git/githistory/rewriter.go +++ b/git/githistory/rewriter.go @@ -161,6 +161,8 @@ func (r *Rewriter) rewriteTree(sha []byte, path string, fn BlobRewriteFn) ([]byt entries := make([]*odb.TreeEntry, 0, len(tree.Entries)) for _, entry := range tree.Entries { + path := filepath.Join(path, entry.Name) + if cached := r.uncacheEntry(entry); cached != nil { entries = append(entries, cached) continue @@ -170,9 +172,9 @@ func (r *Rewriter) rewriteTree(sha []byte, path string, fn BlobRewriteFn) ([]byt switch entry.Type { case odb.BlobObjectType: - oid, err = r.rewriteBlob(entry.Oid, filepath.Join(path, entry.Name), fn) + oid, err = r.rewriteBlob(entry.Oid, path, fn) case odb.TreeObjectType: - oid, err = r.rewriteTree(entry.Oid, filepath.Join(path, entry.Name), fn) + oid, err = r.rewriteTree(entry.Oid, path, fn) default: oid = entry.Oid