aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/object/change.go
diff options
context:
space:
mode:
authorAntonio Jesus Navarro Perez <antonio@sourced.tech>2017-04-05 17:13:48 +0200
committerAntonio Jesus Navarro Perez <antonio@sourced.tech>2017-04-06 12:18:49 +0200
commit83e914defef47910ef112b1848c706e176439616 (patch)
tree62e6be8366935fe46e497145f3a4f528e3666056 /plumbing/object/change.go
parent31a249d0d5b71bc0f374d3297247d89808263a8b (diff)
downloadgo-git-83e914defef47910ef112b1848c706e176439616.tar.gz
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.
Diffstat (limited to 'plumbing/object/change.go')
-rw-r--r--plumbing/object/change.go8
1 files changed, 8 insertions, 0 deletions
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
}