mirror of
https://github.com/anyproto/anytype-heart.git
synced 2025-06-08 05:47:07 +09:00
GO-5105: fix history
Signed-off-by: AnastasiaShemyakinskaya <shem98a@mail.ru>
This commit is contained in:
parent
abbf2554a7
commit
e67d3fb7be
4 changed files with 26 additions and 27 deletions
|
@ -29,13 +29,13 @@ import (
|
|||
|
||||
var (
|
||||
file = flag.String("f", "", "path to debug file")
|
||||
fromRoot = flag.Bool("r", false, "build from root of the tree")
|
||||
makeJson = flag.Bool("j", false, "generate json file")
|
||||
makeTree = flag.Bool("t", false, "generate graphviz file")
|
||||
printState = flag.Bool("s", false, "print result state debug")
|
||||
fromRoot = flag.Bool("r", true, "build from root of the tree")
|
||||
makeJson = flag.Bool("j", true, "generate json file")
|
||||
makeTree = flag.Bool("t", true, "generate graphviz file")
|
||||
printState = flag.Bool("s", true, "print result state debug")
|
||||
changeIdx = flag.Int("c", -1, "build tree before given index and print change")
|
||||
objectStore = flag.Bool("o", false, "show object store info")
|
||||
fileHashes = flag.Bool("h", false, "show file hashes in state")
|
||||
objectStore = flag.Bool("o", true, "show object store info")
|
||||
fileHashes = flag.Bool("h", true, "show file hashes in state")
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
|
|
@ -61,23 +61,23 @@ func ExportTree(ctx context.Context, params ExportParams) error {
|
|||
return err
|
||||
}
|
||||
var (
|
||||
changeBuilder = objecttree.NewChangeBuilder(crypto.NewKeyStorage(), writeTree.Header())
|
||||
changeBuilder = objecttree.NewChangeBuilder(crypto.NewKeyStorage(), params.Readable.Header())
|
||||
converter = params.Converter
|
||||
changes []*treechangeproto.RawTreeChangeWithId
|
||||
)
|
||||
err = writeTree.IterateRoot(
|
||||
err = params.Readable.IterateRoot(
|
||||
func(change *objecttree.Change, decrypted []byte) (any, error) {
|
||||
return converter.Unmarshall(change.DataType, decrypted)
|
||||
},
|
||||
func(change *objecttree.Change) bool {
|
||||
if change.Id == writeTree.Id() {
|
||||
if change.Id == params.Readable.Id() {
|
||||
return true
|
||||
}
|
||||
var (
|
||||
data []byte
|
||||
dataType string
|
||||
)
|
||||
data, dataType, err = converter.Marshall(change.Model)
|
||||
data, dataType, err := converter.Marshall(change.Model)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ func ExportTree(ctx context.Context, params ExportParams) error {
|
|||
return err
|
||||
}
|
||||
payload := objecttree.RawChangesPayload{
|
||||
NewHeads: writeTree.Heads(),
|
||||
NewHeads: params.Readable.Heads(),
|
||||
RawChanges: changes,
|
||||
}
|
||||
res, err := writeTree.AddRawChanges(ctx, payload)
|
||||
|
|
|
@ -3,7 +3,6 @@ package debug
|
|||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
stdlog "log"
|
||||
|
@ -13,7 +12,6 @@ import (
|
|||
|
||||
anystore "github.com/anyproto/any-store"
|
||||
"github.com/anyproto/any-sync/commonspace/object/tree/objecttree"
|
||||
"zombiezen.com/go/sqlite"
|
||||
|
||||
"github.com/anyproto/anytype-heart/core/debug/exporter"
|
||||
"github.com/anyproto/anytype-heart/core/domain"
|
||||
|
@ -45,22 +43,19 @@ func (e *treeExporter) Export(ctx context.Context, path string, tree objecttree.
|
|||
defer func() {
|
||||
_ = os.RemoveAll(exportDirPath)
|
||||
}()
|
||||
err = os.Mkdir(dbPath, 0755)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
anyStore, err := anystore.Open(ctx, dbPath, nil)
|
||||
if err != nil {
|
||||
code := sqlite.ErrCode(err)
|
||||
if errors.Is(err, anystore.ErrIncompatibleVersion) || code == sqlite.ResultCorrupt || code == sqlite.ResultNotADB || code == sqlite.ResultCantOpen {
|
||||
if err = os.RemoveAll(dbPath); err != nil {
|
||||
return
|
||||
}
|
||||
anyStore, err = anystore.Open(ctx, dbPath, nil)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
// code := sqlite.ErrCode(err)
|
||||
// if errors.Is(err, anystore.ErrIncompatibleVersion) || code == sqlite.ResultCorrupt || code == sqlite.ResultNotADB || code == sqlite.ResultCantOpen {
|
||||
// if err = os.RemoveAll(dbPath); err != nil {
|
||||
// return
|
||||
// }
|
||||
// anyStore, err = anystore.Open(ctx, dbPath, nil)
|
||||
// if err != nil {
|
||||
// return
|
||||
// }
|
||||
// }
|
||||
return "", err
|
||||
}
|
||||
defer func() {
|
||||
_ = anyStore.Close()
|
||||
|
|
|
@ -50,6 +50,10 @@ func OpenDatabaseWithLockCheck(ctx context.Context, path string, config *anystor
|
|||
return nil, lockCloseNoop, err
|
||||
}
|
||||
store, err = anystore.Open(ctx, path, config)
|
||||
if err != nil {
|
||||
l.Errorf("failed to open anystore again, %s", err)
|
||||
return nil, lockCloseNoop, err
|
||||
}
|
||||
} else {
|
||||
l.Errorf("failed to open anystore, non-recoverable error")
|
||||
// some other error
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue