WebSVN
WebSVN 是一个 SVN 仓库的 WEB 浏览工具,功能上类似于 GitWeb,只是 WebSVN 是针对 SVN 的。你可以使用 WebSVN 来预览文件和目录,以及对比文件或目录的各个版本之间的差异。
特点
- 比较文件/文件夹版本的差异
- 浏览/搜索版本和日志信息
- 文件作者的责任视图
- 自定义模板系统
- 彩色化文件列表,支持 MIME 类型
- 支持本地和远程仓库
- 文件和文件夹下载
- RSS订阅,支持查看任何资源
- 多语言,即时切换
安装
-
下载 WebSVN 最新版本 并解压至 Nginx 工作目录
cd /usr/share/ginx/html wget http://websvn.tigris.org/files/documents/1380/49057/websvn-2.3.3.zip unzip websvn-2.3.3.zip
这里用的是 Nginx 作为服务器,当然你也可以用 Apache 或其他来代替,确保服务器与 PHP 正常运行。
-
添加仓库配置
cp include/distconfig.php include/config.php vim include/config.php
在
include/config.php
添加/修改下面配置$config->addRepository('FirServer', 'http://192.168.181.12/FirServer', null, 'shenyu', '123456'); $config->addRepositorySubpath('FirServer-Rose', 'http://192.168.181.12/FirServer', 'branches/branche_rose', null, 'shenyu', '123456');
这里配置了两种不用类型的仓库,一种是直接使用仓库的根目录(
addRepository
),另一种是使用仓库的子目录(addRepositorySubpath
),切勿直接将仓库子目录用addRepository
方式来配置,这样会导致使用 WebSVN 时出现相对目录不正确的问题。
Bug
使用的时候发现 View Log
的时候,表格里 Path
栏链接点击后会出错,看了一下源码,应该是相对路径的问题,找到下面这行代码
$url = $config->getURL($rep, $precisePath, ($isDir ? 'dir' : 'file')).$thisRevString;
将其改成
if($rep->subpath) {
$precisePath = substr($precisePath, strlen($rep->subpath) + 1);
}
$url = $config->getURL($rep, $precisePath, 'dir').$thisRevString;
WebSVN 最新的版本发布于2011年,许久未更新了,出现这个问题也许可能是 SVN 命令行客户端版本更新造成的,现有的 Mac 上比较好用的 SVN 客户端要数 CornerStone 了,不过收费,而且还挺贵的。