我为自己的域模型实现版本控制(跟踪更新操作期间对象的差异)。域模型具有树结构。例如。 ( - > 是参考)
A
|-> B
|-> C -> A
| -> C
版本控制的要求如下:
[ v1 ] [ v2 ]
A A
|-> [X, Y, Z] |-> [X, Z]
|-> C |-> M
我研究了在同一个对象的两个状态之间设置更改的方法。我使用Java并对存在的方法/解决方案感兴趣。例如。我正在寻找subversion用来创建下一个版本的算法的描述。
我很乐意从你这边得到任何理论或实践建议。
由于
答案 0 :(得分:1)
我怀疑您的域模型没有使用文本文件表示,但作为对象模型很可能在关系数据库中持久存在。我们目前正在设计这个并且已经将其原型化了。
我的经验教训:
答案 1 :(得分:0)
嗯,我想说,你在这里谈到两件不同的事情。
Subversion具有完整树的修订号,这意味着每个更改都是以前版本的廉价副本。因此,对象层次结构中的术语没有变化集。它更多是所有更改的总和 - 它们是按照通常的差异机制按文件计算的。
如果您需要对持久化对象进行版本控制,我会在每个版本中添加一个版本属性,然后为每个类计算差异。但也许你需要告诉我们你打算如何使用这些信息?