mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-17 07:00:12 +01:00
🎨 同步下载后如果 20% 的文件存在更新则全量重建索引 Fix https://github.com/siyuan-note/siyuan/issues/5456
This commit is contained in:
parent
883049e80e
commit
d92f805e31
2 changed files with 14 additions and 8 deletions
|
|
@ -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
|
i = 0
|
||||||
// 块级行级入库,缓存块
|
// 块级行级入库,缓存块
|
||||||
|
|
|
||||||
|
|
@ -455,7 +455,7 @@ func syncRepo(boot, exit, byHand bool) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = indexRepoBeforeCloudSync(repo)
|
indexBeforeSync, err := indexRepoBeforeCloudSync(repo)
|
||||||
if nil != err {
|
if nil != err {
|
||||||
syncDownloadErrCount++
|
syncDownloadErrCount++
|
||||||
planSyncAfter(fixSyncInterval)
|
planSyncAfter(fixSyncInterval)
|
||||||
|
|
@ -467,9 +467,9 @@ func syncRepo(boot, exit, byHand bool) {
|
||||||
if nil != err {
|
if nil != err {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
syncContext := map[string]interface{}{dejavu.CtxPushMsg: dejavu.CtxPushMsgToStatusBar}
|
syncContext := map[string]interface{}{dejavu.CtxPushMsg: dejavu.CtxPushMsgToStatusBar}
|
||||||
_, mergeResult, trafficStat, err := repo.Sync(cloudInfo, syncContext)
|
_, mergeResult, trafficStat, err := repo.Sync(cloudInfo, syncContext)
|
||||||
|
|
||||||
elapsed := time.Since(start)
|
elapsed := time.Since(start)
|
||||||
if nil != err {
|
if nil != err {
|
||||||
syncDownloadErrCount++
|
syncDownloadErrCount++
|
||||||
|
|
@ -526,9 +526,15 @@ func syncRepo(boot, exit, byHand bool) {
|
||||||
treenode.InitBlockTree()
|
treenode.InitBlockTree()
|
||||||
}
|
}
|
||||||
|
|
||||||
incReindex(upserts, removes)
|
|
||||||
cache.ClearDocsIAL() // 同步后文档树文档图标没有更新 https://github.com/siyuan-note/siyuan/issues/4939
|
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 {
|
if !boot && !exit {
|
||||||
util.ReloadUI()
|
util.ReloadUI()
|
||||||
}
|
}
|
||||||
|
|
@ -543,10 +549,10 @@ func syncRepo(boot, exit, byHand bool) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func indexRepoBeforeCloudSync(repo *dejavu.Repo) (err error) {
|
func indexRepoBeforeCloudSync(repo *dejavu.Repo) (index *entity.Index, err error) {
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
latest, _ := repo.Latest()
|
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,
|
dejavu.CtxPushMsg: dejavu.CtxPushMsgToStatusBar,
|
||||||
})
|
})
|
||||||
if nil != err {
|
if nil != err {
|
||||||
|
|
@ -682,7 +688,7 @@ func subscribeEvents() {
|
||||||
eventbus.Subscribe(dejavu.EvtCloudBeforeDownloadFiles, func(context map[string]interface{}, ids []string) {
|
eventbus.Subscribe(dejavu.EvtCloudBeforeDownloadFiles, func(context map[string]interface{}, ids []string) {
|
||||||
msg := fmt.Sprintf(Conf.Language(165), len(ids))
|
msg := fmt.Sprintf(Conf.Language(165), len(ids))
|
||||||
util.SetBootDetails(msg)
|
util.SetBootDetails(msg)
|
||||||
bootProgressPart = 20 / float64(len(ids))
|
bootProgressPart = 10 / float64(len(ids))
|
||||||
contextPushMsg(context, msg)
|
contextPushMsg(context, msg)
|
||||||
})
|
})
|
||||||
eventbus.Subscribe(dejavu.EvtCloudBeforeDownloadFile, func(context map[string]interface{}, id string) {
|
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) {
|
eventbus.Subscribe(dejavu.EvtCloudBeforeDownloadChunks, func(context map[string]interface{}, ids []string) {
|
||||||
msg := fmt.Sprintf(Conf.Language(166), len(ids))
|
msg := fmt.Sprintf(Conf.Language(166), len(ids))
|
||||||
util.SetBootDetails(msg)
|
util.SetBootDetails(msg)
|
||||||
bootProgressPart = 20 / float64(len(ids))
|
bootProgressPart = 10 / float64(len(ids))
|
||||||
contextPushMsg(context, msg)
|
contextPushMsg(context, msg)
|
||||||
})
|
})
|
||||||
eventbus.Subscribe(dejavu.EvtCloudBeforeDownloadChunk, func(context map[string]interface{}, id string) {
|
eventbus.Subscribe(dejavu.EvtCloudBeforeDownloadChunk, func(context map[string]interface{}, id string) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue