2

我正在编写一个基于 xml 的文件格式的应用程序,用于存储对象图。我没有以前的版本支持。

我的用户可能会将文件置于版本控制之下,并且(不可避免地)有时需要手动编辑以解决合并冲突。我想首先将发生合并冲突的可能性降到最低,尽可能轻松地解决它们,并将文件在编辑后损坏的可能性降到最低。

如果需要,我可以添加有关我正在存储的数据的特定信息,但我应该记住哪些一般原则?

我已经有了一些想法:

  • 基于文本(显然)
  • 确保相同的对象图始终以相同的方式表示
  • 最小化存储的关系数量
4

1 回答 1

2

我认为在您提到的前两项之后,最重要的可能是确保您不要在一行中放置太多信息。大多数版本控制系统根据行来跟踪和合并更改,因此如果在一行中包含大量信息,那么更改非常不同的内容的人最终可能会修改同一行并因此产生冲突。而且这些冲突会很困难,因为大多数合并工具只支持在 diff 中抓取整行或整块。

换句话说:自由地使用换行符。有太多总比太少好。

另一个考虑是尽可能避免存储在文本中的时间戳、哈希等内容。即,避免每次编辑都会以不可预测的方式发生变化的事情。这些将很难或不可能手动合并。

于 2013-10-10T00:54:33.593 回答