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つの質問:

  • 誰かが以前にこの問題を解決しようとしたことがあり、おそらく彼らの経験を書き留めましたか?

  • 出力ファイルをフォーマットするときに考慮すべきことはありますか?

    たとえば、ルール間に 2 ~ 3 行の空行を追加して差分コンテキストを無効にし、2 人のユーザーが両方とも最後に新しいルールを追加した場合 (非常に典型的なケース) の競合を最小限に抑えるのに役立ちますか?

4

0 に答える 0