最近のアクセス:
変更を適用
この操作は、チーム開発の履歴ダイアログからアクセス可能です。
変更を適用操作は、ローカルのナレッジベースに、選択したコミットの変更を適用して、その変更と自分のバージョンまたはローカルのコピーに加えた変更 (変更した場合) を自動的にマージします。この場合、一覧に表示されているコミットの中から該当するコミットを1つ選択し、変更を適用操作を行う必要があります。別の方法として、特定の日付またはコミット番号から始まるすべてのコミットですべての変更を適用することもできます。また、別のバージョンから同様の操作を行うこともできます。
イメージ:18308.png
この操作を選択すると、選択したコミットで変更されたオブジェクトが新しい画面にグリッド表示されます。ここで、操作に含めるオブジェクトを選択できます。続行するには、 [ 選択内容をマージ ] オプションをクリックすると実行されます。
イメージ:18309.png
[ 選択内容をマージ ] をクリックすると、オブジェクトのローカルのリビジョンがマージされ、選択されたコミットによって取り込まれた変更が適用されます。このマージは、GXserver から更新する際に行われるものとは異なります。この違いは、変更を適用で選択されたコミットからの変更のみをマージし、これらの変更とローカルのリビジョン間でマージが実行されます。GXServer からオブジェクトを更新すると、サーバーからオブジェクト全体が適用されます。したがって、すべてのコミットから変更が適用され、これらの変更は、オブジェクトのローカルのリビジョンとマージする場合に使用されます。

マージ作業の方法:

イメージ:27073.png
次の 3 つのバージョンのナレッジベースがあるとします: 'KB Customer'、フローズンバージョンである 'Version 1' および 'Upgrades for Version 1' という名前のブランチ。'KB Customer' および 'Upgrades for Version 1' は同期しており、次のコードを持つ 'AddPoints' という名前のプロシージャがあります (3 つのバージョンすべてにあります)。
イメージ:27100.png


ユーザー A および ユーザー B が 'KB Customer' で作業し、ユーザー C が 'Upgrades for Version 1' で作業しているとします。 現時点でユーザー A と ユーザー B の両方が次の操作を実行します:  
コミット # 4:ユーザー A は 'AddPoints' プロシージャーに加えた変更をコミットします。
イメージ:27074.png


ユーザー B はユーザー A によって変更された内容を取得するために、サーバーから 'AddPoints' のオブジェクトを更新します。その後、ユーザー B はコードを追加するためにプロシージャーで作業します。
コミット # 5: ユーザー B は自身が 'AddPoints' プロシージャーに加えた変更をコミットします。
イメージ:27075.png


この時点で、ユーザー C が 5 番目のコミット(コミット # 5)から [ 変更を適用 ] を選択した場合、ユーザー B による変更のみが適用され、ユーザー A による変更は適用されません。つまり、ユーザー A によって加えられたすべての変更は失われるため、ユーザー C が受け取る 'AddPoints' オブジェクトはサーバー内の 'KB Customer' ナレッジベースとは異なります。 [ 変更を適用 ] は 1 つのコミットからの変更のみを考慮しているため、この動作は意図的であり、適切な操作です。 コミット # 5 に対する [ 変更を適用 ] 操作の結果は次のとおりです:
イメージ:27076.png


ユーザー C は 5 番目のコミットの代わりに 2 行のみを受け取り、4 番目のコミットから追加されたコードは取得されません。
 

コンテキストメニューの [ 変更を適用 ]

[ 変更を適用 ] ウィンドウに一覧表示されたオブジェクトに対して、いくつかの操作を実行できます。操作を実行するには、グリッドに表示されたオブジェクトの 1 つを選んで右クリックするだけです。

次の操作を実行できます:
  1. 現在のリビジョンと比較: この操作は、選択されたコミットの完了にサーバー上の対応するオブジェクトとローカルのオブジェクトのリビジョンを比較します。

    イメージ:27086.png

    右側の列に表示される変更は、選択されたコミットによって取得されないものがあるということを理解しておくことが重要です。オブジェクトのローカルバージョンとサーバーバージョンを比較すると、以前のコミットによって取得された違いが表示される可能性があります。
    上記の例では、'AddPoints' プロシージャーがコミット #4 でコミットされ、同じプロシージャーから 5 行目および 6 行目がコミット番号 5 でコミットされました。しかし、コミット # 5 でコミットした、オブジェクトのサーバーのリビジョンは、ローカルのリビジョンと異なるため、この 3 行が強調表示されます。
  2. リビジョンの変更:  この操作は、サーバーのオブジェクトの該当コミットとその前の結果を比較します。この場合、両方ともサーバーからのオブジェクトのリビジョンであり、特定のオブジェクトに対して選択されたコミットによって取得された変更の差異が表示されます。

    イメージ:27087.png

  3. マージ結果をプレビュー:この操作は、 [ 変更を適用 ] 操作を実行した後 (つまり、 [ 選択内容をマージ ] をクリックした後) で、オブジェクトのローカルリビジョンをどのようにプレビューするかを示しています。左側の列では、( [ 変更を適用 ] 操作を実行する前の) オブジェクトの現在のローカルリビジョンが表示され、右側の列では、マージ結果として、選択されたコミットによって取得された変更のリビジョンが表示されます。
イメージ:27088.png
次のような行は:
&Customer.CustomerPoints = &Customer.CustomerPoints + 100
マージ結果のプレビュー (右側の列) には表示されません。 これは、選択されたコミットに追加されていない行が対象となります。


検討事項

ロックモードが有効で、 [ 変更を適用 ] 操作を実行した場合、マージが行われ、マージされたオブジェクトは強制編集としてマークされます。結果として、この特殊なシナリオにおいて、 [ 変更を適用 ] 操作はロックモードによって課されたいくつかの制限を迂回することになります。
一部のコミットは太字でマークされます (Xev2 Upgrade #2 以上で利用可能)。




サブページ
Created: 14/09/18 03:14 by Admin Last update: 17/06/13 01:36 by Admin
カテゴリ
Powered by GXwiki 3.0