WebSVN

webdav の デフォルトの svnindex.xsl で作られるページでは最新のリビジョンしか見ることができないので入れてみる。

今のところバージョンはこんな感じ。

インストール

% portinstall devel/websvn

ファイル一式は、''/usr/local/www/data-dist/WebSVN'' にインストールされる。
適当な場所にコピーするなりして使う。
php で書かれているらしい。

基本の設定

''/include/config.inc'' で設定する。

// svn と svnlook の path
$config->setSVNCommandPath("/usr/local/bin");

// repository の 名前 と path
$config->addRepository("WebDAV", "/home/www/repos");

// 言語の設定。UTF-8 にする。
// include("languages/japanese-euc.inc");  // (Almost Unix/Linux/BSD)
// include("languages/japanese-jis.inc");  // (ISO-2022-JP)
// include("languages/japanese-sjis.inc"); // (Windows)
include("languages/japanese-utf8.inc"); // (FedoraCore/Max OS X/BeOS)

$config->setInputEncoding("UTF-8");
$config->setOutputEncoding("UTF-8");

// このままだと、ログが化けたり、日本語ファイル名が化けたりする。
// これは、svnlook が apache の環境変数 LANG を見ているから。
putenv('LANG=ja_JP.UTF-8');

'''enscript''' を使ってソースコードをキレイに表示させる。

インストール。
% portinstall print/enscript-a4
''/include/config.inc'' で設定する。
// enscript の path
$config->setEnscriptPath("/usr/local/bin");
$config->setSedPath("/usr/bin"); // たぶん設定しなくていい

// コメントを外す
$config->useEnscript();

// Tex も enscript で見たい人向け
// Tex は contentType が指定してあるんで、unset
unset($contentType[".tex"]);
$extEnscript[".tex"] = "tex";
ソースコードのコメントとかが化ける。

いつもUTF-8 で書いてるわけじゃないんで化けるもんは化けるけどなんとかしたい。

以下のスクリプトを用意して、''/usr/local/bin/websvn'' に置いてみる。

#!/bin/sh
export PATH=/usr/bin:/usr/local/bin
enscript "$@" | nkf -w # w は utf-8で出力 の意

設定ファイルの enscript path を変更。

$config->setEnscriptPath("/usr/local/bin/websvn");

# どこかで設定できるのかもしれないけど。
今のところ、これでいい感じに動いてる。

参考にしたページ