Linux で svk からチェックアウトした作業コピーを Samba 経由で AnkhSVNから使う

svk を勧められて興味津々。早速導入を決めてちょこちょこ設定やってます。

うち、Windows で *nix 由来のコマンド使うのなんか気持ち悪いし、コマンドプロンプトは不便という理由で、
HTTP経由でチェックアウトしたリポジトリを Samba 経由で開発用フォルダにアクセスして開発しいます。

これを SVK でできるだけ今までのように使いたいと思って以下のように設定しました。

svk ミラーを作って、svkミラーから作業コピーを svn co svn+ssh://… でチェックアウトしておく

設定はGreenbear Laboratory - SVKを使ってみようを参照しました。

今までHTTP経由で使ってたリポジトリLinux 上で svk を使ってミラーします。手順 (0)〜(2) までは説明通りにすすめます。

「(3)チェックアウトする」というところで、チェックアウトするリポジトリのアドレスを以下のようにします。

svn+ssh:///[server_name]/[path_to_home]/.svk/local/project_x

[server_name] はこの作業コピーを使う全マシンからアクセスできる名前にします。

TortoisePlink の設定をする

TortoiseSVNSSH クライアントの設定を追加します。→ci.pocari.org - TortoiseSVN で公開鍵を使う方法

ここで設定した TortoisePlink の設定を、環境変数 SVN_SSH に書き入れます。ただし、TortoiseSVN のパスはフルパスで、バックスラッシュはダブらせて書きます。たとえばこんな感じ。

C:\\Program Files\\TortoiseSVN\\bin\\TortoisePlink.exe -C -l [login_name] -i C:\\path\\to\\key.ppk

ここまでの設定、図にしたらこんな感じ。

単純に、''共通でアクセスできる名前でチェックアウトしておくとどちらからでも使えますね''、というお話でした。

普段の作業はこんな感じ。

  1. 普段は作業コピーからsvkのミラーへコミット。AnkhSVNが普通に使える。
  2. ある程度段取りついたら svk push -verbatim で一気に送信
  3. 最新のソースがほしいときは svk sync して svk pull してから svn update または AnkhSVN で Update

ただ、うちの環境ではsvn commitの高速化という観点ではちょっと微妙だった。面倒な手順が増えただけなので、デスクトップ環境ではやっぱ元の構成に戻すことにした。

これが生きてくるのはやはりお外に持ち出して開発するときだろう。MacBookでも、Parallels からネットワークドライブ経由で Mac 側に作業フォルダ用意して作業しているので、共通で解決できる名前用意すれば同じ方法が適用できそう。