Skip to main content

Team Foundation バージョン管理リポジトリをインポートする

リポジトリを Git に変換してから、Git リポジトリを GitHub にプッシュすることで、Team Foundation バージョン管理 (TFVC) からリポジトリをインポートできます。

Team Foundation バージョン管理からのインポートについて

Team Foundation バージョン管理 (TFVC) リポジトリを Git に変換するには、Azure Repos を使うことをお勧めします。 ただし、Azure Repos で移行される履歴は最大 180 日間のみです。 さらに多くの履歴を保持したい場合は、代わりに git-tfs を使用できます。

注: Azure Repos では、最大 180 日間の履歴のみが移行されます。 180 日のしきい値より前のリポジトリの状態は、1 回の初期コミットで移行されます。 さらに多くの履歴を保持するには、「git-tfs を使用して移行する」をご覧ください。

これらの手順のようにするには、macOS または Linux システムを使い、次のツールをインストールする必要があります。

  1. GitHub に新しいリポジトリを作成します。 エラーが発生しないようにするには、新しいリポジトリの初期化に README、ライセンス、または gitignore ファイルを使わないでください。 これらのファイルは、プロジェクトを GitHubにプッシュした後で追加できます。 詳しくは、「新しいリポジトリの作成」を参照してください。1. お使いのコンピューターに Git がインストールされていることを確認するには、git --version. を実行します。

    出力は git version 2.40.0 のようになります。1. Git LFS がコンピューターにインストールされていることを確認するには、git lfs --version を実行します。

    出力は git-lfs/3.1.4 (GitHub; darwin arm64; go 1.18.1) のようになります。

  2. Azure Repos を使って TFVC リポジトリを Git に変換します。 手順については、Microsoft Learn の「TFVC から Git にリポジトリをインポートする」をご覧ください。

  3. Azure Repos リポジトリをローカル コンピューターにクローンするには、git clone --mirror URL を実行し、URL を Azure DevOps リポジトリのクローン URL に置き換えます。

    Azure DevOps リポジトリのクローン URL を確認するには、Microsoft Learn の「Azure Repos Git リポジトリの複製 URL を取得する」をご覧ください。

  4. GitHub リポジトリをリモートとして追加するには、URL を先程作成した GitHub リポジトリの URL (例: https://github.com/octocat/example-repository.git) で置き換えて、git remote add origin URL を実行します。1. リポジトリを GitHub にプッシュするには、git push --mirror origin を実行します。

    リポジトリに GitHub のファイル サイズ制限を超えるファイルが含まれている場合、プッシュが失敗する可能性があります。 git lfs import を実行して、大きなファイルを Git LFS に移動してから、もう一度やり直してください。

git-tfs を使用して移行する

git-tfs を使って移行した場合は、TFVC リポジトリの完全な履歴が保持されます。

これらの手順に従って行うには、Windows を使って、次のツールをインストールする必要があります。

  1. GitHub に新しいリポジトリを作成します。 エラーが発生しないようにするには、新しいリポジトリの初期化に README、ライセンス、または gitignore ファイルを使わないでください。 これらのファイルは、プロジェクトを GitHubにプッシュした後で追加できます。 詳しくは、「新しいリポジトリの作成」を参照してください。1. お使いのコンピューターに Git がインストールされていることを確認するには、git --version. を実行します。

    出力は git version 2.40.0 のようになります。

  2. お使いのコンピューターに git-tfs がインストールされていることを確認するには、git tfs --version を実行します。

    出力が、git-tfs version 0.32.0.0 (TFS client library 16.0.0.0 (MS)) のような記述で始まっている必要があります。

    Unable to load DLL 'Microsoft.VisualStudio.Setup.Configuration.Native.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) のような出力が表示される場合は、Visual Studio チーム エクスプローラーが正しくインストールされていることを確認します。

  3. Git LFS がコンピューターにインストールされていることを確認するには、git lfs --version を実行します。

    出力は git-lfs/3.1.4 (GitHub; darwin arm64; go 1.18.1) のようになります。

  4. まだ行っていない場合は、自分の名前とメール アドレスで Git を構成します。それには、git config --global user.name "NAME"git config --global user.email EMAIL を実行し、NAME を自分の名前、EMAIL を自分のメール アドレスに置き換えます。

  5. git tfs clone を実行し、TFVC リポジトリの URL とリポジトリ パスを引数として渡します。 たとえば、example リポジトリを https://dev.azure.com/octocat から /example ディレクトリに格納されている Git リポジトリに変換するには、git tfs clone --branches=all https://dev.azure.com/octocat $/example を実行します。

  6. 新しく作成された Git リポジトリのディレクトリに移動します。1. GitHub リポジトリをリモートとして追加するには、URL を先程作成した GitHub リポジトリの URL (例: https://github.com/octocat/example-repository.git) で置き換えて、git remote add origin URL を実行します。1. リポジトリを GitHub にプッシュするには、git push --mirror origin を実行します。

    リポジトリに GitHub のファイル サイズ制限を超えるファイルが含まれている場合、プッシュが失敗する可能性があります。 git lfs import を実行して、大きなファイルを Git LFS に移動してから、もう一度やり直してください。

参考資料