% sudo apt-get install apache2-mpm-worker libapache2-dav-svn
apache2-mpm-workerはapache2-mpm-*のうちの どれか。
/etc/apache2/mods-available/以下にあるsvn関係の設定 ファイルへのリンクを/etc/apache2/mods-enabled/以下に作成. あれ,dav_svn.loadのなかで,LoadModuleがコメントアウトさ れているなぁ.なんでだろう.
% cd /etc/apache2/mods-enabled % sudo ln -fs ../modes-available/*dav* ./
/etc/apache2/httpd.confに以下を追加.うーん, /etc/apache2/mods-available/dav_svn.confを直接変更した 方がいいのかなぁ.
<Location "/svn/repos"> DAV svn # Subversionを使う SVNPath /usr/local/svn/repos # リポジトリへのパス </Location>
認証をかけるには以下のようにします。
<Location "/svn/repos"> AuthName "Subversion Repository" # realmの指定 AuthType Basic # 認証方法の指定 AuthUserFile /path/to/.htpasswd # パスワードファイルの指定 require user hoge # 有効なユーザ名の指定 DAV svn # Subversionを使う SVNPath /usr/local/svn/repos # リポジトリへのパス </Location>
同じサーバ上の複数の認証がかけられていても、一度認証されたrealm と同じrealmであれば、クライアント(ブラウザ等)は同じパスワードを 黙って送ってくれます。
有効なユーザ名はrequire valid-userとすることも出来
ます。こうするとパスワードファイル中のどのユーザでもアクセスする
ことが出来ます。
他にもグループによる指定等も出来ます。
新規に作成
% htpasswd -c /path/to/.htpasswd username
ユーザ追加
% htpasswd /path/to/.htpasswd username
# mkdir -p /usr/local/svn # svnadmin create /usr/local/svn # chown -R www-data:www-data /usr/local/svn/repos
% svn import [登録するファイル/ディレクトリへのパス] リポジトリのURL
登録するファイル/ディレクトリへのパスが省略されると .を指定されたものと見なされます。
使用例はこんな感じ
% svn import -m "test" ~/work/ruby http://localhost/svn/repos/
これだと~/work/ruby以下のファイルがインポートされ、 http://localhost/svn/repos/で見ることができます。 -m "test"はコミットメッセージです。省略すると環境変数 EDITORに指定されているエディタで編集することになりま す。
古いsvnだと以下のような書式かもしれません.
% svn import リポジトリのURL [登録するファイル/ディレクトリへのパス [リポジトリ上のパス]]
リポジトリ上のパスが省略されるとリポジトリの直下にイ ンポートされます。
% svn co リポジトリのURL [ワーキングコピーを置くディレクトリ]
ワーキングコピーを置くディレクトリが省略されると .が指定されたものとみなされます。
例えばこんな感じ
% svn co http://localhost/svn/repos/ruby /tmp/
リリース用チェックアウト(?)
% svn export リポジトリのURL [ワーキングコピーを置くディレクトリ]
% svn ci
あとは、チェックアウト=>編集=>コミットを繰り返します。
ファイルやディレクトリをモジュールに追加するときは以下を実行しま す。
% svn add ファイル名
ファイルやディレクトリをモジュールから削除するときは以下を実行しま す。
% rm ファイル名 % svn delete ファイル名
リポジトリ内のHTMLファイルをブラウザで見たときにソースではなくて 整形されたファイルを見せるにはプロバティを設定します。こうするこ とにより、サイト自体をSubversionで管理することができます。
例えば以下のようにしてからコミットするとそれなりに見えるかもしれ ません。
% find . -regex ".*\.html\(\...\)?" -exec svn propset svn:mime-type "text/html; charset=UTF-8" {} \;
% find . -name "*.css" -exec svn propset svn:mime-type text/css {} \;
% find . -name "*.png" -exec svn propset svn:mime-type image/png {} \;
% find . -name "*.gif" -exec svn propset svn:mime-type image/gif {} \;
% find . -regex ".*\.\(jpg\|jpeg\|jpe\)" -exec svn propset svn:mime-type image/jpeg {} \;
svnの実行途中にC-c等してロックが残った りすることがあります。そんなときは以下のようにクリーンアップして あげます。クリーンアップするとロックを解除するだけではなく終了し ていないの操作を再開したりします。
% svn cleanup