我们最近将快盘上的东西迁移到了svn上,因为快盘总是不会不小心删掉或者修改了某些文件。为了能保留历史记录我们统一迁移到svn上。为了方便权限管理,我对比了几个svn的权限管理工具,最后觉得还是usvn功能最强大。可以将权限按组分配,且每个组内可以有组长去管理组内资源。
usvn 依赖很多库
yum install -y mysql-server
yum install -y php
yum install -y mod_dav_svn.x86_64
1、下载usvn,解压后放到web根目录下
2、配置Apache目录允许重写
vim /etc/httpd/conf/httpd.conf
文件最后加入
<Directory "/var/www/html/">
AllowOverride all
Order allow,deny
Allow from all
</Directory>
重启Apache service httpd restart
3、http://ip/usvn/public/install.php 开始安装
安装到最后一步会提示你将类似如下内容添加到/etc/httpd/conf/httpd.conf 中,并重启
<Location /usvn/public/svn/>
ErrorDocument 404 default
DAV svn
Require valid-user
SVNParentPath /var/www/html/usvn/files/svn
SVNListParentPath off
AuthType Basic
AuthName "USVN"
AuthUserFile /var/www/html/usvn/files/htpasswd
AuthzSVNAccessFile /var/www/html/usvn/files/authz
</Location>
4、安装到最后遇到一个头痛的问题,当目录出现中文时无法设置目录权限
解决方法:
4.1、设置系统编码:vim /etc/sysconfig/i18n 改成如下
LANG="zh_CN.UTF-8"
SYSFONT="latarcyrheb-sun16"
4.2、修改USVN语言环境:vim /var/www/html/usvn/app/bootstrap.php
在文件最前面加上
setlocale(LC_ALL, 'zh_CN.UTF-8');
5、提交log不能为空
vim ${svn_dir}/hooks/pre-commit
#!/bin/sh
REPOS="$1"
TXN="$2"
# Make sure that the log message contains some text.
SVNLOOK=/usr/bin/svnlook
$SVNLOOK log -t "$TXN" "$REPOS" | \
grep "[a-zA-Z0-9]" > /dev/null
#|| exit 1
#commit-access-control.pl "$REPOS" "$TXN" commit-access-control.cfg || exit 1
LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`
if [ "$LOGMSG" -lt 10 ];
then
echo -e "svn log cann't less than 10 character" 1>&2
exit 1
fi
# All checks passed, so allow the commit.
exit 0
chown apache:apache pre-commit
chmod +x pre-commit
分类:
SVN/git
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!