Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
history tree without data option
  • Loading branch information
cheggaaa committed Mar 24, 2026
commit ac086b09decee4d8e1da53142c6b8ed3f6dd15cc
17 changes: 15 additions & 2 deletions commonspace/object/tree/objecttree/objecttreefactory.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ type HistoryTreeParams struct {
AclList list.AclList
Heads []string
IncludeBeforeId bool
BuildEmptyData bool
}

type objectTreeDeps struct {
Expand Down Expand Up @@ -213,7 +214,13 @@ func BuildNonVerifiableHistoryTree(params HistoryTreeParams) (HistoryTree, error
}
root := rootChange.RawTreeChangeWithId()
// Use real key storage to preserve actual identities, but skip verification
changeBuilder := &nonVerifiableChangeBuilder{NewChangeBuilder(crypto.NewKeyStorage(), root)}
var cb ChangeBuilder
if params.BuildEmptyData {
cb = NewEmptyDataChangeBuilder(crypto.NewKeyStorage(), root)
} else {
cb = NewChangeBuilder(crypto.NewKeyStorage(), root)
}
changeBuilder := &nonVerifiableChangeBuilder{cb}
treeBuilder := newTreeBuilder(params.Storage, changeBuilder)
deps := objectTreeDeps{
changeBuilder: changeBuilder,
Expand All @@ -231,7 +238,13 @@ func BuildHistoryTree(params HistoryTreeParams) (HistoryTree, error) {
if err != nil {
return nil, err
}
deps := defaultObjectTreeDeps(rootChange.RawTreeChangeWithId(), params.Storage, params.AclList)
root := rootChange.RawTreeChangeWithId()
var deps objectTreeDeps
if params.BuildEmptyData {
deps = emptyDataTreeDeps(root, params.Storage, params.AclList)
} else {
deps = defaultObjectTreeDeps(root, params.Storage, params.AclList)
}
return buildHistoryTree(deps, params)
}

Expand Down
6 changes: 4 additions & 2 deletions commonspace/objecttreebuilder/treebuilder.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,9 @@ var log = logger.NewNamed(CName)
var ErrSpaceClosed = errors.New("space is closed")

type HistoryTreeOpts struct {
Heads []string
Include bool
Heads []string
Include bool
BuildEmptyData bool
}

type TreeBuilder interface {
Expand Down Expand Up @@ -176,6 +177,7 @@ func (t *treeBuilder) BuildHistoryTree(ctx context.Context, id string, opts Hist
AclList: t.aclList,
Heads: opts.Heads,
IncludeBeforeId: opts.Include,
BuildEmptyData: opts.BuildEmptyData,
}
params.Storage, err = t.spaceStorage.TreeStorage(ctx, id)
if err != nil {
Expand Down
Loading