GIT を使用する場合の VCS の操作

以下のサブセクションでは、Virtual DataPort でサポートされる GIT の操作およびこれらの使用方法について説明します。

  • コミット: 「 コミット 」を参照してください。

  • プッシュ: 「 プッシュ 」を参照してください。

  • プル: 「 プル 」を参照してください。

  • 元に戻す: 「 元に戻す 」を参照してください。

プル、プッシュ、および元に戻す操作は、データベースを右クリックしたときは実行できますが、データベース以外のエレメントを右クリックしても実行できません。これは、これらの操作はリポジトリ全体に対してのみ実行でき、1 つのエレメントだけに対して実行することはできないからです。

コミット

「コミット」を実行すると、Virtual DataPort によって、変更されたエレメントの VQL が生成され、その VQL がローカルリポジトリにコミットされます。

1 つのエレメント (変更された依存関係もコミットされる)、フォルダー、またはデータベース全体をコミットできます。これを行うには、エレメント、フォルダー、またはデータベースを右クリックして、[Commit] をクリックします。次のようなダイアログが表示されます。

GIT: commit dialog

GIT: [Commit] ダイアログ

削除されたエレメントは、薄いグレーのフォントで表示されます。

ダイアログの上部にあるテキストボックスに「コミットメッセージ」を入力して、[Commit] をクリックします。

コミットの author フィールドおよび committer フィールドは、Administration Tool にログインしているユーザーのユーザー名になります。

これらのフィールドの値の取得を、Virtual DataPort サーバーを実行しているホストの GIT 構成に依存するよう設定する場合は、VQL シェルから次のコマンドを実行します。

SET 'com.denodo.vdb.vdbinterface.server.vcs.VCSConfigurationManager.useLoginAsAuthor' = 'false';

この変更を適用するために再起動する必要は ありません

このプロパティを false に設定すると、VCS モジュールは次の順序でシステムからユーザー名を取得しようとします。

  1. リポジトリの構成ファイルから取得。

  2. グローバル gitconfig ファイルから取得。

  3. Virtual DataPort サーバーを実行しているユーザー名を取得。

プッシュ

プッシュは、ローカルリポジトリからリモートリポジトリにコミットを転送する操作です。

データベースの名前の横に、まだプッシュされていないコミットの数が表示されます。図「 GIT: number of pending commits 」では、保留中のコミットの数は 3 になっています。数値が表示されていない場合、すべてのコミットがプッシュ済みであることを示します。

GIT: number of pending commits

GIT: 保留中のコミットの数

プッシュを実行するには、データベースを右クリックして、[VCS] > [Push] をクリックします。これにより、選択したデータベースで実行されたコミットがすべてプッシュされます。

リモートリポジトリに、まだプルされていないコミットがある場合、エラー「Error pushing database: REJECTED_NONFASTFORWARD」が表示されます。この場合、まずプルを実行してから、プッシュを実行する必要があります。

プル

プルは、リモートリポジトリでの変更をローカルリポジトリにマージする操作です。プル操作は、フェッチとその後のリベースによって実行されます。

プルを実行するには、データベースを右クリックして、[VCS] > [Pull] をクリックします。

プルを実行する場合、競合が生じる可能性があります。ローカルリポジトリにマージするコミットがあり、そのうちのいずれかのコミットによって変更されるエレメントをローカルでも変更していた場合に競合が生じます。

競合が生じた場合、次のようなダイアログが表示されます。

GIT: solving a conflict during a pull

競合が生じたエレメントごとに、[Local] 列のチェックボックスまたは [Remote] 列のチェックボックスをチェックします。

  • [Local] をチェックすると、ローカルでの変更が保持され、リモートリポジトリでの変更は無効にされます。

  • [Remote] をチェックすると、ローカルでの変更が、リモートリポジトリでの変更で上書きされます。

プルによってローカルデータベースからエレメントが削除される場合、次のようなダイアログが表示されます。

GIT: list of removed elements after a pull operation

GIT: プル操作の後に削除されるエレメントのリスト

元に戻す

「元に戻す」操作は、ローカルリポジトリを特定のコミットにリセットします。その際、最後のコミットから始めて、選択したコミットに達するまで各コミットを取り消します。

前のバージョンに戻すことができるのは、管理者とデータベース管理者のみです。これは、標準ユーザーが前のバージョンに戻したときに、そのユーザーが実行を許可されていない VQL ステートメントが前のバージョンに含まれていることによって問題が発生するのを防ぐためです。

この操作では、対象のデータベースに属しているエレメント (データソース、ビュー、Web サービスなど) のみが元に戻され、グローバルエレメント (i18n または jar 拡張機能) が元に戻されることは ありません

元に戻す操作を実行するには、データベースを右クリックして、[VCS] > [Revert] をクリックします。次のようなダイアログが表示されます。

GIT: Reverting your database to a commit

GIT: データベースを特定のコミットに戻す

元に戻す操作の実行後に、プッシュを実行して、変更を元に戻したコミットをリモートリポジトリに転送する必要があります。


グローバルエレメントを元に戻すには、以下の手順に従って実施してください。

  1. グローバルエレメントをチェックインまたはチェックアウトするためのウィザードを開きます。データベースを右クリックして、[VCS] > [Global elements] をクリックします。このウィザードは、管理者のみが使用できます。

  2. データベースが同期されている場合 (つまり、データベース内に変更されているエレメントがない場合)、ダイアログには [Revert] ボタンが表示されます。変更されているエレメントがある場合は、それらをチェックインしてから再開する必要があります。

  3. 元に戻すエレメントを選択して、[Revert] をクリックします。

  4. 選択したエレメントがコミットされた、すべてのコミットが一覧表示されます。戻す先のコミットを選択して、[Ok] をクリックします。