Posted at

SVNのbranchを履歴付でGitのmasterに移行

More than 3 years have passed since last update.

なんのこともないSVNのbranchをSVNの履歴がついた状態で、

Gitのmasterに移行したお話。備忘録です。


背景

SVNでbranch運用していたプロジェクトをGitのmasterに移行したかった。

どうすべきか探ったところ、

git svn clone [-s] -T {trunk} -b {branches} -t {tags}

みたいにすりゃいいよ、ってことだったんですが、そもそもがbranch運用だったために悩む。

で、結局…。


branchをtrunk扱いした

$ git svn clone -T branches/{$BRANCH} https://{$SVN_REPO}/

長いこと待つ。

途中で止まったら

$ git svn fetch

で継続。HEAD REVISIONがYEAH!!みたいなログが出てきたら終わり。

$ git branch

でちゃんとtrunkのようにふるまってることを確認して、

あとはいつも通り

$ git remote add origin https://{$GIT_REPO}.git

して

$ git push -u origin master

する。

開発用のごちゃごちゃしたbranchの移行なので、

revertやmergeしてたりするとどうなるかの検証はしてません。

なにか「もっといい方法があるよ!」「そこ間違ってるよ!」みたいなのあったら

ガンガンご指摘ください!