我正在使用基于xml的文件格式编写应用程序,该文件格式存储对象图。我没有以前的版本来支持。
我的用户可能会将文件置于版本控制之下,并且(不可避免地)有时会手动编辑以解决合并冲突。我希望尽可能减少合并冲突发生的可能性,尽可能无痛地解决它们,并尽量减少文件在编辑后被破坏的可能性。
如果需要,我可以添加有关我正在存储的数据的具体信息,但我应该记住哪些一般原则?
我已经有过一些想法:
答案 0 :(得分:2)
我认为在你提到的前两个项目之后,最重要的可能是确保你不要在一行上放太多信息。大多数版本控制系统都会根据行跟踪和合并更改,因此如果大量信息包含在一行中,那么改变不同内容的人最终可能会修改同一行,从而产生冲突。而且这些冲突很难,因为大多数合并工具只支持在差异中抓住整条线或整个黑板。
换句话说:大量使用换行符。有太多而不是太少会更好。
另一个考虑因素是尽可能避免存储在文本中的时间戳,哈希等内容。即,避免随着每次编辑而以不可预测的方式改变的事物。这些将很难或不可能手工合并。