diff options
-rw-r--r-- | plumbing/object/tree.go | 2 | ||||
-rw-r--r-- | plumbing/object/tree_test.go | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/plumbing/object/tree.go b/plumbing/object/tree.go index 78d61a1..1f9ea26 100644 --- a/plumbing/object/tree.go +++ b/plumbing/object/tree.go @@ -135,7 +135,7 @@ func (t *Tree) FindEntry(path string) (*TreeEntry, error) { pathCurrent := "" // search for the longest path in the tree path cache - for i := len(pathParts); i > 1; i-- { + for i := len(pathParts) - 1; i > 1; i-- { path := filepath.Join(pathParts[:i]...) tree, ok := t.t[path] diff --git a/plumbing/object/tree_test.go b/plumbing/object/tree_test.go index 889c63a..b408595 100644 --- a/plumbing/object/tree_test.go +++ b/plumbing/object/tree_test.go @@ -125,6 +125,9 @@ func (s *TreeSuite) TestFindEntryNotFound(c *C) { e, err := s.Tree.FindEntry("not-found") c.Assert(e, IsNil) c.Assert(err, Equals, ErrEntryNotFound) + e, err = s.Tree.FindEntry("not-found/not-found/not-found") + c.Assert(e, IsNil) + c.Assert(err, Equals, ErrDirectoryNotFound) } // Overrides returned plumbing.EncodedObject for given hash. |