一:服务器端安装svn
命令: yum install subversion
确认下载输入 y
安装完成
命令 svnserve --version 查看svn版本
二: 创建版本库
1. 创建版本库的目录 mkdir -p /usr/local/svn/demo
此时版本目录下是空的,然后再创建版本库
2.为版本目录创建svn版本库 svnadmin create /usr/local/svn/demo
创建完成之后目录下会生成一些文件
三: 配置svn权限
在conf文件夹下主要有三个文件需要配置
1. 配置authz文件
打开authz在红色框内分别加入配置信息
第一个红色框 aliases下添加svn用户账号密码 user1=123456( 每个用户账号信息占一行)
第二个红色框 groups下添加群组用户 group1=user1 (多个用户之间,分隔)
第三个红色框添加版本目录 [/]
第四个红色框添加群组的读写权限 @group1=rw
2.配置passwd文件
将user1用户加入配置 user1=123456
3. 配置 svnserve.conf
anon-access是配置匿名用户不可读,将#都去掉
至此配置完成 启动版本库 svnserve -d -r /usr/local/svn/demo/
若报 svnserve: E000098: 不能不能绑定服务器套接字:地址已存在则 查出svnserve的进程然后杀掉: ps -aux | grep svnserve
结果的第二列是进程号 然后kill -9 进程号,重试就可以了
之后就可以使用user1当做用户名123456作密码同步代码到服务器
以下是注意点
配置好之后记得将3690端口开放
此时更新之后代码并不会直接在服务器显示,而是在db文件中,如果需要每次同步都相应的在服务器上生成文件需要配置hooks文件夹中的post-commit文件
将 post-commit.tmpl 模板文件复制并更名为 post-commit
在文件中添加
export LANG="zh_CN.UTF-8" 指定文件编码
svn checkout svn://localhost /usr/local/svnDemo 将服务器的svn版本同步更新到 /usr/local/svnDemo目录下
若出现 svn: E170001: 认证失败 则需要将 ~/.subversion/auth/svn.simple 文件夹下新生产的文件删除,然后重复上一步
(文件最后一行 mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf 暂不知作用,直接注释或者删除即可,否则报错)
因为 post-commit 没有权限 给文件加权限 chmod 777 /usr/local/svn/demo/hooks/post-commit
需先在 /usr/local/svnDemo目录下 将项目检出 svn checkout svn://localhost
输入服务器的登录密码(不是指svn的密码)
输入svn用户名 user1
输入svn用户密码 123456
是否存储未加密的密码 填 y 就行
这时候文件同步到目标目录下了 但是中午的文件名都是乱码,需要再配置
svn更新之后显示编号错误解决方法
首先查看当前系统的编码 使用命令 locale
然后导入 zh_CN.UTF-8 编码 使用 export LC_ALL=zh_CN.UTF-8
执行 svn up
再次使用 locale查看编码
编码设置完成