LINUX下SVN安装,配置,web目录同步


注:

各服务器运行环境可能有所不同,操作过程中可能出现其他问题,自行查阅资料解决

SVN的具体使用方法很多,本文档只是使用了SVN最简单的用法,感兴趣的同学可以查阅相关资料。

如果各位同学有对SVN新的补充,请更新本文档!


一、 安装subversion

1. 首先输入rpm -qa | grep subversion 查看SVN是否已经安装过

查看Tortoisesvn安装成功_版本库

如果输出类似如下结果,则说明已经安装:
    subversion-1.6.11-7.el6.x86_64

2. 执行 yum -y install subversion 安装SVN

查看Tortoisesvn安装成功_版本库_02

3. 执行 svn –version 查看安装的SVN版本

查看Tortoisesvn安装成功_svn_03

二、 建立代码仓库

常规情况下,我们一个仓库里面会有多少个项目。所以,第一步得创建所有项目的仓库中心,如下命令:
mkdir /opt/svn/

查看Tortoisesvn安装成功_svn_04

现在假定我们有一个项目叫 imobile ,现在我们为这个项目在仓库中心中分配一个仓库。如下命令:
svnadmin create /opt/svn/imobile/

查看Tortoisesvn安装成功_svn_05

进入imobile目录如下 /opt/svn/imobile/

查看Tortoisesvn安装成功_版本库_06

目录说明

conf:

配置文件

db:

存储数据

hooks:

脚本程序,SVN提交上来的文件检验等操作

三、 修改配置文件

1. 进入 svntest 项目仓库配置目录中

查看Tortoisesvn安装成功_查看Tortoisesvn安装成功_07

2. 修改svnserve.conf文件

查看Tortoisesvn安装成功_bc_08

找到以下的内容,并在行首注释符号#删掉。
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

3. 为 svntest 项目增加svn用户,并且赋予权限值:

查看Tortoisesvn安装成功_版本库_09

在文件中添加如下代码:

查看Tortoisesvn安装成功_svn_10

代码的意思是:为 svntest 项目添加一个imobile_001的用户,并且,这个用户对于 imobile 项目拥有读写权限。
关于方框号里面的写法有以下几种:
  • [/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/opt/svn,
  • [/]就是表示对全部版本库设置权限。
  • [imobile:/] 表示对版本库svntest设置权限
  • [imobile:/abc] 表示对版本库svntest中的abc项目设置权限
  • [imobile:/abc/aaa] 表示对版本库svntest中的abc项目的aaa目录设置权限

4. 给用户分配密码,执行如下命令:

查看Tortoisesvn安装成功_查看Tortoisesvn安装成功_11

查看Tortoisesvn安装成功_svn_12

四、启动svn服务和测试

1. 启动svn服务,并指定 svn 的根目录:

查看Tortoisesvn安装成功_版本库_13

2. 查看svn服务是否正常启动,执行如下命令:

查看Tortoisesvn安装成功_查看Tortoisesvn安装成功_14

顺便提一下,svn的默认端口是3690。

3. 在windows系统上测试是否成功:

  1. 首先保证你的系统中已经安装了 subversion 客户端程序。如果没有安装马上下载安装,并重启windows系统。
  2. 在windows任意的目录中,创建一个文件夹,文件夹的名字任意,最好是英文名。如我的:imobile_242。
  3. 右键点击该文件夹,选择”Checkout…”,填写如下信息,点击“确定”按钮之后,会弹出一个对话框,让你输入账号密码,我们的账号是:imobile_001,密码是:123456.填写完之后,可以公告保存账号密码的选项。再点击“确定”就OK了。如图:
  4. 点击“确定”按钮之后,会弹出一个对话框,让你输入账号密码,我们的账号是:svn001,密码是:123456.填写完之后,可以公告保存账号密码的选项。再点击“确定”就OK了。
  5. 开启自启动SVN服务器。现在我们已经配置好了svn服务器。但是,我们是通过手工通过命令启动的。如果,想每次centos 系统开启就启动这个服务的话,有以下方式可以实现。打开/etc/rc.local文件,shell命令如下,这样开机的时候就会自动启动svn服务器了。
vi /etc/rc.local
    svnserve -d -r /opt/svn/

查看Tortoisesvn安装成功_版本库_15

查看Tortoisesvn安装成功_查看Tortoisesvn安装成功_16

五、 SVN提交文件自动更新到nginx的WEB目录

1. 进入WEB根目录:

查看Tortoisesvn安装成功_版本库_17

2. 创建SVN仓库副本:

查看Tortoisesvn安装成功_版本库_18


3. 设置svn更新后自动更新nginx的读取目录:

查看Tortoisesvn安装成功_bc_19

查看Tortoisesvn安装成功_svn_20

查看Tortoisesvn安装成功_bc_21

lc_ctype要设置的值可以使用locale查看
更改文件权限为可执行:#chmod 777 post-commit

4. 同步测试:

查看web目录文件

查看Tortoisesvn安装成功_查看Tortoisesvn安装成功_22

查看Tortoisesvn安装成功_查看Tortoisesvn安装成功_23


本地创建一个文件test001.php

查看Tortoisesvn安装成功_版本库_24


SVN提交文件test001.php

查看Tortoisesvn安装成功_版本库_25


进入web目录查看

查看Tortoisesvn安装成功_版本库_26


英文名文件同步成功


本地创建一个中文名文件

查看Tortoisesvn安装成功_版本库_27

查看Tortoisesvn安装成功_svn_28


查看web目录

查看Tortoisesvn安装成功_查看Tortoisesvn安装成功_29

查看Tortoisesvn安装成功_svn_30