From bb665828bc5142fa8ab7c8c67fb39a1a30da9475 Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Wed, 18 Jan 2023 09:16:38 +0100 Subject: [PATCH] Few fixes re history --- commonspace/object/tree/objecttree/historytree.go | 12 ++++++++++++ commonspace/object/tree/objecttree/treefactory.go | 2 +- commonspace/space.go | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) 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)