git-svnでSubversionからGitへ移行する

会社の人に教えてもらったので、試してみた。 svnってよくわからないわ...

1. SVN→Gitへレポジトリを変換する

cloneする

$ git svn clone -s --prefix=svn/ https://hogehoge.com/svn/yourapp

もしくは

init&fetchする

git svn init -s --prefix=svn/ https://hogehoge.com/svn/yourapp
git svn fetch

注意点:cloneする」のと「initしてfetchする」のは同じだけど、エラーが出た時に途中から再開できる「initしてfetch」のほうが良いみたいです。

Gitブランチと区別するために、前に--prefix=svnとつけると、svn/branch-nameとなる。

2. ブランチを移行する

上の作業で、SVNブランチ"branch01" が Git リモートブランチ"svn/branch01" となったので、"branch01"としてGitブランチとする。

$ git branch r
svn/trunk
svn/branch01
svn/branch02

ローカル環境にSVNと同じ名前のブランチを作る

$ git checkout -b "branch-name" "svn/branch-name"

Gitのリモートリポジトリにpushする

$ git remote add origin git@github.com:acccount-name/repo-name.git
$ git push -u origin --all

Subversion管理している昔の案件があったりするので、機会があれば使ってみようかな。