Edit Diff Annotate History
Upload
List
Recent
Alias
Top
Help
「コピー - 修正 - マージ」モデル : Edit
Last updated: Fri Mar 30 22:07:46 +0900 2007
「実装によってはCVSのようになる」と書きましたが、EOFは使い方もCVSに似ているところがあります。 それは「コピー - 修正 - マージ」の作業です。 CVSではファイルのバージョンを管理するのにロックを使いません。 ユーザはそれぞれ編集したいファイルをリポジトリからコピーし、編集が終わったらマージをして作業結果を保存します。 CVSは複数のユーザから同じファイルの変更をマージされても、うまく差分をとって最新の状態を保ちます。 <<cvs_model.png>> EOFでは主にEditingContextを通してデータを操作します。 生成したEditingContextを使ってデータを取得し、変更したら再び同じEditingContextを使って保存します。 EditingContextは、データに変更があればデータベースを更新します。 <<eof_model.png>> CVSを使った作業をEOF的に言い換えると、ユーザはデータを編集するための状況(=編集コンテキスト、EditingContext)を作り、そのコンテキスト内で作業を行います。 CVSの編集コンテキストは人間が管理するので、CVS側から編集コンテキストの区別はできませんが、 EOFでは編集コンテキストが異なればデータの扱いが変わります。 例え内容の同じデータを取得したとしても、編集コンテキストが異なれば同一とはみなされません。 逆に同じ編集コンテキストであれば、異なる条件で取得した内容の同じデータは同一です。 実際に同じデータであるかどうかはオブジェクト同士を比較するだけでわかります。