From 0dcca1ec2370f3d51e0d8f0af3abd3ff8f2b21ec Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Sat, 22 Apr 2023 18:28:15 +0800 Subject: [PATCH] :art: Improve data snapshot comparison https://github.com/siyuan-note/siyuan/issues/8081 --- kernel/model/repository.go | 41 +++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/kernel/model/repository.go b/kernel/model/repository.go index 0153441ab..c91abc5a1 100644 --- a/kernel/model/repository.go +++ b/kernel/model/repository.go @@ -138,8 +138,9 @@ type LeftRightDiff struct { } type DiffFile struct { - FileID string `json:"fileID"` - Title string `json:"title"` + FileID string `json:"fileID"` + Title string `json:"title"` + Updated int64 `json:"updated"` } type DiffIndex struct { @@ -175,14 +176,15 @@ func DiffRepoSnapshots(left, right string) (ret *LeftRightDiff, err error) { } luteEngine := NewLute() for _, addLeft := range diff.AddsLeft { - title, err := parseTitleInSnapshot(addLeft.ID, repo, luteEngine) - if "" == title || nil != err { + title, parseErr := parseTitleInSnapshot(addLeft.ID, repo, luteEngine) + if "" == title || nil != parseErr { continue } ret.AddsLeft = append(ret.AddsLeft, &DiffFile{ - FileID: addLeft.ID, - Title: title, + FileID: addLeft.ID, + Title: title, + Updated: addLeft.Updated, }) } if 1 > len(ret.AddsLeft) { @@ -190,14 +192,15 @@ func DiffRepoSnapshots(left, right string) (ret *LeftRightDiff, err error) { } for _, updateLeft := range diff.UpdatesLeft { - title, err := parseTitleInSnapshot(updateLeft.ID, repo, luteEngine) - if "" == title || nil != err { + title, parseErr := parseTitleInSnapshot(updateLeft.ID, repo, luteEngine) + if "" == title || nil != parseErr { continue } ret.UpdatesLeft = append(ret.UpdatesLeft, &DiffFile{ - FileID: updateLeft.ID, - Title: title, + FileID: updateLeft.ID, + Title: title, + Updated: updateLeft.Updated, }) } if 1 > len(ret.UpdatesLeft) { @@ -205,14 +208,15 @@ func DiffRepoSnapshots(left, right string) (ret *LeftRightDiff, err error) { } for _, updateRight := range diff.UpdatesRight { - title, err := parseTitleInSnapshot(updateRight.ID, repo, luteEngine) - if "" == title || nil != err { + title, parseErr := parseTitleInSnapshot(updateRight.ID, repo, luteEngine) + if "" == title || nil != parseErr { continue } ret.UpdatesRight = append(ret.UpdatesRight, &DiffFile{ - FileID: updateRight.ID, - Title: title, + FileID: updateRight.ID, + Title: title, + Updated: updateRight.Updated, }) } if 1 > len(ret.UpdatesRight) { @@ -220,14 +224,15 @@ func DiffRepoSnapshots(left, right string) (ret *LeftRightDiff, err error) { } for _, removeRight := range diff.RemovesRight { - title, err := parseTitleInSnapshot(removeRight.ID, repo, luteEngine) - if "" == title || nil != err { + title, parseErr := parseTitleInSnapshot(removeRight.ID, repo, luteEngine) + if "" == title || nil != parseErr { continue } ret.RemovesRight = append(ret.RemovesRight, &DiffFile{ - FileID: removeRight.ID, - Title: title, + FileID: removeRight.ID, + Title: title, + Updated: removeRight.Updated, }) } if 1 > len(ret.RemovesRight) {