恢复旧版本本身应可撤销
别名: 恢复可撤销 · restore undo · revert undo
概念解释
从历史里把某一份快照变成当前内容,叫恢复。恢复会覆盖此刻正在用的稿。若这一步不能再退回去,历史就从「可对照的过去」变成一次性的赌博。恢复本身应可撤销指:恢复之后,被覆盖的那一版还在,人能立刻回到恢复前,而不是只能在历史里碰运气找刚才那份。它不解释历史列表怎么浏览比较,也不解释快照存几天。协作里别人还没同步的编辑怎么处理,是回滚机制,不是「我刚点的恢复能不能反悔」。
机制
选哪一份去恢复,是在信息不完整时做的:人看见时间戳和摘要,未必看见全文所有字段。点错、点太早、看错作者,都会把好的当前稿换成旧稿。若恢复是不可逆的覆盖,代价与删库相近,人会不敢用历史。撤销把恢复降成可逆动作:当前稿在恢复时被收成一条新的历史,而不是销毁。时间窗口要够人发现「这不是我想要的」——打开一看字段没了,再立刻退回。若撤销只存在于键盘快捷键、界面无入口,等于对一部分人不可逆。恢复若再触发一次「你确定」,而确定之后仍不可退,确认只是把焦虑前移,没有降低后果。
怎么研究
让人从历史恢复到指定旧版,再发现选错(关键字段丢失),看能否回到恢复前的稿。比较:恢复不可逆、恢复后短时吐司撤销、恢复写入新历史且可再恢复到上一当前。
自变量:被覆盖稿是否自动成为新快照、撤销入口位置与窗口时长、恢复前是否强制确认。 因变量:错误恢复后的找回率、不敢使用恢复的比例、确认被习惯性点过的次数。
实验室被试知道这是「恢复任务」,会异常谨慎。更干净的做法是把恢复嵌进修错任务,并准备一份摘要看起来对、正文其实不对的快照。不要和「删除的撤销」混测——对象不同。
边界
法规要求的不可篡改记录,恢复可能被禁止;此时历史只读,谈不上撤销恢复。恢复到空或损坏的快照时,撤销必须仍指向恢复前的完好稿,而不是再恢复一次损坏。多人同时在线时,你的撤销不应默默抹掉别人在你恢复之后写下的新句——那是协作回滚要处理的边界,个人单机草稿则可以整份退回。自动保存若在撤销窗口里又写了一份新快照,要避免把「撤销恢复」和「撤销刚才那次自动保存」搅在同一个栈里说不清。
怎么落地
- 恢复时把当时的当前稿写成一条新历史,再把旧快照复制为当前;界面提供「撤销刚才的恢复」,而不是只有确认框。
- 撤销入口出现在恢复刚刚发生的那一屏,窗口以分钟计,到期后仍可从历史里找到被覆盖的那条。
- 不要用不可逆确认代替可撤销;若必须确认,确认文案写清「当前稿会保留在历史里」。
- 验证:让人恢复错版本,立刻找回来。若只能靠记得时间戳在列表里翻,或当前稿已经找不到,恢复就还不可撤销。再观察有没有人因为怕点错而拒绝使用恢复。