Home / cvsweb.conf 的一些設定

不知是我眼睛太大還是怎麼著,發現在網路上很少有cvsweb的說明,雖然設定檔裡的註解說得很清楚,不過我還是做一下筆記。

以下的"dir"是CVSROOT的所在

設定cvsroot在哪,cvsweb是讀",v"檔案來呈現的,所以得設定在cvsroot所在的地方:
@CVSrepositories = (
'local' => ['Local Repository', '/dir/cvsroot_dir'],
);

預設的respository,如果上面只有一個local,就把他註解掉:
$cvstreedefault = $CVSrepositories[2 * 0];
$cvstreedefault = 'local';

是否公開你的原始檔,讓人瀏覽和下載:
$allow_source_extra = 1;

自訂圖形、css路徑
$cssurl = '/sys/cvsweb/css/cvsweb.css';
my $iconsdir = '/sys/cvsweb/icons';

cvsgraph是另一支程式,若有安裝便可以讓cvsweb呈現版本的樹狀圖,安裝好後將註解去掉即可
$allow_cvsgraph = $CMD{cvsgraph} ? 1 : 0;

* * *

在debian下裝好cvsweb後,基本上還需要調幾個東西:
1. 將httpd.conf新增一個alias,預設的圖形和css會在/usr/share/cvsweb/裡頭

Alias /cvsweb/ /usr/share/cvsweb/

2. 若你開發的程式為web app,原始碼通常都有連db的帳號密碼,想辦法不能讓他被web存取。我是用apache限制ip:

Options None
AllowOverride None
Order deny,allow
Deny from ALL
Allow from 192.168.1.0/24 xxx.xxx.xxx.xxx 127.0.0.1

3. 檔案權限是最煩人的事情,不過有跟安全性大大相關。如果要公開原始碼,那就得把包含機密資料的source code權限改成www-data無法讀取。我會改下面幾個檔案的權限,
chmod 440 /dir/source_dir/secret_source.php,v

限制存取CVSROOT的人
chown root:src /dir/CVSROOT/

限制CVSROOT/*,v檔案的讀取權限
chmod 440 /dir/CVSROOT/*,v