svnのプロジェクトをgithubにコピーし続ける
svnで公開されているオープンソースプロジェクトをgithubで追跡し続けたい。
変更したい場合gitの方が便利なので。なんかそういうサービス・プログラム既にありそうだけど見つからなかったです……(あったらそっち使うので誰か教えて……)
今回は flashからxmpp/jabberが使える xiff というプロジェクトをやってみる。
svn から git にclone
mkdir xiffsync # 作業用 git svn clone -s http://svn.igniterealtime.org/svn/repos/xiff cd xiff/
標準的な構成だったので -s そのまま使えた。
このままだとtagがブランチになっているので、それぞれのブランチにタグを打つ
for i in `git branch -r|grep tags|sed 's/ tags\///g'`; do git tag $i tags/$i ; done
適当だけどこんな感じでまあ動いたので。
github に push。github上ではリポジトリが出来ている前提
git remote add origin git@github.com:nazoking/xiff.git
定期化
リポジトリにpush出来るだけの公開鍵を作る
cd .. # xiffsync に戻る ssh-keygen -f github_deploy_key cat github_deploy_key.pub
これをリポジトリの設定のDeploy keysに登録する。
git でこの鍵を使うためのsshラッパー xiffsync/git_ssh.sh
#!/bin/bash BASEDIR=$(dirname $( readlink -f $(which $0) )) ssh -i $BASEDIR/github_deploy_key "$@"
cron に登録するためのバッチ xiffsync/github_sync.sh
#!/bin/bash -x BASEDIR=$(dirname $( readlink -f $(which $0) )) cd $BASEDIR/xiff git svn rebase GIT_SSH=$BASEDIR/git_ssh.sh git push origin master
この xiffsync/github_sync.sh を定期的に動かせば大丈夫なはず……?
TODO:(誰か教えて)