我的用户希望将我的应用设置存储在版本控制系统中。
(该应用程序面向开发人员和设计人员,并允许按文件夹设置。用户经常要求我将这些设置存储在文件夹本身中,以便他们可以将它们提交给VCS。)
设置是从应用的UI修改的,因此以编程方式保存,但我希望生成的文件是人类可读的。我的第一选择是一个漂亮的JSON,除了它合并一个有趣的东西(想想那些禁止的尾随逗号)。
这让我想到了:我可以使用的最难以合并/合并的人类可读文本格式是什么?
我知道很多版本控制系统都支持外部合并工具,但我不想给用户增加额外的设置负担。 我的目标是尽量减少意外冲突,同时保持合理,可读的格式和,而无需用户的任何额外努力。
我存储的数据基本上是一个规则列表,每个规则都有许多用户可配置的属性。像这样:
rules:
- type: compile
source: *.less
destination: *.css
compiler: LESS 1.x
- type: compile
source: *.coffee
destination: *.js
compiler: CoffeeScript 1.3
sourceMaps: true
基于行的YAML看起来是一个相当不错的选择。 OpenSSH风格的配置格式可能会更好。
所以有两个问题:
以前有人试图解决这个问题并且可能会写下他们的经历吗?
在格式化输出文件时我应该考虑的任何问题吗?
E.g。是否有助于在规则之间添加2-3个空行以打败差异上下文并最小化冲突,以防两个用户在最后添加新规则(一个非常典型的情况)?