]> Sergey Matveev's repositories - sgblog.git/commitdiff
Take in advance possible notes objects tree fanout v0.2.0
authorSergey Matveev <stargrave@stargrave.org>
Wed, 15 Jan 2020 08:34:20 +0000 (11:34 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Wed, 15 Jan 2020 08:34:20 +0000 (11:34 +0300)
cmd/sgblog/main.go

index 4dc9fb2ccf7abaa0918a1556679a7acc09783622..5ee199e331a0720b2a92fb9a79b896fd878c0d0e 100644 (file)
@@ -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)