我的任务是为非专业人士创建一个版本控制系统(各种)。数据存储为任意json对象,但用户界面不是那么低级别;这是一个很漂亮的GUI。
每种类型的版本化数据都有一个主副本,当用户编辑主版本时,将为自己的工作区创建一个副本;一个准本地分支。
由于我们用户的性质,出现的任何冲突都需要尽可能无缝地处理。它不能复杂,无法将类似git冲突的结果发送给用户并期望他们学会解决这些冲突。冲突将会产生,因为在每个人完成工作后,他们会将其提交审查,如果被接受,它将合并为一个类似主人的分支。
我的第一个想法是拥有一个与每个对象相关联的更改的“元”列表,无论嵌套是多么大,每当发生更改时,将该更改操作添加到与该对象关联的列表中。当用户更改工作区时,查询将检查其他用户的更改是否会发生冲突,并且会向用户发送通知,以便他们联系创作冲突其他部分的用户。
这是一种实用的方法吗?除了作为一个大型项目之外,还有任何明显的缺点吗?是否有更好的选择为非技术人员编写版本控制系统?