Subversion1.5のWebDAV transparent write-through proxy

タグ:

svnsyncはミラーリングの仕組みなのだが、write-through proxyを使うことで、ApacheにくるSVNリクエストを透過的に転送する。

わかりやすくいうと、svnsyncは同期のためのバックエンドの機能で、write-through proxyはSVNへのリクエストを振り分けを行うフロントエンドのもの。2つの技術を合わせて使うと、分散リポジトリ構成を組める。

svnsyncを使ってリポジトリレプリケーションでも書いたが、svnsyncだと、ミラー側のリポジトリはRアクセスしかだめにしないとだめ。そのために、hooks以下のスクリプトでcommitをはじいたりする処理をいれなければならない。
write-through proxyだと、ミラー側に来たリクエストをマスタ側に転送してくれるのでそういった心配が要らなくなる。Proxyぽく透過的にリクエストを転送してくれるのでwrite-through proxy。

この場合、ネットワーク上に1つのマスタリポジトリがあり、コミット処理はここにえいや!と一元的に管理する。それ以外のミラー側(スレーブ)はRを担当することで、たくさんのスレーブを立てて処理を分散することができる。

参考:
Subversion 1.5 WebDAV Write-Thru Proxies by 本家
Subversion 1.5.0 での新機能 (WebDAV Write Through Proxy)
エンタープライズ環境におけるSubversionの複製アーキテクチャ by japan.internet.com デベロッパーさん
複数のドメインを運営する (バーチャルホスト) by Linuxで自宅サーバさん
バーチャルホストによる複数サイトの同時運用 by @ITさん


共通して


ドメイン名はいいけど、それ以降のパスはそろえたほうがいい。リポジトリ名もそろえておいたほうが良し。
mod_proxy使うわけだからリポジトリ名が異なると「Unusable URI: it does not refer to this repository」みたいに怒られると思う。

環境は以下。ApacheのVirtualDomainを使って、1台のPCに2ドメインをひっつけて環境を作った。

Subversion1.5.3
Windows Vista。
Apache 2.2

master
・master.daipresents.com:8888/svn
・C:\fujihara\svn_masterがリポジトリ置場

slave
・slave.daipresents.com:8888/svn
・C:\fujihara\svn_slaveがリポジトリ置場

マスタの設定

通常のSVN設定と同じく下のような感じでhttpd.confを設定しておけばよい。
 LoadModule dav_module         modules/mod_dav.so
 LoadModule dav_svn_module     modules/mod_dav_svn.so
 LoadModule rewrite_module     modules/mod_rewrite.so
 LoadModule authz_svn_module   modules/mod_authz_svn.so
 
 <VirtualHost *:8888>
   ServerName master.daipresents.com
   DocumentRoot "C:/fujihara/Apache Software Foundation/Apache2.2/htdocs"
   ServerAdmin daipresents@gmail.com
   ErrorLog logs/error_master.log
   TransferLog logs/access_master.log
   
   <Location /svn>
     DAV svn
     SVNListParentPath on
     SVNParentPath C:\fujihara\svn_master
     AuthType Basic
     AuthName "Master Subversion Basic Auth"
     AuthUserFile C:\fujihara\svn_master\passwd
     Require valid-user
   </Location>
 
 </VirtualHost>

マスタにリポジトリを作成。

C:\fujihara\svn_master>svnadmin create repo01

マスタのpost-revprop-change.batを修正。

 echo post-revprop-change.bat,%1,%2,%3,%4,%5 >> "C:/fujihara/Apache Software Foundation/Apache2.2/logs/master.hocks.log"
 svnsync copy-revprops http://slave.daipresents.com:8888/svnsync/repo01 %2 --non-interactive --sync-username=svnsyncuser --sync-password=password

マスタのpost-commit.batを修正。

echo post-commit.bat,%1,%2 >> "C:/fujihara/Apache Software Foundation/Apache2.2/logs/master.hocks.log"
svnsync sync http://slave.daipresents.com:8888/svnsync/repo01 --non-interactive --source-username=svnsyncuser --source-password=password --sync-username=svnsyncuser --sync-password=password


スレーブの設定


Apache2.2のmod_proxyを使う。masterと同じく「/svn」とパスをそろえておく。ローカルのApache1台でやってるのでdav_svn.soとかは省略。

 LoadModule proxy_module modules/mod_proxy.so
 LoadModule proxy_http_module modules/mod_proxy_http.so
 
 <VirtualHost *:8888>
   ServerName slave.daipresents.com
   DocumentRoot "C:/fujihara/Apache Software Foundation/Apache2.2/htdocs"
   ServerAdmin daipresents@gmail.com
   ErrorLog logs/error_slave.log
   TransferLog logs/access_slave.log
   
   <Location /svn>
      DAV svn
      SVNListParentPath on
      SVNParentPath C:\fujihara\svn_slave
      AuthType Basic
      AuthName "Slave Subversion Basic Auth"
      AuthUserFile C:\fujihara\svn_master\passwd
      Require valid-user
      SVNMasterURI http://master.daipresents.com:8888/svn
   </Location>
 
   <Location /svnsync>
      DAV svn
      SVNListParentPath on
      SVNParentPath C:\fujihara\svn_slave
      AuthType Basic
      AuthName "Sync Subversion Basic Auth"
      AuthUserFile C:\fujihara\svn_master\passwd
      Require valid-user
   </Location>
 </VirtualHost>

次にpre-revprop-change.batとstart-commit.batを設定。

exit 0

次にスレーブのリポジトリを初期化。

 C:\fujihara\svn_slave>svnadmin create repo01
 C:\fujihara\svn_slave>svnsync init http://slave.daipresents.com:8888/svnsync/repo01 http://master.daipresents.com:8888/svn/repo01 --non-interactive --source-username=fujihara --source-password=password --sync-username=svnsyncuser --sync-password=password
 Copied properties for revision 0.

svnsyncのときに設定したミラー側(スレーブ)にコミットされないような仕組みが要らなくなるので楽ちん。


動作確認


ためしてみよー。

Masterへのコミット

Apacheのログを確認しながらMasterにコミットをすることには成功。そしてsvnsyncも動いた。
// master apache log.
 127.0.0.1 - - [14/Dec/2008:18:43:03 +0900] "OPTIONS /svn/repo01 HTTP/1.1" 401 401
 127.0.0.1 - fujihara [14/Dec/2008:18:43:08 +0900] "OPTIONS /svn/repo01 HTTP/1.1" 200 -
 127.0.0.1 - fujihara [14/Dec/2008:18:43:08 +0900] "PROPFIND /svn/repo01 HTTP/1.1" 207 651
 127.0.0.1 - fujihara [14/Dec/2008:18:43:08 +0900] "OPTIONS /svn/repo01 HTTP/1.1" 200 190
 127.0.0.1 - fujihara [14/Dec/2008:18:43:08 +0900] "MKACTIVITY /svn/repo01/!svn/act/a667e022-f5b3-a141-8c77-8f2fe9cb1a87 HTTP/1.1" 201 229
 127.0.0.1 - fujihara [14/Dec/2008:18:43:08 +0900] "PROPFIND /svn/repo01/!svn/vcc/default HTTP/1.1" 207 402
 127.0.0.1 - fujihara [14/Dec/2008:18:43:08 +0900] "CHECKOUT /svn/repo01/!svn/bln/2 HTTP/1.1" 201 243
 127.0.0.1 - fujihara [14/Dec/2008:18:43:08 +0900] "PROPPATCH /svn/repo01/!svn/wbl/a667e022-f5b3-a141-8c77-8f2fe9cb1a87/2 HTTP/1.1" 207 462
 127.0.0.1 - fujihara [14/Dec/2008:18:43:08 +0900] "PROPFIND /svn/repo01 HTTP/1.1" 207 387
 127.0.0.1 - fujihara [14/Dec/2008:18:43:08 +0900] "CHECKOUT /svn/repo01/!svn/ver/2/test.txt HTTP/1.1" 201 250
 127.0.0.1 - fujihara [14/Dec/2008:18:43:08 +0900] "PUT /svn/repo01/!svn/wrk/a667e022-f5b3-a141-8c77-8f2fe9cb1a87/test.txt HTTP/1.1" 204 -
 127.0.0.1 - - [14/Dec/2008:18:43:10 +0900] "OPTIONS /svn/repo01 HTTP/1.1" 401 401
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "OPTIONS /svn/repo01 HTTP/1.1" 200 -
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "PROPFIND /svn/repo01 HTTP/1.1" 207 651
 127.0.0.1 - fujihara [14/Dec/2008:18:43:08 +0900] "MERGE /svn/repo01 HTTP/1.1" 200 958
 127.0.0.1 - fujihara [14/Dec/2008:18:43:10 +0900] "DELETE /svn/repo01/!svn/act/a667e022-f5b3-a141-8c77-8f2fe9cb1a87 HTTP/1.1" 204 -
// slave apache.log
 127.0.0.1 - - [14/Dec/2008:18:43:09 +0900] "OPTIONS /svnsync/repo01 HTTP/1.1" 401 401
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:09 +0900] "OPTIONS /svnsync/repo01 HTTP/1.1" 200 -
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:09 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:09 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 410
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:09 +0900] "PROPFIND /svnsync/repo01/!svn/bln/2 HTTP/1.1" 207 461
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:09 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:09 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 1312
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:09 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:09 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 300
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:09 +0900] "PROPPATCH /svnsync/repo01/!svn/bln/0 HTTP/1.1" 207 435
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:09 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 1442
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 1442
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 1442
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 1442
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 1442
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 410
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "PROPFIND /svnsync/repo01/!svn/bln/2 HTTP/1.1" 207 461
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 300
 127.0.0.1 - svnsyncuser [14/Dec/2008:18:43:10 +0900] "PROPPATCH /svnsync/repo01/!svn/bln/0 HTTP/1.1" 207 435


Slaveへのコミット


うまくいった。Masterへ転送され、svnsycnでスレーブも更新となる。

// master apache.log
 127.0.0.1 - fujihara [14/Dec/2008:23:16:30 +0900] "MKACTIVITY /svn//repo01/!svn/act/091ba693-9a6b-ed46-a57d-b3d4a5362a41 HTTP/1.1" 201 229
 127.0.0.1 - fujihara [14/Dec/2008:23:16:30 +0900] "CHECKOUT /svn//repo01/!svn/bln/6 HTTP/1.1" 201 243
 127.0.0.1 - fujihara [14/Dec/2008:23:16:31 +0900] "PROPPATCH /svn//repo01/!svn/wbl/091ba693-9a6b-ed46-a57d-b3d4a5362a41/6 HTTP/1.1" 207 462
 127.0.0.1 - fujihara [14/Dec/2008:23:16:31 +0900] "CHECKOUT /svn//repo01/!svn/ver/6/test.txt HTTP/1.1" 201 250
 127.0.0.1 - fujihara [14/Dec/2008:23:16:31 +0900] "PUT /svn//repo01/!svn/wrk/091ba693-9a6b-ed46-a57d-b3d4a5362a41/test.txt HTTP/1.1" 204 -
 127.0.0.1 - - [14/Dec/2008:23:16:32 +0900] "OPTIONS /svn/repo01 HTTP/1.1" 401 401
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "OPTIONS /svn/repo01 HTTP/1.1" 200 -
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svn/repo01 HTTP/1.1" 207 651
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "PROPFIND /svn/repo01 HTTP/1.1" 207 651
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "PROPFIND /svn/repo01/!svn/vcc/default HTTP/1.1" 207 402
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "PROPFIND /svn/repo01/!svn/bln/7 HTTP/1.1" 207 453
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "PROPFIND /svn/repo01 HTTP/1.1" 207 651
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "PROPFIND /svn/repo01/!svn/vcc/default HTTP/1.1" 207 1214
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "REPORT /svn/repo01 HTTP/1.1" 200 378
 127.0.0.1 - fujihara [14/Dec/2008:23:16:31 +0900] "MERGE /svn//repo01 HTTP/1.1" 200 724
 127.0.0.1 - fujihara [14/Dec/2008:23:16:35 +0900] "DELETE /svn//repo01/!svn/act/091ba693-9a6b-ed46-a57d-b3d4a5362a41 HTTP/1.1" 204 -
// slave apache.log
 127.0.0.1 - - [14/Dec/2008:23:16:27 +0900] "OPTIONS /svn/repo01 HTTP/1.1" 401 401
 127.0.0.1 - fujihara [14/Dec/2008:23:16:30 +0900] "OPTIONS /svn/repo01 HTTP/1.1" 200 -
 127.0.0.1 - fujihara [14/Dec/2008:23:16:30 +0900] "PROPFIND /svn/repo01 HTTP/1.1" 207 651
 127.0.0.1 - fujihara [14/Dec/2008:23:16:30 +0900] "OPTIONS /svn/repo01 HTTP/1.1" 200 190
 127.0.0.1 - fujihara [14/Dec/2008:23:16:30 +0900] "MKACTIVITY /svn/repo01/!svn/act/091ba693-9a6b-ed46-a57d-b3d4a5362a41 HTTP/1.1" 201 229
 127.0.0.1 - fujihara [14/Dec/2008:23:16:30 +0900] "PROPFIND /svn/repo01/!svn/vcc/default HTTP/1.1" 207 402
 127.0.0.1 - fujihara [14/Dec/2008:23:16:30 +0900] "CHECKOUT /svn/repo01/!svn/bln/6 HTTP/1.1" 201 243
 127.0.0.1 - fujihara [14/Dec/2008:23:16:31 +0900] "PROPPATCH /svn/repo01/!svn/wbl/091ba693-9a6b-ed46-a57d-b3d4a5362a41/6 HTTP/1.1" 207 462
 127.0.0.1 - fujihara [14/Dec/2008:23:16:31 +0900] "PROPFIND /svn/repo01 HTTP/1.1" 207 387
 127.0.0.1 - fujihara [14/Dec/2008:23:16:31 +0900] "CHECKOUT /svn/repo01/!svn/ver/6/test.txt HTTP/1.1" 201 250
 127.0.0.1 - fujihara [14/Dec/2008:23:16:31 +0900] "PUT /svn/repo01/!svn/wrk/091ba693-9a6b-ed46-a57d-b3d4a5362a41/test.txt HTTP/1.1" 204 -
 127.0.0.1 - - [14/Dec/2008:23:16:32 +0900] "OPTIONS /svnsync/repo01 HTTP/1.1" 401 401
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "OPTIONS /svnsync/repo01 HTTP/1.1" 200 -
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 410
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01/!svn/bln/6 HTTP/1.1" 207 461
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 1312
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 300
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPPATCH /svnsync/repo01/!svn/bln/0 HTTP/1.1" 207 435
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 1442
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 1442
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 1442
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 1442
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:32 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 1442
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 410
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "PROPFIND /svnsync/repo01/!svn/bln/6 HTTP/1.1" 207 461
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 300
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "PROPPATCH /svnsync/repo01/!svn/bln/0 HTTP/1.1" 207 448
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "OPTIONS /svnsync/repo01 HTTP/1.1" 200 194
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "MKACTIVITY /svnsync/repo01/!svn/act/a52dca44-7e57-574e-ad16-1d7cb314f0c9 HTTP/1.1" 201 233
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 410
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "CHECKOUT /svnsync/repo01/!svn/bln/6 HTTP/1.1" 201 247
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "PROPPATCH /svnsync/repo01/!svn/wbl/a52dca44-7e57-574e-ad16-1d7cb314f0c9/6 HTTP/1.1" 207 466
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 395
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "CHECKOUT /svnsync/repo01/!svn/ver/6/test.txt HTTP/1.1" 201 254
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "PUT /svnsync/repo01/!svn/wrk/a52dca44-7e57-574e-ad16-1d7cb314f0c9/test.txt HTTP/1.1" 204 -
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:33 +0900] "MERGE /svnsync/repo01 HTTP/1.1" 200 488
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "DELETE /svnsync/repo01/!svn/act/a52dca44-7e57-574e-ad16-1d7cb314f0c9 HTTP/1.1" 204 -
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 1228
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 300
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPPATCH /svnsync/repo01/!svn/bln/7 HTTP/1.1" 207 432
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 300
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPPATCH /svnsync/repo01/!svn/bln/7 HTTP/1.1" 207 430
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 300
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPPATCH /svnsync/repo01/!svn/bln/0 HTTP/1.1" 207 446
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 300
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPPATCH /svnsync/repo01/!svn/bln/0 HTTP/1.1" 207 448
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPFIND /svnsync/repo01 HTTP/1.1" 207 659
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPFIND /svnsync/repo01/!svn/vcc/default HTTP/1.1" 207 300
 127.0.0.1 - svnsyncuser [14/Dec/2008:23:16:34 +0900] "PROPPATCH /svnsync/repo01/!svn/bln/0 HTTP/1.1" 207 435
 127.0.0.1 - fujihara [14/Dec/2008:23:16:31 +0900] "MERGE /svn/repo01 HTTP/1.1" 200 724
 127.0.0.1 - fujihara [14/Dec/2008:23:16:35 +0900] "DELETE /svn/repo01/!svn/act/091ba693-9a6b-ed46-a57d-b3d4a5362a41 HTTP/1.1" 204 -


参考

バージョン管理システム「Subversion」の開発者が執筆したSubversi... 続き
Subversionの導入から運用まで、即戦力の一冊。最短距離で目的にたどり着け... 続き
この本は、Subversionというバックアップのためのソフトについて説明したも... 続き
バージョン管理からプロジェクト管理へ。Subversionでコミットするだけ。W... 続き

トラックバック(0)

このブログ記事を参照しているブログ一覧: Subversion1.5のWebDAV transparent write-through proxy

このブログ記事に対するトラックバックURL: http://daipresents.com/mt/bin/mt-tb.cgi/1658

コメントする


画像の中に見える文字を入力してください。

著者:Venkat Subramaniam, Andy Hunt, Shane Warden 税込2,520円
アジャイルの核心となるプラクティスについての、包括的かつ焦点の定まった簡潔な要約。特定のアジャイルな方法論を押し付けるのでなく、いろいろな方法論に共通するプラクティスを結びつけ、首尾一貫した全体像を描き出している。
著者:Yugui 税込 2,310 円
他言語でのプログラミング経験を持つ人を対象に、Rubyの特徴、Rubyならではの方法や慣習について解説。Rubyの基礎的な部分とメタクラスやブロック構文のような独自の概念、それらにまつわる文化を説明し、Ruby特有の考え方を知ってもらうことを目的としている。Ruby1.8及び1.9に対応している。 「BOOK」データベースより
著者:前田剛 税込 2,100 円
RubyonRailsで実施されたWebベースのプロジェクト管理システムRedmaineの解説書。

daipresents!!

҂̑蕨

tWn{ Google Code