linux服务器安装svn版本控制,自动部署代码到项目目录

1、安装svn

yum install subversion

系统会自动从镜像下载安装svn服务器端,中间会提示是否ok,输入y,确认安装成功提示:.....complete!

2、创建项目版本仓库

mkdir svn   //在根目录下创建一个svn代码库目录
cd svn 
mkdir www   进入到svn目录后创建项目目录,即 www 目录为项目目录,svn下可以创建多个目录,即管理多个项目代码
svnadmin create /svn/www  创建www项目版本仓库

www文件夹下面有如下文件:

hooks目录:放置hook脚本文件的目录

locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端

format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号

conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)

3、项目版本库配置

进入到 /svn/www/conf 目录,可以看见 authz   passwd  svnserver.conf 这三个配置文件

svnserver.conf     配置版本库信息和用户文件和用户密码文件的路径、版本库路径

# vi /svn/www/conf/svnserve.conf   
[general]   
anon-access = none   
auth-access = write   
password-db = /svn/www/conf/passwd   
authz-db = /svn/www/conf/authz   
realm = My Test Repository #这是个提示信息 

passwd  添加访问用户及口令

# vi /svn/www/conf/passwd   
[users]   
test1 = 123456   
test2 = 123456
authz  配置新用户的授权文件

# vi /svn/www/conf/authz   
[groups]   
admin = test1   
user = test2   
[/]   
@admin = rw   
@user = r   
* = 
[www:/www]
@admin = rw
@user = r
* = 
格式说明:

版本库目录格式:

[<版本库>:/项目/目录]

@<用户组名> = <权限>

<用户名> = <权限>

/ 表示对根目录(即/svn目录)下的所有子目录范围设置权限;这个根目录跟启动svn的时候设置的目录相同

[www:/www] 表示对资料库中www项目设置权限

创建一个admin组,组成员包括test1

创建一个user组,成员只有test2

admin组对目录有读写权限

单个用户test2有读写权限

*= 表示除了上面设置的权限用户组以外,其他所有用户都设置空权限,空权限表示禁止访问本目录,这很重要一定要加上

注意:对权限配置文件的修改立即生效,不必重启svn。

4、启动svn服务

1:单版本库起动    svnserve -d -r /svn/www/ 

2:多版本库起动    svnserve -d -r /svn/

-d 后台运行

–r 参数指定一个资源

默认svn服务器端口是3690

杀死svn服务

# ps -ef|grep svn   
root 4642 1 0 16:08 ? 00:00:00 svnserve -d -r /svn/www/   
root 4692 3676 0 16:13 pts/2 00:00:00 grep svn   
# kill -9 4642 

到目前为止服务器端svn服务已经搭建完成,可以在客户端用svncheckout代码,进行相关操作了。

5、配置svn版本库代码自动部署到项目目录

在 /svn/www 目录的 hooks里面有一堆tmpl,这些tmpl可以做很多事情,不过今天我们就说一下自动部署post-commit.tmpl,tmpl文件是模版文件,我们要用post-commit需要手动复制对应tmpl里面的内容到新的post-commit里面。

cp post-commit.tmpl post-commit

然后打开post-commit文件清空里面内容,修改为以下代码:

#!/bin/sh
export LANG=zh_CN.UTF-8
/usr/bin/svn update --username test1 --password 123456 /home/www/
其中第一行意思是:用sh来解析这个脚本,因为各种shell的语法有细微的差别

第二行是编码格式:这里我使用的是UTF-8

最后一行/usr/bin/svn 是svn的路径,后半句分别是上面配置的svn用户名和密码以及项目路径

修改post-commit的可执行权限:chmod 755 post-commit

最后进入到项目目录里面 /home/www   checkout 整个项目:

svn checkout svn://{您的服务器地址}:{端口号}/www .   //注意目录后面还有一个点

至此,如果按照此步骤搞下来,应该已经没有问题了,你可以本地commit代码,自动同步到项目了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值