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

时间:2015-10-24 04:32:32

标签: socket.io google-docs overwrite real-time-updates etherpad

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

我正在考虑每个 k 秒将文档有效负载与commit消息一起发送到DVCS。对于撤消/重做问题,我可能会使用Rope

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

1 个答案:

答案 0 :(得分:1)

根据您的代码,您正在使用网络技术。

采用@DavidYue的建议并使用差异同步 [1],我建议使用本文[2]期间开发的diffsync

在使用socket.io的封面下,请参阅example with client, server and DataAdapter (data-source)

[1] N. Fraser,“Differential Synchronization”,DocEng'09,2009年ACM文献工程研讨会论文集,2 Penn Plaza,Suite 701,纽约,纽约10121-0701 ,2009年,第13-20页。

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