From e767ab73f12a2c3680afa32c2569dde3b9458929 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Fri, 2 Sep 2022 00:49:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?:loud=5Fsound:=20=E7=BB=86=E5=8C=96?= =?UTF-8?q?=E4=BA=91=E7=AB=AF=E5=90=8C=E6=AD=A5=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/repository.go | 36 ++++++++++++++++++++++++++++++++++++ kernel/model/sync.go | 2 -- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/kernel/model/repository.go b/kernel/model/repository.go index c1227210b..24869bf69 100644 --- a/kernel/model/repository.go +++ b/kernel/model/repository.go @@ -17,6 +17,7 @@ package model import ( + "bytes" "crypto/rand" "crypto/sha256" "encoding/base64" @@ -540,6 +541,41 @@ func syncRepo(boot, exit, byHand bool) (err error) { logging.LogInfof("synced data repo [ufc=%d, dfc=%d, ucc=%d, dcc=%d, ub=%s, db=%s] in [%.2fs]", trafficStat.UploadFileCount, trafficStat.DownloadFileCount, trafficStat.UploadChunkCount, trafficStat.DownloadChunkCount, humanize.Bytes(uint64(trafficStat.UploadBytes)), humanize.Bytes(uint64(trafficStat.DownloadBytes)), elapsed.Seconds()) + logging.LogInfof("sync merge result [conflicts=%d, upserts=%d, removes=%d]", len(mergeResult.Conflicts), len(mergeResult.Upserts), len(mergeResult.Removes)) + if 0 < len(mergeResult.Conflicts) { + logBuilder := bytes.Buffer{} + for i, f := range mergeResult.Conflicts { + logBuilder.WriteString(" ") + logBuilder.WriteString(f.Path) + if i < len(mergeResult.Conflicts)-1 { + logBuilder.WriteString("\n") + } + } + logging.LogInfof("sync conflicts:\n%s", logBuilder.String()) + } + if 0 < len(mergeResult.Upserts) { + logBuilder := bytes.Buffer{} + for i, f := range mergeResult.Upserts { + logBuilder.WriteString(" ") + logBuilder.WriteString(f.Path) + if i < len(mergeResult.Upserts)-1 { + logBuilder.WriteString("\n") + } + } + logging.LogInfof("sync merge upserts:\n%s", logBuilder.String()) + } + if 0 < len(mergeResult.Removes) { + logBuilder := bytes.Buffer{} + for i, f := range mergeResult.Removes { + logBuilder.WriteString(" ") + logBuilder.WriteString(f.Path) + if i < len(mergeResult.Removes)-1 { + logBuilder.WriteString("\n") + } + } + logging.LogInfof("sync merge removes:\n%s", logBuilder.String()) + } + if 0 < len(mergeResult.Conflicts) { // 云端同步发生冲突时生成副本 https://github.com/siyuan-note/siyuan/issues/5687 diff --git a/kernel/model/sync.go b/kernel/model/sync.go index 1c122b6aa..aeef97d1c 100644 --- a/kernel/model/sync.go +++ b/kernel/model/sync.go @@ -138,8 +138,6 @@ func incReindex(upserts, removes []string) { util.PushEndlessProgress(msg) } - logging.LogDebugf("sync reindex [upserts=%d, removes=%d]", len(upserts), len(removes)) - // 先执行 remove,否则移动文档时 upsert 会被忽略,导致未被索引 bootProgressPart := 10 / float64(len(removes)) for _, removeFile := range removes { From 81946a7276c9c8510d75cd5601062ef9adf9c266 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Fri, 2 Sep 2022 00:51:08 +0800 Subject: [PATCH 2/2] =?UTF-8?q?:loud=5Fsound:=20=E7=BB=86=E5=8C=96?= =?UTF-8?q?=E4=BA=91=E7=AB=AF=E5=90=8C=E6=AD=A5=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/repository.go | 72 ++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 34 deletions(-) diff --git a/kernel/model/repository.go b/kernel/model/repository.go index 24869bf69..d35250d7e 100644 --- a/kernel/model/repository.go +++ b/kernel/model/repository.go @@ -541,40 +541,7 @@ func syncRepo(boot, exit, byHand bool) (err error) { logging.LogInfof("synced data repo [ufc=%d, dfc=%d, ucc=%d, dcc=%d, ub=%s, db=%s] in [%.2fs]", trafficStat.UploadFileCount, trafficStat.DownloadFileCount, trafficStat.UploadChunkCount, trafficStat.DownloadChunkCount, humanize.Bytes(uint64(trafficStat.UploadBytes)), humanize.Bytes(uint64(trafficStat.DownloadBytes)), elapsed.Seconds()) - logging.LogInfof("sync merge result [conflicts=%d, upserts=%d, removes=%d]", len(mergeResult.Conflicts), len(mergeResult.Upserts), len(mergeResult.Removes)) - if 0 < len(mergeResult.Conflicts) { - logBuilder := bytes.Buffer{} - for i, f := range mergeResult.Conflicts { - logBuilder.WriteString(" ") - logBuilder.WriteString(f.Path) - if i < len(mergeResult.Conflicts)-1 { - logBuilder.WriteString("\n") - } - } - logging.LogInfof("sync conflicts:\n%s", logBuilder.String()) - } - if 0 < len(mergeResult.Upserts) { - logBuilder := bytes.Buffer{} - for i, f := range mergeResult.Upserts { - logBuilder.WriteString(" ") - logBuilder.WriteString(f.Path) - if i < len(mergeResult.Upserts)-1 { - logBuilder.WriteString("\n") - } - } - logging.LogInfof("sync merge upserts:\n%s", logBuilder.String()) - } - if 0 < len(mergeResult.Removes) { - logBuilder := bytes.Buffer{} - for i, f := range mergeResult.Removes { - logBuilder.WriteString(" ") - logBuilder.WriteString(f.Path) - if i < len(mergeResult.Removes)-1 { - logBuilder.WriteString("\n") - } - } - logging.LogInfof("sync merge removes:\n%s", logBuilder.String()) - } + logSyncMergeResult(mergeResult) if 0 < len(mergeResult.Conflicts) { // 云端同步发生冲突时生成副本 https://github.com/siyuan-note/siyuan/issues/5687 @@ -665,6 +632,43 @@ func syncRepo(boot, exit, byHand bool) (err error) { return } +func logSyncMergeResult(mergeResult *dejavu.MergeResult) { + logging.LogInfof("sync merge result [conflicts=%d, upserts=%d, removes=%d]", len(mergeResult.Conflicts), len(mergeResult.Upserts), len(mergeResult.Removes)) + if 0 < len(mergeResult.Conflicts) { + logBuilder := bytes.Buffer{} + for i, f := range mergeResult.Conflicts { + logBuilder.WriteString(" ") + logBuilder.WriteString(f.Path) + if i < len(mergeResult.Conflicts)-1 { + logBuilder.WriteString("\n") + } + } + logging.LogInfof("sync conflicts:\n%s", logBuilder.String()) + } + if 0 < len(mergeResult.Upserts) { + logBuilder := bytes.Buffer{} + for i, f := range mergeResult.Upserts { + logBuilder.WriteString(" ") + logBuilder.WriteString(f.Path) + if i < len(mergeResult.Upserts)-1 { + logBuilder.WriteString("\n") + } + } + logging.LogInfof("sync merge upserts:\n%s", logBuilder.String()) + } + if 0 < len(mergeResult.Removes) { + logBuilder := bytes.Buffer{} + for i, f := range mergeResult.Removes { + logBuilder.WriteString(" ") + logBuilder.WriteString(f.Path) + if i < len(mergeResult.Removes)-1 { + logBuilder.WriteString("\n") + } + } + logging.LogInfof("sync merge removes:\n%s", logBuilder.String()) + } +} + func needFullReindex(upsertTrees int) bool { return 0.2 < float64(upsertTrees)/float64(treenode.CountTrees()) }