diff --git a/commonspace/object/tree/objecttree/historytree.go b/commonspace/object/tree/objecttree/historytree.go index d981292d..c81143fc 100644 --- a/commonspace/object/tree/objecttree/historytree.go +++ b/commonspace/object/tree/objecttree/historytree.go @@ -36,5 +36,17 @@ func (h *historyTree) rebuildFromStorage(beforeId string, include bool) (err err } ot.tree, err = ot.treeBuilder.build(heads, nil, nil) + if err != nil { + return + } + ot.aclList.RLock() + defer ot.aclList.RUnlock() + state := ot.aclList.AclState() + + if len(ot.keys) != len(state.UserReadKeys()) { + for key, value := range state.UserReadKeys() { + ot.keys[key] = value + } + } return } diff --git a/commonspace/object/tree/objecttree/treefactory.go b/commonspace/object/tree/objecttree/treefactory.go index 9782afd7..0f8a337d 100644 --- a/commonspace/object/tree/objecttree/treefactory.go +++ b/commonspace/object/tree/objecttree/treefactory.go @@ -177,7 +177,7 @@ func buildHistoryTree(deps objectTreeDeps, params HistoryTreeParams) (ht History newSnapshotsBuf: make([]*Change, 0, 10), } - hTree := historyTree{objectTree: objTree} + hTree := &historyTree{objectTree: objTree} err = hTree.rebuildFromStorage(params.BeforeId, params.IncludeBeforeId) if err != nil { return nil, err diff --git a/commonspace/space.go b/commonspace/space.go index 742ece52..0cde3a0a 100644 --- a/commonspace/space.go +++ b/commonspace/space.go @@ -335,7 +335,7 @@ func (s *space) BuildHistoryTree(ctx context.Context, id string, opts HistoryTre IncludeBeforeId: opts.Include, } params.TreeStorage, err = s.storage.TreeStorage(id) - if err == nil { + if err != nil { return } return objecttree.BuildHistoryTree(params)