Off-by-one 失去最新版本

背景

我不太确定是 Discourse Shared Edits 还是 wiki-posts 功能,因为在这篇特定的帖子中都启用了这两个功能,以避免一个编辑者使其他人的更改过时。

所以,一个帖子同时启用了 wiki 和共享编辑功能……

Bug 描述

编辑者 A 进行了修订 55 并按下了“完成”。

编辑者 B 直接进入修订历史记录以查看更改。修订计数显示为 54 / 55,但无法访问修订 55。一旦编辑者 B 进行了更改,它就针对修订 54,有效地完全删除了修订 55。

Bug 解决方案

没有办法规避这个问题。wiki 模式不支持同时编辑单个帖子,但共享编辑似乎会与 wiki 修订一起产生此 bug。最好能够同时使用这两个功能(就像 HedgeDoc 所做的那样),或者消除两个编辑模式之间潜在的不匹配。

1 个赞

这是一个棘手的问题,缺点是如果两个编辑者同时编辑,这可能会极大地增加修订次数。

我将尝试为插件添加一个站点设置,以确保禁用多个用户的编辑折叠。

1 个赞

我发现这个 bug 似乎还有另一个方面——但可能不相关。

当帖子开启了共享编辑功能后,如果编辑得太快(大约 20 秒内),就会发生冲突,导致只有一个编辑被保存。换句话说,尽管共享编辑功能显示为激活状态,但它实际上并没有起作用。如果任一作者关闭帖子并重新进入,编辑内容会时而出现时而消失,这会让人非常困惑。

如果放一段时间,一切似乎都会自行解决(尽管会丢失一些内容)。也许在开启共享编辑功能后,将帖子锁定 30 秒可以防止这种情况发生?

1 个赞

是的,通知和同步似乎是这里的正确方法,同意我们应该修复

2 个赞

在今天与一个成熟的共享编辑 + Wiki 帖子再次出现此问题后,问题似乎肯定出在两者功能之间的交互上。

我使用共享编辑已有段时间了,在管理员之间使用时没有出现此问题。只有当同一帖子启用了 Wiki 时,我们才会遇到问题。

明显的解决方法是将所有相关人员设为类别版主或 TL4,这样就不需要 Wiki 了,但这会带来一些后果。

1 个赞

嗯。这似乎是我们丢失帖子编辑的原因,在维基上启用了共享编辑。我天真地使用了维基模式来扩展允许的编辑者范围。

我想,在缺乏“保存修订版本”按钮等备份功能的情况下,将允许的同时编辑者范围扩展到所有读者而不具备维基模式的备份功能,不是一个好主意,对吗?

2 个赞

我认为这仍然是一个问题——昨天肯定在一次重要会议期间造成了混乱!

问题在于,通常需要多个人对共享编辑帖子拥有编辑访问权限,因此 Wiki + 共享编辑组合非常有用。

此外,通常希望在短暂的密集同步活动期间将 wiki 帖子“升级”为共享编辑帖子。我个人认为这是最好的思考方式,用户界面也应该与之匹配——即共享编辑是 wiki 功能的扩展,而不是替代品。

或者,共享编辑是否可以包含对帖子的编辑访问权限作为包的一部分,并且它成为两者选一(两者都无法选择)。我真的不明白这为什么会引起问题。

1 个赞

由于我们遇到了这个 bug,我们正在使用一个外部的笔记应用(HedgeDoc),之后再将内容复制粘贴到 Discourse 中。这有点麻烦,因为 Commonmark 和 HedgeDoc 的 markdown 存在一些差异(例如,HD 有通知、大量的图表插件等,而 Discourse 没有;反之,一些 Discourse 的 markdown 功能 HedgeDoc 不支持,例如箭头:- + \u003e = -\u003e 和一些表情符号)。但这比丢失编辑内容要好得多!

2 个赞