Subversionでの連携を数日考えたり調べたり、実際にモジュールをインストールしてみたりしたんですが、どうにもこうにもうまく行かず・・・
あきらめようかと思ったんですが、そういえばsubversionではなく、gitでも連携できたなーと思い、subversion→git→retrospectivaというなんかややこしい方法でとりあえずソース確認を出来るようにしました。とりあえずきりが無いので、今回はこれで我慢ということにさせてください。

まだ動作確認(主にレポジトリの同期に関して)が済んでいませんが、うまくいってなかったらcronで動かせばいいかなと思ってます。

【追記】
やっぱりタスクで動いてくれないみたいなのでcronで動かすことにします。
また後日追記しますね。

■パスとか
subversionのレポジトリパス /var/www/svn/repos
新しく作るgitのレポジトリパス /var/www/git/repos

■gitのインストール
CentOS 4.7へのgitのインストールはyumにて可能です。
# yum --enablerepo=dag list git-core


(retrospectivaのソース持ってくるときに既にgit使っていたので、インストール済みのはずですが、多分書いてなかったなと。)

■レポジトリの移行
んでsubversionのレポジトリをgitへ移行します。まずはgit用のディレクトリ作成。作成したら適切にchownしておいてください。
$ mkdir /var/www/git/repos/
$ cd /var/www/git/repos/

その後、gitのレポジトリを作成(初期化)して、subversion側のファイルをコピーしてきます。
$ git config --global user.name "jOX"
$ git config --global user.email jOX@hogehoge.com
$ git svn init file:///var/www/svn/repos/
$ git svn fetch

これで終わりです。git使うときは最初に個人登録しないと動かないそうです。
あと、更新履歴が多いとclone(fetch)に少し時間がかかっちゃうかもしれません。

■retrospectivaの設定
管理者権限でログインして、管理→レポジトリ一覧→新しいリポジトリを作成を選択。
種類をもちろんgitにし、適当な名前を入れて、ファイルパスを入れます。今回の例だと、「/var/www/git/repos/」ですね。
で、これが動くのかが謎なんですがsync callbackに、
「cd /var/www/git/repos/ && git svn rebase」
と入れておきます。動作すれば、設定時間ごとに、subversionにて変更の会った場所をgit側に反映してくれるはずなんですが、これはしばらく使いながら様子見です。
で、作成ボタンでレポジトリを作成したら、今度はプロジェクトを作成・または更新にて、先程作ったレポジトリを指定してやります。パスは空ならgitのルートからみえますし、ブランチを切っていて指定したければ指定してやります。普通にディレクトリ名を入れてやればOKといわれるはずです。
また、その下の利用モジュールのBrowse Sourceにもチェックを入れ、作成・更新ボタンを押して管理(ダッシュボード)の設定は終わりです。
後は、ダッシュボードではない方、管理の隣にあるプロジェクト一覧からプロジェクトへ行けば、ソースの閲覧ボタンが追加されていて、そこから確認できるかと思います。

■参考URL
http://wadslab.net/2008/07/subversion-git/
ありがとうございます。

■で
難産でしたが、実際は重いので使わないと思いますw
一回アクセスすれば、そんなに重くないんですけど、初回アクセスがすごい遅いんですよね・・・。

コメント

お気に入り日記の更新

最新のコメント

この日記について

日記内を検索