ソースをgitとsvnで管理する設定
git-svnが動くようになったところで、UNIX(CentOS)サーバとWindowsに環境設定、SourceForgeのSVNで管理していたソースを、svn, gitそれぞれ両方で管理できるように設定。
git svnコマンド使う方法もありますが、今までなれたsvn単独、調べやすいgit単独でまずやってみたいので・・・・
(追記:以下、src以下を全部引越していますが、プロジェクトごとにtrunk以下のみを移転してgitリポジトリ作った方が良さそうです。操作は、git svnの指定URLが変わる程度)
SourgeForge側の設定
http://sourceforge.jp/docs/Git%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9
開発ダッシュボード→プロジェクト情報変更から「Gitの使用」にチェック
ソースコード→Git管理から、リポジトリ追加。とりあえず「src」を作っておく*1。
SSH鍵はSVNと同じものを使用。
CentOS側の設定
svn(ver.1.6.6)とgit(ver.1.5.1.2)はyum(rpmforge.repo)でインストール。
SorceForgeの規定で、emailはSourceForgeから割り当てられるアドレスに擦る必要があるので、以下の通り設定。
[cake@cake sourceForge]$ git config --global user.email ログイン名@users.sourceforge.jp
現在、sourceForgeSVNのsrc以下のソースを設置しているディレクトリを、gitでも管理可能に設定してみます。
svnのsrc以下に、Gitのシステムファイル無視の設定を追加
[cake@cake git]$ svn propset svn:ignore ".git*" \. [cake@cake src]$ svn st M . [cake@cake src]$ svn commit -m "Git設定ファイル無視の追加"
別のディレクトリで、svnからソースをコピー。.svnを無視するように設定してから、gitにリポジトリに書き込み。
[cake@cake git]$ git svn clone svn+ssh://cake_67@svn.sourceforge.jp/svnroot/trpgtools-onweb/src [cake@cake git]$ vi .gitignore *.svn [cake@cake git]$ git commit -m ".svnを無視" [cake@cake git]$ git push cake_67@git.sourceforge.jp:/gitroot/trpgtools-onweb/src.git master Enter passphrase for key '/home/cake/.ssh/id_rsa': The authenticity of host 'git.sourceforge.jp (202.221.179.25)' can't be established. RSA key fingerprint is b7:78:67:21:63:ef:c2:a8:af:88:6c:a6:98:a7:06:75. Are you sure you want to continue connecting (yes/no)? yes updating 'refs/heads/master' from 0000000000000000000000000000000000000000 to 318e89cbb1bb58616f6a4cfea26d90d84419c164 Generating pack... Done counting 3428 objects. Deltifying 3428 objects... 100% (3428/3428) done Writing 3428 objects... 100% (3428/3428) done Total 3428 (delta 1835), reused 0 (delta 0)
最初のpushなのでmasterが必要。
gitディレクトリから、trunk, tagsなどsvnと共通のディレクトリをすべて削除、ここにsvn checkoutでsrcをチェックアウトする。
この時、.gitや..gitignoreは削除しない。
*1:数分程度で更新