1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-10 18:10:54 +09:00

GO-3273: refactoring

Signed-off-by: AnastasiaShemyakinskaya <shem98a@mail.ru>
This commit is contained in:
AnastasiaShemyakinskaya 2024-08-19 15:23:28 +02:00
parent 9b0ed4e184
commit 49b9964b13
No known key found for this signature in database
GPG key ID: CCD60ED83B103281

View file

@ -28,24 +28,47 @@ func (h *historyTree) rebuildFromStorage(params HistoryTreeParams) (err error) {
func (h *historyTree) rebuild(params HistoryTreeParams) (err error) {
h.treeBuilder.Reset()
if len(params.Heads) == 0 {
h.tree, err = h.treeBuilder.BuildFull()
return
return err
}
if len(params.Heads) == 1 && params.Heads[0] == "" {
params.Heads, err = h.treeStorage.Heads()
if err != nil {
return
}
if len(params.Heads) == 1 {
return h.rebuildWithSingleHead(params, params.Heads[0])
}
if !params.IncludeBeforeId && len(params.Heads) == 1 {
beforeChange, err := h.treeBuilder.loadChange(params.Heads[0])
if err != nil {
return err
}
params.Heads = beforeChange.PreviousIds
h.tree, err = h.treeBuilder.build(params.Heads, nil, nil)
return err
}
func (h *historyTree) rebuildWithSingleHead(params HistoryTreeParams, head string) (err error) {
if head == "" {
return h.rebuildWithEmptyHead(&params)
}
if !params.IncludeBeforeId {
return h.rebuildWithPreviousHead(&params)
}
h.tree, err = h.treeBuilder.build(params.Heads, nil, nil)
return
return err
}
func (h *historyTree) rebuildWithEmptyHead(params *HistoryTreeParams) (err error) {
heads, err := h.treeStorage.Heads()
if err != nil {
return err
}
params.Heads = heads
h.tree, err = h.treeBuilder.build(params.Heads, nil, nil)
return err
}
func (h *historyTree) rebuildWithPreviousHead(params *HistoryTreeParams) (err error) {
beforeChange, err := h.treeBuilder.loadChange(params.Heads[0])
if err != nil {
return err
}
params.Heads = beforeChange.PreviousIds
h.tree, err = h.treeBuilder.build(params.Heads, nil, nil)
return err
}