5

我的用户希望将我的应用程序设置存储在版本控制系统中。

(该应用程序面向开发人员和设计人员,并允许按文件夹进行设置。用户经常要求我将这些设置存储在文件夹本身中,以便他们可以将它们提交给 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 风格的配置格式可能会更好。

所以两个问题:

  • 有没有人尝试过解决这个问题,也许写过他们的经验?

  • 格式化输出文件时我应该考虑的任何事情?

    例如,如果两个用户都在最后添加一个新规则(一个非常典型的情况),在规则之间添加 2-3 个空行以消除差异上下文并最大限度地减少冲突是否会有所帮助?

4

0 回答 0