コミットあるSVNリポジトリをGit(GitLab)に移行した話バージョン管理tanaka2017.08.08こんにちは、今年は2017年ですね。このたび、2009年からコミット履歴のあるプロジェクトのSVNリポジトリをようやくGitに移行しました。その手順やハマリどころについてまとめておきたいと思います。マージしないコミットが増えると衝突が発生したり、時間経過で差が増えていき辛い感じになってました。そこでGit(GitLab)に移行することにしました。直接のプッシュは禁止し、すべてマージリクエストでマージするようにしました。ブランチごとのレビュー環境を自動で作成・消去する仕組みを構築しました。Gitリポジトリへの変換SVNリポジトリにはユーザー名しか登録されていないので、フルネームとメールアドレスへの変換リストを用意しておきます。リポジトリから抽出することも出来ますが割愛します。コマンドで変換します。fetchこの時点ではsvnリポジトリに追加されても、あとで再フェッチするので問題ありません。時にいろいろオプションが付いています。以下は、標準的で無い処理をしたくなったので追加しています。ディレクトリにコミットしており、除外しました。すれば、中断されたところから再開されます。28,000コミットあると、昼間の作業で変換が終わりません。セッションが切れても処理が継続するようにしました。フェッチし終わって変換されたローカルのGitリポジトリは本移行の時のためバックアップをしておきます。svn2git.example.com_fetched_only変換したら、すべてのブランチをチェックアウトします。いうファイルを登録しておきます。いうファイルを作成して、コミットします。28,000コミットあると、10,000コミット前後でフェッチ処理がほとんど進まなくなり、時間が掛かりすぎてしまうため、上記の方法をとりました。Vagrantで作るPHPアプリケーション開発環境のようなGitリポジトリをプロジェクト用に作ってありましたので統合しました。戻して、すべてのブランチをチェックアウト→空のディレクトリの作成...をやりなおすことで、1日程度で移行できます。DQNEO起業日記まとめもし、Gitに移行したいけどできてないかたの助けになれば幸いです。使うなら入れておきたいツールまとめバージョン管理tnakamura2013.05.16バシャログ。Web制作スタッフによるブログです。「現場で使えるテクニック」をモットーに、Web制作全般についてお届けします。