🎨 同步下载后如果 20% 的文件存在更新则全量重建索引 Fix https://github.com/siyuan-note/siyuan/issues/5456

This commit is contained in:
Liang Ding 2022-07-19 10:43:27 +08:00
parent 883049e80e
commit d92f805e31
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
2 changed files with 14 additions and 8 deletions

View file

@ -183,7 +183,7 @@ func (box *Box) Index(fullRebuildIndex bool) (treeCount int, treeSize int64) {
}
}
bootProgressPart = 40.0 / float64(boxLen) / float64(treeCount)
bootProgressPart = 20.0 / float64(boxLen) / float64(treeCount)
i = 0
// 块级行级入库,缓存块

View file

@ -455,7 +455,7 @@ func syncRepo(boot, exit, byHand bool) {
return
}
err = indexRepoBeforeCloudSync(repo)
indexBeforeSync, err := indexRepoBeforeCloudSync(repo)
if nil != err {
syncDownloadErrCount++
planSyncAfter(fixSyncInterval)
@ -467,9 +467,9 @@ func syncRepo(boot, exit, byHand bool) {
if nil != err {
return
}
syncContext := map[string]interface{}{dejavu.CtxPushMsg: dejavu.CtxPushMsgToStatusBar}
_, mergeResult, trafficStat, err := repo.Sync(cloudInfo, syncContext)
elapsed := time.Since(start)
if nil != err {
syncDownloadErrCount++
@ -526,9 +526,15 @@ func syncRepo(boot, exit, byHand bool) {
treenode.InitBlockTree()
}
incReindex(upserts, removes)
cache.ClearDocsIAL() // 同步后文档树文档图标没有更新 https://github.com/siyuan-note/siyuan/issues/4939
fullReindex := 0.2 < float64(len(upserts))/float64(len(indexBeforeSync.Files))
if fullReindex {
RefreshFileTree()
return
}
incReindex(upserts, removes)
if !boot && !exit {
util.ReloadUI()
}
@ -543,10 +549,10 @@ func syncRepo(boot, exit, byHand bool) {
return
}
func indexRepoBeforeCloudSync(repo *dejavu.Repo) (err error) {
func indexRepoBeforeCloudSync(repo *dejavu.Repo) (index *entity.Index, err error) {
start := time.Now()
latest, _ := repo.Latest()
index, err := repo.Index("[Sync] Cloud sync", map[string]interface{}{
index, err = repo.Index("[Sync] Cloud sync", map[string]interface{}{
dejavu.CtxPushMsg: dejavu.CtxPushMsgToStatusBar,
})
if nil != err {
@ -682,7 +688,7 @@ func subscribeEvents() {
eventbus.Subscribe(dejavu.EvtCloudBeforeDownloadFiles, func(context map[string]interface{}, ids []string) {
msg := fmt.Sprintf(Conf.Language(165), len(ids))
util.SetBootDetails(msg)
bootProgressPart = 20 / float64(len(ids))
bootProgressPart = 10 / float64(len(ids))
contextPushMsg(context, msg)
})
eventbus.Subscribe(dejavu.EvtCloudBeforeDownloadFile, func(context map[string]interface{}, id string) {
@ -696,7 +702,7 @@ func subscribeEvents() {
eventbus.Subscribe(dejavu.EvtCloudBeforeDownloadChunks, func(context map[string]interface{}, ids []string) {
msg := fmt.Sprintf(Conf.Language(166), len(ids))
util.SetBootDetails(msg)
bootProgressPart = 20 / float64(len(ids))
bootProgressPart = 10 / float64(len(ids))
contextPushMsg(context, msg)
})
eventbus.Subscribe(dejavu.EvtCloudBeforeDownloadChunk, func(context map[string]interface{}, id string) {