LFS 移行
Git LFS のデータおよびオブジェクトは、Data Center Migration ツールの使用では移行されないため、クローンや手動での再プッシュが必要となります。
[LFS 対応] はリポジトリ単位の設定です。つまり、インポート後にソース側のリポジトリで有効化すると、ターゲット側のリポジトリで [LFS 対応] が有効化されます。
始める前に
LFS の移行プロセスでは、影響を受けるすべてのリポジトリに対するソース インスタンスでの読み取りアクセスと、同じリポジトリに対するターゲット インスタンス上での書き込みアクセスが必要です。
エクスポートの準備
Data Center Management を使用して生成されるエクスポート出力は LFS オブジェクトを含みません。
このプロセスは LFS オブジェクトについてのみ必要です。
クローンは、エクスポートの前後、またはエクスポートの実行中に作成できます。エクスポート後にソースを破棄する場合、エクスポート アーカイブに LFS オブジェクトは含まれません。LFS オブジェクトはソースまたは別に作成したクローンにのみ存在します。
LFS オブジェクトの移行の準備では、クライアントに Git LFS がインストールされている必要があります。不明点がある場合、「Git Large File Storage」でプロセスについてご確認ください。
1. 移行する LFS オブジェクトを含んむ対象リポジトリのクローンを作成します。
- Git LFS が有効化された各リポジトリについて、移行のソース インスタンスとターゲット インスタンスの両方にアクセスできるマシンにクローンが作成される必要があります。
- それ以外の場合、まずソース インスタンスからクローンを作成し、そのクローンをあとから転送します。
- 使用可能な開発ワークフローの一部として既存のクローンが存在する場合があります。既存のクローンを使用できない、または使用したくない場合、移行プロセス専用のクローンを作成することをおすすめします。
To migrate the full history of LFS objects, you need full clones: use git clone $source_repo_url
for each LFS-enabled repository.
If a recent history will be sufficient, you can use a shallow clone: git clone $source_repo_url --depth 1
or similar, for each LFS-enabled repository.
2. Run git lfs fetch --all
on each individual clone to retrieve the LFS objects.
LFS オブジェクト / データのエクスポート
You can find the full export process here if needed.
1. 既存のデータ センター移行プロセスを使用して対象のリポジトリをエクスポートします。
2. 上記で説明したように、LFS オブジェクトを含むそれぞれのクローンを個別に維持します。
LFS オブジェクト / データのインポート
オブジェクトではなく LFC を有効化する設定のみがリストアされるため、エクスポート前に個別のクローンが作成されます。
1. 既存のデータ センター インポート プロセスを使用して対象のリポジトリをインポートします。
これらのリポジトリではエクスポートされた時点で LFS が有効化されています。
2. Once the import is completed, add the new origin to each of your clones: git remote add $target_instance_name $target_repo_url
3. To complete the process, push LFS objects: git lfs push --all $target_instance_name