🎨 Generate file history before converting doc to heading/moving blocks https://github.com/siyuan-note/siyuan/issues/14359

This commit is contained in:
Daniel 2025-03-15 11:39:09 +08:00
parent d5d37c9b79
commit 57657b59ea
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
2 changed files with 4 additions and 13 deletions

View file

@ -26,7 +26,6 @@ import (
"github.com/88250/gulu"
"github.com/88250/lute/ast"
"github.com/88250/lute/parse"
"github.com/siyuan-note/filelock"
"github.com/siyuan-note/logging"
"github.com/siyuan-note/siyuan/kernel/cache"
"github.com/siyuan-note/siyuan/kernel/sql"
@ -164,18 +163,7 @@ func Doc2Heading(srcID, targetID string, after bool) (srcTreeBox, srcTreePath st
}
// 生成文档历史 https://github.com/siyuan-note/siyuan/issues/14359
historyDir, err := GetHistoryDir(HistoryOpUpdate)
if nil != err {
logging.LogErrorf("get history dir failed: %s", err)
return
}
historyPath := filepath.Join(historyDir, srcTree.Box, srcTree.Path)
absPath := filepath.Join(util.DataDir, srcTree.Box, srcTree.Path)
if err = filelock.Copy(absPath, historyPath); err != nil {
logging.LogErrorf("backup [path=%s] to history [%s] failed: %s", absPath, historyPath, err)
return
}
indexHistoryDir(filepath.Base(historyDir), util.NewLute())
generateOpTypeHistory(srcTree, HistoryOpUpdate)
// 移动前先删除引用 https://github.com/siyuan-note/siyuan/issues/7819
sql.DeleteRefsTreeQueue(srcTree)

View file

@ -308,6 +308,9 @@ func (tx *Transaction) doMove(operation *Operation) (ret *TxErr) {
return &TxErr{code: TxErrCodeBlockNotFound, id: id}
}
// 生成文档历史 https://github.com/siyuan-note/siyuan/issues/14359
generateOpTypeHistory(srcTree, HistoryOpUpdate)
var headingChildren []*ast.Node
if isMovingFoldHeading := ast.NodeHeading == srcNode.Type && "1" == srcNode.IALAttr("fold"); isMovingFoldHeading {
headingChildren = treenode.HeadingChildren(srcNode)