Skip to main content
Perforce の depot を、履歴を含めて新しい Diversion リポジトリにインポートできます。 インポートはお客様が用意するマシン(インポート用マシン)上で実行され、そのマシンは Perforce サーバーにネットワーク接続できる必要があります。 Perforce のパスワードはインポート用マシンに残り、Diversion に送られることはありません。 Diversion アプリがリポジトリと API トークンを作成し、インポート用マシンに必要な設定ファイルを生成します。 その後、インポート用マシン上のスクリプトが Docker でインポートを実行し、5 分ごとに Diversion と通信します。
ご自身でインポートを実行できない場合(Windows マシンしかない場合など)は、代わりにマネージドインポートを依頼してください。

インポート用マシンの要件

  • bash と cron のある Unix マシン
  • Docker Engine 20.10 以降と Docker Compose プラグイン 2.17 以降
  • Perforce サーバー、および HTTPS で Diversion へのネットワーク接続
  • 任意: curl と AWS CLI。ない場合、スクリプトはコンテナイメージから実行します。

Diversion アプリでインポートを設定する

1

Perforce インポートページを開く

Diversion アプリで New repository をクリックし、Import from P4 を選択します。パンくずリストのリポジトリメニュー下部にある Import from Perforce を選択することもできます。Import from P4 が表示された New repository メニュー
セルフホスト環境では、Import from P4 をクリックすると代わりにリクエストフォームが開き、Diversion チームがインポートを代行します。
2

インポートスクリプトをダウンロードする

Download p4_import_bootstrap.sh をクリックします。スクリプトはすべてのインポートで共通で、このページからいつでもダウンロードできます。
3

新しいリポジトリに名前を付ける

リポジトリ名は depot 名から自動入力されます。必要に応じて変更してください。 リポジトリは組織に属している必要があります。組織がまだない場合は、ここで作成できます。
4

インポート設定を入力する

各欄の意味は下のインポート設定を参照してください。リポジトリとインポート設定が入力された Import from Perforce ページ
5

「Create repository and import files」をクリックする

Diversion がリポジトリ、API トークン、インポート設定を作成します。
6

local.env をダウンロードする

Download local.env をクリックします。このファイルには API トークン、リポジトリ ID、セットアップ手順が含まれています。API トークン、Download local.env ボタン、インポート用マシンのセットアップ手順
API トークンは一度しか表示されません。ページを離れる前に local.env をダウンロードしてください。ダウンロードせずに離れてしまった場合は、失った local.env を復元するを参照してください。

インポート設定

local.env を保護する

local.env には、Diversion アカウントへの管理者権限を持つ API トークンが含まれています。 パスワードと同じように扱ってください:
  • インポート用マシンだけに置き、インポートを実行するユーザーだけが読めるようにします(下の手順の chmod 600 local.env)。
  • バージョン管理にコミットしたり、チャットやメールで共有したり、他のマシンにコピーしたりしないでください。

インポート用マシンでインポートを実行する

以下の手順は、インポートを実行するユーザー(Docker を使えるユーザー)で行ってください。sudo は使わないでください。root の crontab にスケジュールが登録されてしまいます。
1

両方のファイルを同じディレクトリに置く

p4_import_bootstrap.sh と local.env をインポート用マシンの同じディレクトリ(例: /opt/dv-p4-import)にコピーし、そのディレクトリに cd します。
2

スクリプトを実行可能にする

3

Perforce の設定を入力する

local.env を開き、ファイル末尾の Perforce 接続情報を入力します:
API_DOMAIN、API_TOKEN、REPO_ID は生成されたままにしてください。
4

local.env を保護する

5

スクリプトを一度実行して設定を確認する

初回の実行が成功すると、インポート設定をダウンロードし、Diversion のインポートイメージを取得して起動します。 出力には Remote env changed -- recreating: ... のような行が表示され、docker ps でインポートコンテナが動作していることを確認できます。 初回はイメージのダウンロードのため数分かかることがあります。
6

インポートをスケジュールする

このディレクトリからスクリプトを 5 分ごとに実行し、出力を bootstrap.log に追記する crontab エントリを追加します。 実行のたびに、停止したインポートを再起動し、設定の変更を反映します。

インポートの進行状況を確認する

Diversion で新しいリポジトリを開きます。インポートが完了するまで、リポジトリページに Reading history、Preparing history、Uploading files の 3 段階で進行状況が表示されます。 履歴の準備ができると、コミット、ブランチ、ファイルが表示されます。ファイルは内容のアップロード後に開けます。 大きな depot のインポートには時間がかかります。完了するまで、インポート用マシンを起動したまま接続しておいてください。

インポートを停止・削除する

crontab エントリを削除するまで、インポートは動作し続けます。
初回インポートの後も Perforce からの継続的なインポートや Perforce へのエクスポートが必要な場合は、crontab エントリを削除しないでください。継続的なインポート・エクスポートを有効にするにはサポートにお問い合わせください。
インポートが完了し、継続する必要がない場合:
  1. crontab -e を実行し、p4_import_bootstrap.sh を含む行を削除します。
  2. インポート用マシンから local.env を削除します。

トラブルシューティング

スクリプトはエラーを出力に書き込み、スケジュール後はインポート用ディレクトリの bootstrap.log にも書き込みます。

失った local.env を復元する

local.env をダウンロードする前に Import from Perforce ページを離れてしまった場合は、新しいインポートを始めないでください。リポジトリとインポート設定は既に作成されています。代わりにファイルを作り直してください。
1

local.env を作成する

インポート用マシンで、p4_import_bootstrap.sh と同じディレクトリに次の内容で local.env を作成します:
local.env
2

REPO_ID を入力する

Diversion アプリでパンくずリストのリポジトリ名をクリックすると、組織内のリポジトリ一覧が開きます。新しいリポジトリの行にマウスを重ね、表示される Copy repo ID ボタンをクリックします。コピーした ID を REPO_ID に貼り付けます。Copy repo ID ボタンが表示されたパンくずリストのリポジトリメニュー
3

API_TOKEN を入力する

インポートページでトークンをコピーしていた場合は、API_TOKEN に貼り付けます。コピーしていない場合は、新しいトークンを生成します:
  1. 右上のアバターをクリックし、メニューから Integrations を選択します。
  2. Generate a new API token をクリックし、名前を入力して Generate token をクリックします。トークンがリポジトリへの管理者権限を持つよう、リポジトリを作成したユーザーでサインインした状態で生成してください。
  3. トークンをコピーし、API_TOKEN に貼り付けます。トークンは一度しか表示されません。
Generate a new API token ボタンが表示された Integrations ページ
4

セットアップを続ける

マネージドインポートを依頼する

上記の要件を満たせない場合は、Diversion がインポートを代行します。Import from Perforce ページ下部の Request a managed import を使うか、support@diversion.dev までお問い合わせください。