1安装
# sudo apt-get install subversion
2创建版本库
# sudomkdir /home/svn
# sudo svnadmin create /home/svn/repos
开启权限
chmod -R 777 /home/svn
chmod -R 777 /home /svn/repos
3编辑
进入#cd /home/svn/repos/ 可以看到conf db format hooks locks README.txt四个目录
进入#cd conf/
# sudo vim svnserve.conf #将以下参数去掉注释
[general]
anon-access = none #匿名访问权限,默认read,none为不允许访问
auth-access = write #认证用户权限
password-db = passwd #用户信息存放文件,默认在版本库/conf下面,也可以绝对路径指定文件位置
authz-db = authz
# sudo vim passwd #格式是用户名=密码,采用明文密码
[users]
xiaoming = 123
zhangsan = 123
lisi = 123
# sudo vim authz 这里这是用户时要特别小心
user = xiaoming
admin = zhangsan,lisi
[repos:/]
@admin = rw
启动sudo svnserve -d -r /home/svn
#查看是否启动成功,可看的监听3690端口
# sudo netstat -antp |grep svnserve
tcp 0 00.0.0.0:3690 0.0.0.0:* LISTEN 28967/svnserve
编辑时在启动时
关掉线程 sudo killall svnserve
启动 sudo svnserve -d -r/home/svn
Svn 访问
#访问repos版本库地址
svn://192.168.1.100/repos
# 访问repos/media目录地址
svn://192.168.1.100/repos/media
常见错误 在点击显示日志时 服务器连接错误 修改
sudo vim svnserve.conf
anon-access = none
这是最坑比的一部 一定要操作 不然不会同步代码 否则错都不不知道错在哪里
应该可行 待多次尝试
三、实现svn更新自动同步到web目录:
1、在web目录中checkout版本库
这一步算是比较关键的一步了,当时我搭建的时候试了无数次,就是缺少了这一步。把刚才checkout的版本库删掉,我们来一次比较正式的checkout:
- 1
- 1
进入/var/svn/project/hooks下,建立post-commit文件:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
保存退出。
修改post-commit用户为www目录用户
- 1
- 1
给post-commit 执行权限: