複数のクライアント間でデータを同期するために、git リポジトリをセットアップします。ユーザーは git リポジトリにアクセスできず、そのことさえ知られていないため、(可能であれば) 他のクライアントにプッシュするときにマージ競合のリスクを排除するファイル構造をセットアップしたいと考えています。保存しようとしている複雑なデータ構造を単純化して、「コメント付きの記事」という比喩を使用してデータについて説明しましょう。
私は3つの選択肢を考えていました:
/repository.git/Article1/Article.xml
.../Comment1.xml
.../Comment2.xml
また
/repository.git/Article1/Article_with_comments_appended.xml
また
/repository.git/All_Articles_including_their_comments.xml
ユーザーは次のことができます。
- 記事全体を編集する (めったに)
- コメントを追加する (頻繁に)
- コメントを削除する (めったに)
他のすべてのアクション (特に記事の削除) は使用されません。
では、マージ競合のリスクを最も軽減する代替手段はどれでしょうか? 他のものはありますか?トレードオフのパフォーマンス (代替案 3) とマージ競合のリスクの減少 (代替案 1 & 2) はどうですか?