discardWorkingTree()
function discardWorkingTree(executor, options): Promise<WorkingTreeDiscardResult>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/discard-command.ts:108
把当前分支的工作树整体退回当前 HEAD(FR-016)。
Parameters
| Parameter | Type | Description |
|---|---|---|
executor | TransactionExecutor | 调用方那个写事务的执行器;本函数不自己开事务 |
options | WorkingTreeCredentials | 见 WorkingTreeDiscardOptions;三个捕获位全部必填 |
Returns
Promise<WorkingTreeDiscardResult>
Throws
CommitGraphCorruptedError 当前分支的提交图已损坏时(FR-051)
Throws
NoActiveBranchError 零 active 分支时
Remarks
损坏分支上先拒绝再说:「反正这个分支坏了,顺手清干净」会让用户在唯一还能导出 诊断的时刻失去未提交的那部分数据。
no-op 的判据取实际条目行数而不是 entryCount 冗余列:两者万一已经分岔,按冗余列
判会把一批真实存在的条目永久留在表里(而 status() 报干净),按行数判则顺带把冗余列
收敛回真实值。真正发现分岔是 assertWorkingTreeEntryCountIntact 的职责。
恢复会话与条目一并清除(US-307 AC5):丢弃掉的正是那次恢复写进工作树的全部内容,
留着会话会让 status() 继续报 restoring,而它指向的那批变更已经不在库里了。
discardActiveRestoreSession 排在状态行 UPDATE 之后,且只在非 no-op 路径上——
上面第 2 条要求 clean 丢弃一条写语句都不发。