かつてのプロジェクトを改修することになりました。さらには新メンバーを迎えることになりましたので、使っていたsubversionリポジトリをgitへ移行することにしました。
環境
こんな環境です。古いgitだとgit svnコマンドが無いかもです。
- FreeBSD 10.0
- git 2.3.5
作業内容
svnリポジトリをclone
svnリポジトリを取得して、ローカルに展開します。
git svn clone -s --prefix=svn/ file://home/project/repos/myproj
svnリポジトリはtrunk、tags、branchesディレクトリに分かれているので、-s
オプションを付けます。これを付けないと、tagsやbranchesのディレクトリがそのままできてしまいま(す|した)。
--prefix
オプションを付けると、gitのブランチ名にプレフィックスが付きます。なくてもいいけど、付けるとわかりやすいかもです。
タグを移行
git branch -r
とすると、svn/tags/の下にかつて付けたタグが出てきます。これらをgitのタグにします。やってもやらなくてもいいかもです。
git branch -r | grep svn/tags | sed -e 's#svn/tags/##' | xargs -I % git tag % svn/tags/%
中央リポジトリの作成
このあたりはいつものやり方です。はい。
mkdir /home/project/repos/myproj.git
chgrp myteam /home/project/repos/myproj.git
git init --bare --shared=group /home/project/repos/myproj.git
中央リポジトリにpush
このあたりもいつものやり方です。
git remote add origin file:///home/project/repos/myproj.git
git push -u origin --all
git push origin --tags
おしまい
準備できましたので、新人さんにgit cloneしてもらいましょー。
これにて終了です。
お疲れさまでした。