协作文档/代码编辑、处理撤消和冲突?
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 年。
【讨论】:
以上是关于协作文档/代码编辑、处理撤消和冲突?的主要内容,如果未能解决你的问题,请参考以下文章
撤消麻烦:以编程方式初始化`NSPersistentDocument`,标题栏中没有“已编辑”标志