From 83e914defef47910ef112b1848c706e176439616 Mon Sep 17 00:00:00 2001 From: Antonio Jesus Navarro Perez Date: Wed, 5 Apr 2017 17:13:48 +0200 Subject: object: fix Change.Files() method behavior (fix #317) - If 'from' or 'to' are tree entries that aren't files, Files() method will return nil instead of object not found error. - Added a test checking this using modules fixture. --- plumbing/object/change.go | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'plumbing/object/change.go') diff --git a/plumbing/object/change.go b/plumbing/object/change.go index d29836d..2f702e4 100644 --- a/plumbing/object/change.go +++ b/plumbing/object/change.go @@ -46,6 +46,10 @@ func (c *Change) Files() (from, to *File, err error) { if action == merkletrie.Insert || action == merkletrie.Modify { to, err = c.To.Tree.TreeEntryFile(&c.To.TreeEntry) + if !c.To.TreeEntry.Mode.IsFile() { + return nil, nil, nil + } + if err != nil { return } @@ -53,6 +57,10 @@ func (c *Change) Files() (from, to *File, err error) { if action == merkletrie.Delete || action == merkletrie.Modify { from, err = c.From.Tree.TreeEntryFile(&c.From.TreeEntry) + if !c.From.TreeEntry.Mode.IsFile() { + return nil, nil, nil + } + if err != nil { return } -- cgit