最近のアクセス:
GeneXus Server のマージモデル

マージモデルは、GeneXus Server のバージョン管理モデルの 1 つです。
このモードでは、各 GeneXus 開発者が GeneXus Server からナレッジベースを作成する操作によって、同じ GeneXus Server インスタンスからナレッジベースを作成し、それぞれのプライベートコピーを変更します。
すべての変更が完了したら、GeneXus Server 上のナレッジベースに各ユーザーのプライベートコピーがマージされます。

使用例

ユーザー Aユーザー B が、それぞれ同じ GeneXus Server ナレッジベースの作業コピーを作成するものとします。これらのユーザーは同時に作業し、各自のローカルコピー内の同じオブジェクトを変更します。
ユーザー B は、ユーザー A より先にリポジトリに変更を保存します。そのため、ユーザー A が変更を保存しようとすると、GeneXus Server ナレッジベース内のオブジェクトが前回の更新操作以降に変更されていることを知らせるメッセージが表示されます。
それを受けて、ユーザー A は、更新を実行して最新のリビジョンをローカルに取得するか、オブジェクトを元に戻す操作を実行する必要があります。
========== Commit started ==========
Contacting GeneXus Server at 'http://<GeneXus Server のパス>/<GeneXus Server の名前>'... done! 
Exporting Transaction 'Country'...
Exporting Attribute 'CountryName'...
Compressing output file...
Export File Created At: 'C:\Users\<ユーザー>\AppData\Local\Temp\tmp98E3.xpz'
GeneXus Server: Commit to version TravelAgency of KB 'TravelAgency' sent by Local\admin
GeneXus Server: Comments:Country modifications.
GeneXus Server: Processing file...
GeneXus Server: Checking Import References......Finished
GeneXus Server: Reading import file objects......Finished
GeneXus Server: Commit Attribute 'CountryName'... 
GeneXus Server: Successful
warning: GeneXus Server: Commit failed: At least Transaction 'Country' was 
modified in GeneXus Server since your last update. 
Please Update the Knowledge Base and retry.
error: GeneXus Server: Could not commit changes
Commit Failed
更新操作では、GeneXus によってサーバー側のオブジェクトのリビジョンとクライアント側のオブジェクトのリビジョンのマージ操作が試行されます。
結果として、2 つのシナリオが考えられます:
1) ユーザー B の変更がユーザー A の変更と重複しない場合。 
この場合、両方の変更がローカルのナレッジベースの新しいリビジョンにマージされます:
========== Partial Update started ==========
Updating Attribute 'Country'...Successful
Updating Transaction 'Country'...Changes to Transaction 'Country' successfully merged 
(Transaction 'Country', View differences)
Successful
Updating table information...
Reloading Transaction 'Country'...Done
Partial Update Success
ローカルでのマージが正常に実行された後、新たにコミット操作を実行して、GeneXus Server のオブジェクトを更新する必要があります。
2) ユーザー B の変更がユーザー A の変更と重複する場合。
このような状況を競合 (コンフリクト) と呼びます。サーバー側ステータスの新しいリビジョンがローカルのナレッジベースに作成されます:
========== Partial Update started ==========
Updating Attribute 'CountryName'...'CountryName' renamed to 'CountryInitialsName'
warning: Conflict in Attribute 'CountryName'.The object was updated with the server revision. 
Compare with the previous revision and solve the conflict manually (Attribute 'CountryName', View differences)
Successful
Partial Update Success
ユーザーは競合を手動で解決する必要があります。具体的には、両方の変更を確認し、それらの変更を手動で再適用して、ローカルのナレッジベースに新しいリビジョンを生成します。ユーザーが変更の重複を手動で解決した後、改めてコミット操作を実行して、GeneXus Server のオブジェクトを更新する必要があります。

参考情報

ロックモデル
GeneXus Server - 競合とその解決方法



サブページ
Created: 14/09/18 03:10 by Admin Last update: 24/03/26 19:30 by Admin
カテゴリ
Powered by GXwiki 3.0