From: Sergey Matveev <stargrave@stargrave.org>
Date: Wed, 15 Jan 2020 08:34:20 +0000 (+0300)
Subject: Take in advance possible notes objects tree fanout
X-Git-Tag: v0.2.0^0
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=af77745bd0429428851b0f752984932d3e1188a8;p=sgblog.git

Take in advance possible notes objects tree fanout
---

diff --git a/cmd/sgblog/main.go b/cmd/sgblog/main.go
index 4dc9fb2..5ee199e 100644
--- a/cmd/sgblog/main.go
+++ b/cmd/sgblog/main.go
@@ -137,8 +137,19 @@ func getNote(tree *object.Tree, what plumbing.Hash) []byte {
 	if tree == nil {
 		return nil
 	}
-	entry, err := tree.FindEntry(what.String())
-	if err != nil {
+	var entry *object.TreeEntry
+	var err error
+	paths := make([]string, 3)
+	paths[0] = what.String()
+	paths[1] = paths[0][:2] + "/" + paths[0][2:]
+	paths[2] = paths[1][:4+1] + "/" + paths[1][4+1:]
+	for _, p := range paths {
+		entry, err = tree.FindEntry(p)
+		if err == nil {
+			break
+		}
+	}
+	if entry == nil {
 		return nil
 	}
 	blob, err := repo.BlobObject(entry.Hash)