バージョン管理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:
 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>