diff --git a/kernel/model/repository.go b/kernel/model/repository.go index 2547bdca4..61adb7745 100644 --- a/kernel/model/repository.go +++ b/kernel/model/repository.go @@ -37,6 +37,7 @@ import ( "github.com/siyuan-note/logging" "github.com/siyuan-note/siyuan/kernel/cache" "github.com/siyuan-note/siyuan/kernel/sql" + "github.com/siyuan-note/siyuan/kernel/treenode" "github.com/siyuan-note/siyuan/kernel/util" ) @@ -520,16 +521,25 @@ func syncRepo(boot, exit, byHand bool) { for _, file := range mergeResult.Removes { removes = append(removes, file.Path) } - incReindex(upserts, removes) - cache.ClearDocsIAL() - // 刷新界面 - util.ReloadUI() + if boot && gulu.File.IsExist(util.BlockTreePath) { + treenode.InitBlockTree() + } + + incReindex(upserts, removes) + cache.ClearDocsIAL() // 同步后文档树文档图标没有更新 https://github.com/siyuan-note/siyuan/issues/4939 + + if !boot && !exit { + util.ReloadUI() + } + elapsed = time.Since(start) - go func() { - time.Sleep(2 * time.Second) - util.PushStatusBar(fmt.Sprintf(Conf.Language(149), elapsed.Seconds())) - }() + if !exit { + go func() { + time.Sleep(2 * time.Second) + util.PushStatusBar(fmt.Sprintf(Conf.Language(149), elapsed.Seconds())) + }() + } return } diff --git a/kernel/model/sync.go b/kernel/model/sync.go index c6a36a832..e7e2ba049 100644 --- a/kernel/model/sync.go +++ b/kernel/model/sync.go @@ -123,6 +123,7 @@ func SyncData(boot, exit, byHand bool) { // incReindex 增量重建索引。 func incReindex(upserts, removes []string) { + util.IncBootProgress(3, "Sync reindexing...") needPushRemoveProgress := 32 < len(removes) needPushUpsertProgress := 32 < len(upserts) msg := fmt.Sprintf(Conf.Language(35)) @@ -141,6 +142,7 @@ func incReindex(upserts, removes []string) { id := strings.TrimSuffix(filepath.Base(removeFile), ".sy") block := treenode.GetBlockTree(id) if nil != block { + util.SetBootDetails("Sync remove tree " + block.Path) treenode.RemoveBlockTreesByRootID(block.RootID) sql.RemoveTreeQueue(block.BoxID, block.RootID) msg = fmt.Sprintf(Conf.Language(39), block.RootID) @@ -156,7 +158,6 @@ func incReindex(upserts, removes []string) { if needPushRemoveProgress || needPushUpsertProgress { util.PushEndlessProgress(msg) } - sql.WaitForWritingDatabase() for _, upsertFile := range upserts { if !strings.HasSuffix(upsertFile, ".sy") { @@ -175,6 +176,7 @@ func incReindex(upserts, removes []string) { box := upsertFile[:idx] p := strings.TrimPrefix(upsertFile, box) + util.SetBootDetails("Sync upsert tree " + p) tree, err0 := LoadTree(box, p) if nil != err0 { continue diff --git a/kernel/util/working.go b/kernel/util/working.go index 8561722e9..055b329e0 100644 --- a/kernel/util/working.go +++ b/kernel/util/working.go @@ -302,6 +302,7 @@ func initPathDir() { } } +// TODO: v2.2.0 移除 func cleanOld() { dirs, _ := os.ReadDir(WorkingDir) for _, dir := range dirs {