Git-TFを使ってTFVCリポジトリを履歴ごとGitリポジトリに移行する
事の発端は@kkamegawaさんのツイート↓
TFVCで作ったチームプロジェクトをチェックインの履歴込みでGitに移行するのは結構簡単だよという話。Git-tf使ってどどんと。 / “MSDN Blogs” http://t.co/2gIZBcD16Q
— kkamegawa (@kkamegawa) 2015, 5月 20
そんなまさか…。あの気難しいTFSのリポジトリでそんなにさくっといくはずが…。
そう思っていた時代が私にもありました。
実際にやってみる
こういうのは実際にやってみるに限る。ということで検証してみます。
基本的には@kkamegawaさんのツイートにあるBlogの説明沿ってやれば簡単に出来ます。
Git-TFの導入
※Gitの導入の説明は割愛します(他所で山ほど情報転がってると思いますし)
何かしらの方法で入れておいてください。
Git-TFのページからダウンロードします。2015/5/20現在の最新はGit-TF 2.0.3.1の模様。
Git-TF - Home
ダウンロードしたzipファイルを解凍して、適切な場所に配置します(C:\git-tf等)
配置したパスを環境変数のPATHに登録しておくと後が楽な気がします。
何とこれだけで完了。
Gitリポジトリの準備
TFVCを使用しているチームプロジェクトは既に存在していると仮定して、移行先のGitリポジトリを持つチームプロジェクトを準備します。
ちなみにここでの説明用環境はVisual Studio Onlineを利用します。
Home画面からNewを選択して…
Version ControlでGitを選択したプロジェクトを作成します。
作成したプロジェクトのCode画面を開くとこんな感じですね。
TFVCリポジトリからローカルのGitリポジトリにクローン
もうセクションの見出しからしてちょっと何言ってるかわからないレベルですが、クローンするんです。
Git bashなど、ターミナル上で適当に用意したワークスペースに移動しておきます。
そして、以下のコマンドを実行します。
Git-tf clone "http://<TFS Server Name>:Port/tfs/<CollectionName> "$/TeamProjectName" --deep
ここではDefaultCollection上のIPTimeLinerというプロジェクトからTFVCリポジトリをクローンします。 これだけでTFVCのリポジトリがGitのリポジトリとしてクローンされます。
クローンしたリポジトリをリモートリポジトリにプッシュする
あとはクローンしたリポジトリをローカルからリモートにプッシュするだけです。
フォルダを移動してremote addします。
そしてpushするだけ。
これで見事にTFVCのリポジトリをGitのリポジトリに履歴ごと移動できました!
以上、本当にさくっと移行できてしまいました…。小一時間も掛からないレベル…。
TFVCでプロジェクト作っちゃったけど、プルリク使ってレビューのサイクル回したい!とかいう方はゼヒ試してみると良いかと思います。