Microsoft TFS および Subversion を使用する場合の VCS の操作

以下のサブセクションでは、Microsoft TFS または Subversion で VCS 統合を使用する場合にチェックイン (コミット) およびチェックアウト (更新) の操作が機能する仕組みについて説明します。

チェックイン/コミットの操作

リソースをバージョン管理リポジトリに送信するアクションは、一般的にチェックインまたはコミットと呼ばれます。バージョン管理下にないリソースは、コミットする前に追加する必要があります。Virtual DataPort では、これらのコマンドは 1 つの操作「 チェックイン 」に統合されています。

1 つのエレメント (およびその依存関係すべて)、フォルダー、またはデータベース全体をチェックインできます。チェックインの際、チェックインされるエレメントのリストを示すダイアログが表示されます。ダイアログの上部にあるテキストボックスに「チェックインメッセージ」を入力して、[VCS] > [Check in] をクリックします。

コミットの 作成者 は、[VCS Management] ダイアログで入力したユーザー名になります。

VCS システムを使用していて、エレメントをチェックインしようとしたときに、そのエレメントを前回チェックアウトした 後に 別のユーザーによって変更が加えられ、チェックインされていた場合、そのエレメントで競合が生じます。他のユーザーによって加えられた変更を知らずに上書きすることを防止するために、すべての VCS システムで競合が検出されます。Virtual DataPort には、2 つのリソース間に競合がある場合に役立つ「競合検出システム」も用意されています。

[Check in] ダイアログには、「競合検出」が Administration Tool で有効になっているかどうかによって、異なるオプションが表示されます。「競合検出」が有効になっているかどうかを確認するには、[Tools] メニューの [Admin Tool preferences] をクリックして、[VCS] タブをクリックします。[Enable conflict detection] チェックボックスがチェックされていたら、「競合検出」は有効になっています。これは、Administration Tool で指定する基本設定です。つまり、グローバル設定ではありません。

Administration Tool で競合検出が無効になっている場合 (デフォルトであり、推奨オプション)、[Check in] ダイアログには、2 つのチェックボックスが表示されます (「 Check in dialog with “conflict detection” disabled 」を参照)。

Check in dialog with “conflict detection” disabled

「競合検出」が無効になっている [Check in] ダイアログ

  1. Enable conflict detection チェックボックス:

    1. [Check in] ダイアログの [Enable conflict detection] をチェックすると、Virtual DataPort サーバーでは、コミットを実行する前に、選択されたリソースのローカルバージョンとリモートバージョンで競合があるかどうかが確認されます。

      競合がない場合、想定どおりにチェックインが実行されます。

      競合がある場合、[Conflicts] タブに切り替わり (「 Check in dialog: Conflicts tab 」を参照)、競合があるエレメントのリストが表示されます。ローカルバージョンとリモートバージョンの VQL の差分を確認するエレメントを選択します。外部差分ビューアーツールを設定している場合は、[Compare] をクリックすると、その外部ツールで差分を確認できます。

      外部差分ツールへのパスを設定するには、[Tools] メニューから [Admin Tool preferences] を開き、[VCS] タブをクリックします (詳細については、「 Administration Tool の VCS 設定 」を参照してください)。

      競合がある場合、次の 2 つのオプションから選択できます。

      1. VCS サーバーに保存されているバージョンをローカルバージョンで上書きします。これを行うには [Check in] をクリックします。

      2. ローカルバージョンを、VCS サーバーに保存されているバージョンで上書きします。これを行うには、[Cancel] をクリックします。次に [Server Explorer] で、エレメントを右クリックして、[Check out] をクリックし、VCS サーバーに保存されているバージョンを取得します。

    2. [Enable conflict detection] チェックボックスのチェックをはずすと、競合は、VCS サーバーによって検出されることになります。[Check in] ダイアログの [Check in] ボタンをクリックした際、Virtual DataPort によって変更のコミットが試行されますが、競合があると、VCS サーバーがエラーを返すため、コミット操作は失敗します。VCS サーバーから返されるエラーは、各 VCS サーバーで異なります。Subversion では、エラーは「File xxx is out of date」です。

Check in dialog: Conflicts tab

[Check in] ダイアログ: [Conflicts] タブ

  1. Resolve conflicts automatically with local changes: このチェックボックスがチェックされている場合、エレメントで競合が生じると、リモートバージョンはローカルバージョンで上書きされます。このオプションをチェックする場合、他のユーザーがコミットしていた変更が知らずに失われる可能性があるため、注意が必要です。

競合検出が有効な場合、[Check in] ダイアログにこれら 2 つのチェックボックス ([Enable conflict detection] および [Resolve conflicts automatically…]) は表示されません。この場合、エレメントを右クリックして [Check-in] をクリックすると、競合が自動的に確認されるからです。競合があると、[Conflicts] タブがすぐに表示され、競合がないと、このタブは無効になります。

重要

Administration Tool では、「競合検出システム」はデフォルトで無効になっています。これは、このプロセスの実行が低速であるためで、特にデータベースに多くの変更がある場合に顕著です。このため、競合検出の実行には VCS サーバーを使用することをお勧めします。VCS サーバーでは、このプロセスをはるかに速く実行できるからです。何らかの時点で、競合があるためにチェックイン操作が失敗した場合、[Check in] ウィザードを再度開いて、[Enable conflict detection] チェックボックスをチェックできます。

チェックアウト/更新の操作

Virtual DataPort では、 チェックアウト更新 のコマンドは、1 つの操作「 チェックアウト 」に統合されています。1 つのエレメントとその依存関係すべて、フォルダー、およびデータベース全体をチェックアウトできます。

エレメントをチェックアウトするには、[Server Explorer] でエレメントを右クリックして、[VCS] > [Check out] をクリックします。[Check out] ダイアログの [Revision] リストで、取得するリビジョンを選択するか、手動で入力します。通常は、デフォルトのオプション [HEAD] を選択するだけです。データベースまたはフォルダーをチェックアウトする場合、データベースまたはフォルダー全体をチェックアウトすることも、[Element] をクリックして、リストから選択することでいずれかのエレメントを 1 つ選択することもできます。

[Check out] ダイアログには、「競合検出」が Administration Tool で有効になっているか無効になっているかによって、異なるオプションが表示されます。「競合検出」が有効になっているかどうかを確認するには、[Tools] メニューから [Admin Tool preferences] を開き、[VCS] タブをクリックします。[Enable conflict detection] チェックボックスがチェックされていたら、「競合検出」は有効になっています。これは、Administration Tool で指定する基本設定です。つまり、グローバル設定ではありません。

Administration Tool で競合検出が無効になっている場合 (デフォルトであり、推奨オプション)、[Check out] ダイアログには、3 つのチェックボックスが表示されます (「 Check out dialog of a database with “conflict detection” disabled 」を参照)。

Check out dialog of a database with “conflict detection” disabled

「競合検出」が無効になっているデータベースの [Check out] ダイアログ

  1. Enable conflict detection:

    1. [Check out] ダイアログの [Enable conflict detection] をチェックすると、Virtual DataPort サーバーでは、選択したリソースのローカルバージョンとリモートバージョンで競合があるかどうかが確認されます。

      競合がない場合、想定どおりにチェックアウトが実行されます。

      競合がある場合、[Conflicts] タブに切り替わり (「 Check out dialog: Conflicts tab 」を参照)、競合があるエレメントのリストが表示されます。ローカルバージョンとリモートバージョンの VQL の差分を確認するエレメントを選択します。

      外部差分ビューアーツールを設定している場合は、[Compare] をクリックすると、その外部ツールで差分を確認できます。

      外部差分ツールへのパスを設定するには、[Tools] メニューから [Admin Tool preferences] を開き、[VCS] タブをクリックします (詳細については、「 Administration Tool の VCS 設定 」を参照してください)。

      競合がある場合、次の 2 つのオプションから選択できます。

      1. ローカルバージョンを、VCS サーバーに保存されているバージョンで上書きします。これを行うには、[Check out] をクリックします。

      2. VCS サーバーに保存されているバージョンをローカルバージョンで上書きします。これを行うには、[Cancel] をクリックします。次に [Server Explorer] で、エレメントを右クリックして、[VCS] > [Check in] をクリックし、VCS サーバーにローカルバージョンを保存します。

    2. [Enable conflict detection] および [Resolve conflicts automatically…] の各チェックボックスのチェックをはずしている場合、ローカルで変更したエレメントと VCS サーバーのエレメントとの間に競合が生じた際には、チェックアウトは失敗します。

  1. Resolve conflicts automatically with remote changes ([Enable conflict detection] のチェックがはずれている場合にのみ選択可能):

    1. これをチェックしている場合に、ローカルで変更したエレメントと VCS サーバーのエレメントとの間に競合が生じた際には、ローカルバージョンは VCS のバージョンで上書きされます。

      このオプションをチェックする場合、知らずに変更が失われる可能性があるため、注意が必要です。

    2. このチェックをはずしている場合に、ローカルで変更したエレメントと VCS サーバーのエレメントとの間に競合が生じた際には、チェックアウトは失敗します。

  2. Include Jars and I18N maps: これをチェックした場合、Virtual DataPort サーバーは、チェックアウトされたエレメントの依存関係である jar および i18n マップをチェックアウトします。このチェックアウトプロセスで、Virtual DataPort サーバーは、ローカルのバージョン管理外の jar および I18N マップと同じ名前の jar または I18N マップを VCS から取得します。この jar または I18N マップは、ウィザードの以下のステップの [Overwritings] タブに表示されます。

Check out dialog: Conflicts tab

[Check out] ダイアログ: [Conflicts] タブ

競合検出が有効な場合、[Check out] ダイアログに [Enable conflict detection] チェックボックスおよび [Resolve conflicts automatically…] チェックボックスは表示されません。この場合、Virtual DataPort によって競合が自動的に確認されるからです。

重要

Administration Tool では、「競合検出システム」はデフォルトで無効になっています。これは、このプロセスの実行が低速であるためで、特にデータベースに多くの変更がある場合に顕著です。このため、競合検出の実行には VCS サーバーを使用することをお勧めします。VCS サーバーではこのプロセスをはるかに速く実行できるからです。何らかの時点で、競合があるためにチェックアウト操作が失敗した場合、[Check out] ウィザードを再度開いて、[Enable conflict detection] チェックボックスをチェックできます。

チェックアウトの結果として 1 つまたは複数のエレメントが削除された場合、そのエレメントは、[Check out] ダイアログの [Deletions] タブに表示されます。