今の実装ではパラレルで同期したときにはキャンセルはスレッドごとに出来るようになっていますが、一つにまとめてしまった方が良いでしょうか。大抵キャンセルしたいときには全部キャンセルしたい場合がほとんどな気がしますので、いちいち全部キャンセルしなくてはいけないのは面倒ですし。
とりあえず普通にsvnserveで起動しているところにSSHのポートフォワードで接続してみるようにしました。
$ ssh -l username -1 -N -L 3690:aaa.bbb.ccc.ddd:3690 remote.server.com
のようにしてトンネルを用意し(aaa.bbb.ccc.dddはsvnserveが動作しているPCのIPアドレス)、
$ svn checkout svn://localhost/q3/trunk/q3
でチェックアウトできました。この方法のままで、svn側でユーザ名を認識させる方法があれば良いのですが。
SubversionのGUIとして、TortoiseSVNというのがあるようです。シェルエクステンションとして動作するようで、エクスプローラからSubversionの機能が使えるようになるようです。
[PATCH] Simple user-logging for svnserve daemon modeなんていうパッチがあるようです。これを当てると、svn://username@server/...の形式のURLで指定したusernameで処理してくれるというものです。ただ、取り込まれる予定はなさそうですね。
どっち道私以外使っていないのでソースにユーザ名を書き込んでしまうというのもありですが、バージョンアップの度にパッチを当ててビルドするのも面倒ですし。
あとは、レポジトリのディレクトリを共有して、sshdが動作しているゲートウェイでsmbmountしてしまい、そのゲートウェイ上でsvnserveが動作するようにするくらいでしょうか。
cygwinでsshdを動かしてゲートウェイのsshdで二重にトンネルさせるのとどっちが良いか悩みどころですね。