什么功能使文件格式对VCS友好?

时间:2013-10-09 21:16:59

标签: xml git svn version-control

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

我的用户可能会将文件置于版本控制之下,并且(不可避免地)有时会手动编辑以解决合并冲突。我希望尽可能减少合并冲突发生的可能性,尽可能无痛地解决它们,并尽量减少文件在编辑后被破坏的可能性。

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

我已经有过一些想法:

  • 基于文本(显然)
  • 确保相同的对象图始终以相同的方式表示
  • 最大限度地减少存储的关系数量

1 个答案:

答案 0 :(得分:2)

我认为在你提到的前两个项目之后,最重要的可能是确保你不要在一行上放太多信息。大多数版本控制系统都会根据行跟踪和合并更改,因此如果大量信息包含在一行中,那么改变不同内容的人最终可能会修改同一行,从而产生冲突。而且这些冲突很难,因为大多数合并工具只支持在差异中抓住整条线或整个黑板。

换句话说:大量使用换行符。有太多而不是太少会更好。

另一个考虑因素是尽可能避免存储在文本中的时间戳,哈希等内容。即,避免随着每次编辑而以不可预测的方式改变的事物。这些将很难或不可能手工合并。