@@ -27,21 +27,10 @@ type Tree struct {
2727 submoduleCache * ObjectCache [* SubModule ]
2828}
2929
30- // NewTree create a new tree according the repository and tree id
31- func NewTree (repo * Repository , id ObjectID ) * Tree {
32- tree , err := object .GetTree (repo .gogitRepo .Storer , plumbing .Hash (id .RawValue ()))
33- if err != nil {
30+ func (t * Tree ) loadTreeObject () error {
31+ if t .gogitTree != nil {
3432 return nil
3533 }
36-
37- return & Tree {
38- ID : id ,
39- repo : repo ,
40- gogitTree : tree ,
41- }
42- }
43-
44- func (t * Tree ) loadTreeObject () error {
4534 gogitTree , err := t .repo .gogitRepo .TreeObject (plumbing .Hash (t .ID .RawValue ()))
4635 if err != nil {
4736 return err
@@ -53,11 +42,8 @@ func (t *Tree) loadTreeObject() error {
5342
5443// ListEntries returns all entries of current tree.
5544func (t * Tree ) ListEntries () (Entries , error ) {
56- if t .gogitTree == nil {
57- err := t .loadTreeObject ()
58- if err != nil {
59- return nil , err
60- }
45+ if err := t .loadTreeObject (); err != nil {
46+ return nil , err
6147 }
6248
6349 entries := make ([]* TreeEntry , len (t .gogitTree .Entries ))
@@ -74,11 +60,9 @@ func (t *Tree) ListEntries() (Entries, error) {
7460
7561// ListEntriesRecursiveWithSize returns all entries of current tree recursively including all subtrees
7662func (t * Tree ) ListEntriesRecursiveWithSize () (Entries , error ) {
77- if t .gogitTree == nil {
78- err := t .loadTreeObject ()
79- if err != nil {
80- return nil , err
81- }
63+ err := t .loadTreeObject ()
64+ if err != nil {
65+ return nil , err
8266 }
8367
8468 var entries []* TreeEntry
0 commit comments