気ままなつぶやき

おべんきょしたこととか

svnからGitHubEnterpriseに移行

〆(._.)メモメモ.

事前準備

svn2gitコマンドを使います
gem installでインストールできますた

$sudo gem install svn2git

いけた

カンタン

移行

project_BをsvnからGitHubEnterpriseに移動します。
|o゚д゚)なんでBやねんって、、、さっきAはやっちゃったから。。。

GHE側の準備

GitHubEnterprise上でorganization作る

やり方は割愛。
画面からぽっちぽっち作れるよ。

organizationを作ったら、必要なメンバーをいれておきましょう。

作ったorganization配下にリポジトリを作る

画像は、初期化しちゃってるけど、初期化しないでー

ぽっちぽっちで作れるからほぼ割愛
f:id:pnsk:20130227194210p:plain

できた
f:id:pnsk:20130227195143p:plain

svnのプロジェクトをgit用の形に変換

最初にインストールした、svn2gitを使いますよ

適当なサーバで、作業ディレクトリとか切ってやりましょう

#プロジェクトのディレクトリを作る
$mkdir project_B
$ cd project_B

変換のコマンドはこんな感じ

$svn2git -v --trunk ${TRUNK_DIRECTORY} --branches ${BRANCHES_DIRECTORY} --tags ${TAGS_DIRECTORY} http://${SVN_IP}/svn/${REPISITORY_NAME}/${PROJECT_NAME}

今回は、
http://xxx.xxx.xxx.xxx/svn/test_svn2git/project_B
を移行したくて、
プロジェクト構成は、project_Bの下に、trunk,branches,tagsがあるので

$svn2git -v --trunk trunk--branches branches --tags tags http://${SVN_IP}/svn/test_svn2git/project_B
#.gitができていることが確認でいる
$ cd project_B
$ ls -a | grep .git
.git

GHEにpushするお

$ git remote add origin http://gheのIP/organazationの名前/NEW_REPOSITORY.git
$ git branch -a
#GHE側で初期化しちゃった場合は、「おまけ」参照
$ git push --all origin 
$ git push --tags  origin

確認

GHEで正常にpushされてるか確認
cloneできるか確認 git clone http://gheのIP/organazationの名前/NEW_REPOSITORY.git

おまけ

#GHE側で初期化しちゃった場合は、-f が必要
$ git push -f --all --progress origin 
$ git push --tags --progress origin