文字列の構造(コレクション)のようなツリーを作成するC++アプリケーションを開発しています。これらのツリー構造の情報をリモート/ローカル(テキストファイルの場合もあります)に保存し、バージョン管理機能を一緒に持つ機能を追加したいと思います。つまり、アプリケーションによって作成されたツリー構造を保存してバージョン管理したいのです。バージョン管理機能には、プロジェクトバージョンの保持、プロジェクトのマージ、ブランチの作成とマージ、ユーザーによる競合の検出と解決、および主にアプリケーションUIによる管理の機能が必要です。 2つのオプションが表示されます。
自分でバージョン管理機能をコーディングできました。
あるいは、Git(または他のバージョン管理システム)を自分のアプリケーションに何らかの方法で埋め込むことができます。これにより、裏で行われるほとんどの作業が処理されます。
自分のアプリケーションにバージョン管理システムを実装する方法についての提案や戦略について、インターネットで役立つ情報は見つかりませんでした。
どの戦略を選択すべきかについての洞察に感謝します。多分もっとアプローチがありますか?長所/短所は何ですか?どのアプローチが最も少ない労力で済みますか?
3つの主なオプションがあります。
独自のバージョン管理システムを導入することは、おそらく良い考えではありません。多くの優れたソリューション(GIT、SVN、RCSなど)があり、それぞれに独自の特性があります。本番用のVCSを作成することは、気弱な人には向いていません...
データ構造をASCIIファイル(JSONやYAMLなど)にシリアル化して、gitで管理しやすくすることができます。
既存のGUIを使用する主な利点は、ユーザーがどのようにVCSとやり取りしたいかを見つけ出し、最も一般的なエラーを処理するという大変な作業をすべて行ったことです。