バージョン管理を追加して、既存のシステムに健全性をもたらそうとしています。問題は、システムがレイアウトのようなファイルシステムにうまく変換されないことです。いくつかの思考実験の後、私はこれを処理するための基本的な方法を持っていますが、この混乱の使用を許可し始める前に、集合的にそれを実行したいと思います。
システムは、型指定されたオブジェクトとリンクで構成されています。オブジェクトはリンクテーブルでリンクされ、意味のある関係を形成します。リンクも型付きオブジェクトであり、独自の属性を持つことができます。
ユーザーは、任意のレベルのオブジェクトのビューに到達し、リンクをたどって上下に歩き、関係を確認できます。
ほとんどのオブジェクトには、他のオブジェクトへの何百ものリンクがあります。一部のオブジェクトまたはリンクは静的と見なすことができるため、すべてのオブジェクトまたはリンクがバージョン管理下にあるわけではありません。バージョン管理されていないオブジェクトへのバージョン管理されたリンクを持つことができます。
オブジェクトへの変更は、階層のセクションのレイアウト全体を含むバッチとして到着します。ユーザーのコメントやバージョン情報自体はほとんど含まれていません。したがって、変更は、新しいオブジェクトを前のオブジェクトと比較することによって検出されます。リンクの変更もこの方法で検出されます。オブジェクトは、あるバージョンで追加したり、次のバージョンで削除したり、次のバージョンで再度追加したりできます。ほとんどのオブジェクトには、これが実際に存在の内外でフリップフロップしたのと同じオブジェクトであることを検出するのに十分な固有の情報があります。
変更されないオブジェクトとリンクでは、個々のオブジェクト用に新しいバージョンを作成する必要はありませんが、バッチ更新の結果として生じる全体的なコンテンツは、グループとして識別できる必要があります。
95%のユーザーは、最新バージョンのオブジェクト/関係にのみ関心がありますが、残りの5%については、以前にコミットされたオブジェクト/関係を表示できる必要があります。
私の最初の考えは、変更のバッチの全体的なバージョンuidを実装し、それをその反復の現在のすべてのオブジェクト/リンクに関連付けることです。残りは手に入れる準備ができています。ここまでできたらありがとうございます。考え?