バージョン管理svnからgitへの移行手順メモ

バージョン管理をsvnからgitへ移行するときの手順をメモしておく
これはsvnのコミット情報をそのままgitに以降するため、コミット番号もそのまま引き継いでプロジェクトを進められる。

作業環境はwindowsでgit bashを使っての移行作業(macターミナルでも同様のはず)
gitバージョンは1.9.2

公式ページ
http://git-scm.com/book/ja/ch8-2.html

手順1:ユーザ名のマッピング用ファイル生成

svnのユーザ情報とgitのユーザ情報(ユーザ名/メールアドレス)をマッピングする
これを行う事で移行後のgitユーザがsvnでどのコミットを実行したかがわかる。

svnのローカル作業ディレクトリ内でコマンド実行

svn log --xml | grep "<author" | sort -u | perl -pe 's/<author>(.*?)<\/author>/$1 = /' > users.txt

「svnユーザ名 = 」がリストで取得できるため
「svnユーザ名 = [gitユーザ名<メールアドレス> ]」 と全てのユーザ情報をマッピングする

手順2:ローカル環境にgitに変換したリポジトリをダウンロード

ローカル環境にsvnをコンバートしたgitリポジトリを生成する

ここでコマンドでローカルリポジトリを生成するパス上でコマンド実行

git svn clone [svnリポジトリpath] --authors-file=users.txt --no-metadata

手順1で作成したユーザ名マッピングファイルを指定してマッピングを行う

手順3:確認

svnのコミット情報を引き継いでgitリポジトリを生成できたか確認し完了

取得したローカルリポジトリのディレクトリ配下でgitのログを確認し表示されれば成功!

 
git log

あとはリモートリポジトリを作成し、pushすればsvnの環境移行完了

その他おすすめの備忘録

Tagged with:
 

コメントを残す