LINUX下SVN安装,配置,web目录同步
注:
各服务器运行环境可能有所不同,操作过程中可能出现其他问题,自行查阅资料解决
SVN的具体使用方法很多,本文档只是使用了SVN最简单的用法,感兴趣的同学可以查阅相关资料。
如果各位同学有对SVN新的补充,请更新本文档!
一、 安装subversion
1. 首先输入rpm -qa | grep subversion 查看SVN是否已经安装过
如果输出类似如下结果,则说明已经安装:
subversion-1.6.11-7.el6.x86_64
2. 执行 yum -y install subversion 安装SVN
3. 执行 svn –version 查看安装的SVN版本
二、 建立代码仓库
常规情况下,我们一个仓库里面会有多少个项目。所以,第一步得创建所有项目的仓库中心,如下命令:
mkdir /opt/svn/
现在假定我们有一个项目叫 imobile ,现在我们为这个项目在仓库中心中分配一个仓库。如下命令:
svnadmin create /opt/svn/imobile/
进入imobile目录如下 /opt/svn/imobile/
目录说明 | |
---|---|
conf: | 配置文件 |
db: | 存储数据 |
hooks: | 脚本程序,SVN提交上来的文件检验等操作 |
三、 修改配置文件
1. 进入 svntest 项目仓库配置目录中
2. 修改svnserve.conf文件
找到以下的内容,并在行首注释符号#删掉。
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
3. 为 svntest 项目增加svn用户,并且赋予权限值:
在文件中添加如下代码:
代码的意思是:为 svntest 项目添加一个imobile_001的用户,并且,这个用户对于 imobile 项目拥有读写权限。
关于方框号里面的写法有以下几种:
- [/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/opt/svn,
- [/]就是表示对全部版本库设置权限。
- [imobile:/] 表示对版本库svntest设置权限
- [imobile:/abc] 表示对版本库svntest中的abc项目设置权限
- [imobile:/abc/aaa] 表示对版本库svntest中的abc项目的aaa目录设置权限
4. 给用户分配密码,执行如下命令:
四、启动svn服务和测试
1. 启动svn服务,并指定 svn 的根目录:
2. 查看svn服务是否正常启动,执行如下命令:
顺便提一下,svn的默认端口是3690。
3. 在windows系统上测试是否成功:
- 首先保证你的系统中已经安装了 subversion 客户端程序。如果没有安装马上下载安装,并重启windows系统。
- 在windows任意的目录中,创建一个文件夹,文件夹的名字任意,最好是英文名。如我的:imobile_242。
- 右键点击该文件夹,选择”Checkout…”,填写如下信息,点击“确定”按钮之后,会弹出一个对话框,让你输入账号密码,我们的账号是:imobile_001,密码是:123456.填写完之后,可以公告保存账号密码的选项。再点击“确定”就OK了。如图:
- 点击“确定”按钮之后,会弹出一个对话框,让你输入账号密码,我们的账号是:svn001,密码是:123456.填写完之后,可以公告保存账号密码的选项。再点击“确定”就OK了。
- 开启自启动SVN服务器。现在我们已经配置好了svn服务器。但是,我们是通过手工通过命令启动的。如果,想每次centos 系统开启就启动这个服务的话,有以下方式可以实现。打开/etc/rc.local文件,shell命令如下,这样开机的时候就会自动启动svn服务器了。
vi /etc/rc.local
svnserve -d -r /opt/svn/
五、 SVN提交文件自动更新到nginx的WEB目录
1. 进入WEB根目录:
2. 创建SVN仓库副本:
3. 设置svn更新后自动更新nginx的读取目录:
lc_ctype要设置的值可以使用locale查看
更改文件权限为可执行:#chmod 777 post-commit
4. 同步测试:
查看web目录文件
本地创建一个文件test001.php
SVN提交文件test001.php
进入web目录查看
英文名文件同步成功
本地创建一个中文名文件
查看web目录