最近のアクセス:
GeneXus Server バージョン管理モデル

GeneXus Server では、セントラルリポジトリを介して GeneXus ナレッジベースを協同編集および共有することができます。
複数のユーザーが同時に同じオブジェクトを変更する必要がある場合、GeneXus Server は、ユーザーが他のユーザーの作業を誤って阻害することがないようにこのプロセスを監視します。
GeneXus Server には、協同作業用に次の 2 種類のバージョン管理モデルが用意されています。
どちらのモデルも、同じ基本的な問題を解決します。つまり、ユーザーがセントラルリポジトリでお互いの変更を上書きしないようにしながら、情報を共有および編集できるようにします。

マージモデル

このモデルでは、ユーザーはローカルにあるナレッジベースのコピーでオブジェクトを変更します。ただし、複数のユーザーが同じオブジェクトを変更した場合は、自動マージツールが各変更をマージしてからリポジトリに書き込みます。
複数のユーザーが同じオブジェクトを変更した場合は、最初に変更したユーザーだけがコミットできます。他のユーザーがコミットしようとすると、最初にローカルにある対象オブジェクトを更新するように通知されます。この更新により、ローカルのナレッジベースのコピーとサーバーのナレッジベースで既に変更された内容がマージされます。この更新とマージの後でのみ、ユーザーはオブジェクトをコミットできます。
ほとんどの場合、マージ処理は自動的に行われますが、ユーザーはコミットを行う前に (必要に応じて) 結果を確認することができます。
たとえば、あるユーザーがトランザクションにルールを追加し、別のユーザーが構造に項目属性を追加した場合、結果としてマージされたトランザクションには、新しいルールと新しい項目属性が取り込まれます。結果を確認した後は、変更をコミットするだけです。
ただし、まれにマージを自動的に実行できない場合があります。
たとえば、両方のユーザーがプロシージャーのソースコードの同じ行を変更した場合、どちらのユーザーの変更を優先すべきか、または新しい行とすべきか、変更結果を判断できません。
このようなケースでは、更新を行うと、ローカルの変更はマージされず、既定でサーバーのバージョンが保持され、ユーザーに警告が表示されます。ローカルのナレッジベースのリビジョン履歴にはオブジェクトの以前のリビジョンが残っているため、ユーザーは両者を比較して、必要に応じて自分のバージョンに簡単に復元したり、手動で変更を統合したりできます。この場合も、統合が完了した時点で、GeneXus Server にコミットできます。


ロックモデル

ロックモデルは、一度にオブジェクトを変更できるユーザーを 1 人に制限するという GeneXus Server のもう 1 つのバージョン管理方法です。このモデルを使用した場合、GeneXus では、作業中のナレッジベース内のすべてのオブジェクトが読み取り専用に設定されます。
ユーザーがオブジェクトを変更するためには、最初にサーバーからロックを取得する必要があります。ロックは一度に 1 人のユーザーにのみ付与されるため、同時変更が抑止されます。


マージモデルとロックモデルの相違点

ユーザーが誤ってお互いの作業を上書きすることを効果的に防ぐという点では、どちらも同じくらい安全です。マージモデルは、複数のユーザーによる変更が競合する可能性は実際には少ないという統計的事実に基づいており、たとえ衝突したとしても、そのほとんどはインテリジェントなマージツールによって解決することができます。したがって、自由度と柔軟性の高いマージモデルは、一般的に、より形式的で制限のあるロックモデルよりも好まれ、推奨されます。
ただし、状況、プロジェクト、組織によっては、ロックモデルが適している場合もあるため、チームはナレッジベースごとにモデルを選択できます。





サブページ
Created: 14/09/18 03:10 by Admin Last update: 20/12/25 00:25 by Admin
カテゴリ
Powered by GXwiki 3.0