リポジトリの引っ越し(TortoiseSVN)

サイトやなでしこのプログラムなんかを Subversion で管理していて、クライアントには TortoiseSVN を使っているのですが、今日サイトを管理していたローカルリポジトリをWeb上に移しました。理由はいくつかありますが、単にローカルが不便だったから、というのと、せっかく大容量のXREAサーバが勿体ない、というところでしょうか。

ローカルリポジトリはメインPCにあって、サブPCで SVN Update や Commit をするときはネットワーク共有状態にした file:///pcname/svn/repository を対象にするわけです。いちいち共有にするのが面倒だし、かと言って常に読み書き権限付き共有状態でほったらかしておくのは嫌。。。というわけでもうXREAサーバに移すか、と。

ところが単にリポジトリをサーバへアップしただけでは何もできません。まぁ片や Windows, TortoiseSVN で、片やサーバは Linux, Subversion ですからねぇ。(多分関係ない気がするけど。)

Subversion

調べてみると dump (まぁバックアップみたいなもん)を作成すればいいらしいのですが、TortoiseSVN にはこれに該当する機能が実装されていない?らしい。当たった文献が古かったからかもしれませんが。参考 : Subversion の導入 - リポジトリのバックアップ

というわけで、 TortoiseSVN ではできないっぽいので、まず Subversion を導入する。GUI 中心の TortoiseSVN と違って SubversionCUI なのでコマンド叩かないといけないけれど、文献も豊富なのでそう難しくはない。今回 DL したのは、本家サイトの Setup-Subversion-1.5.6.msi で、実行して next 押すだけで install はすぐに完了しました。

svnadmin dump

これで晴れて svnadmin コマンドが使えるようになったので、コマンドプロンプトを開いてローカルリポジトリの dump を作成。

svnadmin dump
svnadmin dump Path\To\Repository > Path\To\Output

最初うっかり出力先> Path\To\Outputを指定しなかったのでひどいことになりましたf(^^;

さて、これで dump ファイルができたので、XREAサーバにアップロードします。

今回2つのリポジトリの dump を作成してどちらも 1 MB くらいはあったので、実際には zip 圧縮して zip アップロードを利用しましたが。

svnadmin create

アップロードしたら適当なSSHクライアントでログインして、適当な場所に空のリポジトリを作成します。後でさっきの dump ファイルを読み込むのですが、読み込むべき場所が先に必要なわけです。

svnadmin create
cd Path/To/Svn
mkdir MyRepo
svnadmin create MyRepo

リポジトリの作成の仕方やSSHクライアント接続の仕方は他で調べてください。

svnadmin load

で、最後に dump ファイルをさっき作ったリポジトリに load して引っ越しは終わり。

svnadmin load
svnadmin load MyRepo < Path/To/Dump

いっちょ上がりー。

TortoiseSVN のSSH接続

あとは TortoiseSVN で作業できるように、SSH接続のパスワード設定をします。設定しないと、何をするにもアカウントとパスワードの入力を求められて厄介です。参考 - XREAサーバでの TortoiseSVN の設定

作業コピーの Relocate

で、最後に Checkout して終わり、でもいいのですが、今までのローカルの作業コピー(workingcopy)を利用するのがスマートです。メニューから、「TortoiseSVN > Relocate 」で新しいリポジトリの場所を指定します。

svn+ssh://s###.xrea.com/virtual/****/Path/To/MyRepo

XREAサーバの場合、こんな感じに「ホスト名/virtual/アカウント名/...」がフルパスになります。

試してないから分からないけど、 www.undefin.net の下にリポジトリを作った場合は"www.undfin.net/..."でも行けるのかな??

いやぁ、長い道のりだった。……日記にまとめ書いてる時間の方がはるかに長かったけど。うん。(爆)