Ubuntu系统下搭建svn服务器(及设置SVN提交必须输入注释)
1.查看是否安装
安装SVN服务器之前 查看一下是否已经安装了 查看命令 svn
如下图 是已经安装了SVN
如下图是没有安装SVN
安装了的话 可以用如下命令删除
apt-get remove --purge subversion
2.安装SVN
安装之前更新一下
apt-get update
apt-get install subversion
安装好之后 查看是否安装成功
svnserve --version
如下图 显示版本信息 表示安装成功
3.创建SVN版本库
进入 cd /usr 文件
mkdir svn
进入 cd /svn
mkdir repository
给 repository 权限 chmod -R 777 /repository
创建svn仓库
svnadmin create /usr/svn/repository
执行命令后,会在repository下生成以下文件:
对db进入权限设置(可以在FileZilla端直接操作)
chmod -R 777 db
4.设置访问权限
修改配置文件conf/svnserve.conf
cd /conf
vi svnserve.conf
添加访问用户
vi passwd
用户名 wang 密码 123456
设置用户权限
vi authz
对以上进行解释:
admin = wang //用户王属于admin权限组
@admin = rw //admin权限组的权限是读和写
* = r 所有的组都具有读权限
5.测试服务器
启动SVN服务器
svnserve -d -r /usr/svn/
-d:表示在后台运行
-r:指定服务器的根目录
查看是否启动成功
ps aux | grep svnserve
如下图 成功启动
停止服务器
killall svnserve
如下图 说明已经关闭了
这样访问服务器时就可以直接用”svn://服务器ip/repository”来访问了。
win10远程连接SVN服务器
安装好SVN客户端后
服务器ip
测试 上传一个文件
6.SVN服务器设置提交注释字数限制
找到 svn文件夹下hooks文件夹
例:/usr/svn/repository/hooks
将pre-commit.tmpl改为pre-commit
编辑pre-commit文件,pre-commit文件内容可以直接使用下面的脚本。
#!/bin/sh#!/bin/sh
# 脚本编写:Ken.xu
REPOS="$1"
TXN="$2"
# 最小注释长度
MIN_REPOS_LEN=5
LOGMSG=`svnlook log -t "$TXN" "$REPOS" | wc -c`
#echo "注释长度:$LOGMSG" 1>&2
if [ "$LOGMSG" -lt $MIN_REPOS_LEN ]
then
echo " ####################################" 1>&2
echo -e " ★☆★ 提醒: 注释最少$MIN_REPOS_LEN个字符! ★☆★" 1>&2
echo -e " 补充注释后,再重新提交!" 1>&2
echo " ####################################" 1>&2
exit 1
fi
exit 0
拓展(windows环境下设置注释提示内容):
在hooks文件夹下新建一个文件pre-commit.bat(该目录下有模板文件:pre-commit.impl,你要是感兴趣可以详细看看)。
设置之前设置全局变量SVN_HOME,指向你的SVN安装目录,然后定义如下脚本到pre-commit.bat就可以了,
@echo off
setlocal
set SVN_BINDIR=%SVN_HOME%\bin\
REM REPOS 是提交路径
set REPOS=%1
set TXN=%2
rem check that logmessage contains at least 10 characters
rem ......代表6个字符
svnlook log "%REPOS%" -t "%TXN%" | findstr "......" > nul
endlocal
if %errorlevel% gtr 0 goto err
exit 0
:err
echo ★☆★☆★☆提醒:注释最少6个字符☆★☆★☆★ 1>&2
exit 1
效果如下: