From f29ad3168c5c4eb370a7e7e43950b8bd026c90df Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Sat, 2 Jul 2022 12:16:50 +0800 Subject: [PATCH] :art: Sync repo --- kernel/go.mod | 2 +- kernel/model/repository.go | 23 ++++++++--------------- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/kernel/go.mod b/kernel/go.mod index 0fa09fcae..c3b9e8138 100644 --- a/kernel/go.mod +++ b/kernel/go.mod @@ -112,7 +112,7 @@ require ( replace github.com/mattn/go-sqlite3 => github.com/88250/go-sqlite3 v1.14.13-0.20220412041952-88c3aaa8595e -//replace github.com/siyuan-note/dejavu => D:\88250\dejavu +replace github.com/siyuan-note/dejavu => D:\88250\dejavu //replace github.com/siyuan-note/httpclient => D:\88250\httpclient //replace github.com/imroc/req/v3 => D:\88250\req //replace github.com/88250/lute => D:\gogogo\src\github.com\88250\lute diff --git a/kernel/model/repository.go b/kernel/model/repository.go index f680a4e4c..6b28c3c86 100644 --- a/kernel/model/repository.go +++ b/kernel/model/repository.go @@ -305,7 +305,7 @@ func syncRepo() (err error) { defer WatchAssets() start := time.Now() - latest, fetchedFiles, err := repo.Sync(Conf.Sync.CloudName, Conf.User.UserId, Conf.User.UserToken, Conf.System.NetworkProxy.String(), util.AliyunServer, map[string]interface{}{ + latest, mergeUpserts, mergeRemoves, err := repo.Sync(Conf.Sync.CloudName, Conf.User.UserId, Conf.User.UserToken, Conf.System.NetworkProxy.String(), util.AliyunServer, map[string]interface{}{ CtxPushMsg: CtxPushMsgToStatusBar, }) elapsed := time.Since(start) @@ -316,30 +316,23 @@ func syncRepo() (err error) { return } util.PushStatusBar(fmt.Sprintf(Conf.Language(149)+" [%s]", elapsed.Seconds(), latest.ID[:7])) - if 1 > len(fetchedFiles) { - // 没有下载到新文件,直接返回 - return - } - - // 下载到文件后,需要恢复到工作区并重建索引 - - upsertFiles, removeFiles, err := repo.Checkout(latest.ID, map[string]interface{}{ - CtxPushMsg: CtxPushMsgToStatusBarAndProgress, - }) - if nil != err { - util.PushClearProgress() + if 1 > len(mergeUpserts) && 1 > len(mergeRemoves) { + // 没有数据变更,直接返回 return } + // 有数据变更,需要重建索引 var upserts, removes []string - for _, file := range upsertFiles { + for _, file := range mergeUpserts { upserts = append(upserts, file.Path) } - for _, file := range removeFiles { + for _, file := range mergeRemoves { removes = append(removes, file.Path) } incReindex(upserts, removes) cache.ClearDocsIAL() + + // 刷新界面 util.ReloadUI() elapsed = time.Since(start) go func() {