12
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

新人さんに既存プロジェクトのsvnリポジトリをgitに移行して使ってもらうまで

Posted at

かつてのプロジェクトを改修することになりました。さらには新メンバーを迎えることになりましたので、使っていた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のディレクトリがそのままできてしまいま(す|した)。 :sweat:

--prefixオプションを付けると、gitのブランチ名にプレフィックスが付きます。なくてもいいけど、付けるとわかりやすいかもです。

タグを移行

git branch -rとすると、svn/tags/の下にかつて付けたタグが出てきます。これらをgitのタグにします。やってもやらなくてもいいかもです。 :expressionless:

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してもらいましょー。

これにて終了です。
お疲れさまでした。

12
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?