(2011-03の一覧)
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011-03-08 Tue (他の年の同じ日: 2004 2006)
CIFSのsvnリポジトリラッパ
2011-03-08-1 / カテゴリ: [svn][Apache][cygwin] / [permlink]
某所のsvnリポジトリがCIFS(Windowsファイルサーバ)にしかなく、どうしても手元のeclipse(subclipse)からチェックアウトできなかったので、ローカルのApacheでsvnサーバを立ててラッパとして動作させた。
windows用のApacheバイナリだと、UNC/ネットワークドライブともに(ファイルが見えなかったりログオン不可と出力されたりで)どうしてもうまくいかなかったので、cygwinのApache+svnで構築。
入れるパッケージは
apache2
subversion
subversion-apache2
あたり。
とりあえずdav設定は[2008-02-22-1]の流れで特に問題なし。
デフォルトでDigest認証設定になってるので、Basicに変えるなりなんなりと。
設定ファイルは /etc/apache2/extra/httpd-dav.conf
Subversion用の設定はテンプレが見当たらなかったので他の環境から持ってきた。
extra/httpd-svn.confを作って
多バイト文字が入ったパスだと(UTF-8にしてても"Can't converet string from 'UTF-8' to native encoding"とか出力されて)うまくいかないけど…
まぁ、CIFSでSubversion使うなってことよ。
そういや、subclipseだとhostsを見ないようだ。http://localhost(:8080)だとアクセスできなかったけど、http://127.0.0.1(:8080)ならOK。
ググると file:/// も使えるような記述はあるんだけどなぁ…
[2011-03-28-1]追記。↑だとcommitできない。
windows用のApacheバイナリだと、UNC/ネットワークドライブともに(ファイルが見えなかったりログオン不可と出力されたりで)どうしてもうまくいかなかったので、cygwinのApache+svnで構築。
入れるパッケージは
apache2
subversion
subversion-apache2
あたり。
とりあえずdav設定は[2008-02-22-1]の流れで特に問題なし。
デフォルトでDigest認証設定になってるので、Basicに変えるなりなんなりと。
設定ファイルは /etc/apache2/extra/httpd-dav.conf
--- original/extra/httpd-dav.conf 2007-09-17 06:10:55.001000000 +0900 +++ extra/httpd-dav.conf 2011-03-08 13:27:22.246250000 +0900 @@ -16,5 +16,5 @@ -Alias /uploads "/usr/uploads" +Alias /repos "/var/repos" -<Directory "/usr/uploads"> +<Directory "/var/repos"> Dav On @@ -24,3 +24,3 @@ - AuthType Digest + AuthType Basic AuthName DAV-upload @@ -28,3 +28,3 @@ # htdigest -c "/usr/user.passwd" DAV-upload admin - AuthUserFile "/usr/user.passwd" + AuthUserFile "/etc/apache2/user/htpasswd" @@ -32,5 +32,6 @@ # to the admin user. - <LimitExcept GET OPTIONS> - require user admin - </LimitExcept> + #<LimitExcept GET OPTIONS> + # require user admin + #</LimitExcept> + require valid-user </Directory>あと、標準だとこのファイルがincludeされないのでhttpd.confにinclude追加する。(下記ラスト部分)
--- httpd.conf.default 2011-03-08 11:44:39.731750000 +0900 +++ httpd.conf 2011-03-08 12:47:10.558750000 +0900 @@ -39,3 +39,3 @@ #Listen 12.34.56.78:80 -Listen 80 +Listen 8080 @@ -110,2 +110,6 @@ +# svn +LoadModule dav_svn_module lib/apache2/mod_dav_svn.so +Include /etc/apache2/extra/httpd-svn.conf + <IfModule !mpm_netware_module> @@ -149,3 +153,3 @@ # -#ServerName www.example.com:80 +ServerName localhost @@ -446,3 +450,3 @@ # Distributed authoring and versioning (WebDAV) -#Include /etc/apache2/extra/httpd-dav.conf +Include /etc/apache2/extra/httpd-dav.conf
Subversion用の設定はテンプレが見当たらなかったので他の環境から持ってきた。
extra/httpd-svn.confを作って
<IfModule mod_dav_svn.c> <Location /repos/foo> DAV svn SVNPath "/cygdrive/c/work/repos" </Location> <Location /repos/testrep> DAV svn SVNPath "/cygdrive/x/svn" </Location> </IfModule>こんな感じ。(xはネットワークドライブ)
多バイト文字が入ったパスだと(UTF-8にしてても"Can't converet string from 'UTF-8' to native encoding"とか出力されて)うまくいかないけど…
まぁ、CIFSでSubversion使うなってことよ。
そういや、subclipseだとhostsを見ないようだ。http://localhost(:8080)だとアクセスできなかったけど、http://127.0.0.1(:8080)ならOK。
ググると file:/// も使えるような記述はあるんだけどなぁ…
[2011-03-28-1]追記。↑だとcommitできない。
Referrer (Inside):
[2011-03-28-1]
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2013-05-02 16:12