协作文档/代码编辑、处理撤消和冲突?

Posted

技术标签:

【中文标题】协作文档/代码编辑、处理撤消和冲突?【英文标题】:Collaborative document/code editing, handling undo and conflicts? 【发布时间】:2016-01-23 17:05:30 【问题描述】:

当多人实时编辑文档时,有很多方法可以处理撤消/重做和冲突。

我正在考虑每隔 k 秒将文档有效负载通过 commit 消息发送到 DVCS。对于撤消/重做问题,也许我会使用Rope。

但我不确定。解决合并冲突和每个用户撤消/重做的最佳方法是什么?例如:Google Docs 是如何做到的?

【问题讨论】:

我在实时协作方面没有太多经验,但我相信 Google Docs 使用了一个称为差分同步的系统:static.googleusercontent.com/media/research.google.com/en//pubs/… 谢谢,有趣的文章。也许添加为答案? PS:在slideshare.net/briancavalier/…找到这个github.com/cujojs/jiff 【参考方案1】:

根据您使用的网络技术标签。

听取@DavidYue 的建议并使用差分同步[1],我推荐使用本文中开发的diffsync[2]

在它使用socket.io 的掩护下,请参阅example with client, server and DataAdapter (data-source)。


[1] N. Fraser, “Differential Synchronization”, DocEng'09, 2009 ACM 文档工程研讨会论文集, 2 Penn Plaza, Suite 701, New York, New York 10121-0701, 2009, pp . 13–20.

[2] J. Monschke,“Building a collaborative music production environment using emerging web standards”,硕士论文,HTW,柏林,德国,2014 年。

【讨论】:

以上是关于协作文档/代码编辑、处理撤消和冲突?的主要内容,如果未能解决你的问题,请参考以下文章

在线文档 - 为什么需要OT算法

杂谈:Atom Teletype 协作代码编辑

撤消麻烦:以编程方式初始化`NSPersistentDocument`,标题栏中没有“已编辑”标志

在线word文档编辑都有哪些

如何在 Windows 上 使用 ONLYOFFICE 协作编辑文档

团队协作三OnlyOffice 实现文件在线预览和编辑