linux svn安装教程并实现自动同步web目录

本文直接使用yum命令安装svn

一 yum安装subversion

命令: yum install subversion

查看安装版本,检测安装是否成功 svnserve --sersion

查看安装版本 rpm -ql subversion

二 创建目录结构(配置多个项目,这里先建立两个项目示范)

创建我们管理根目录  mkdir -p /home/svn/

创建svn版本库,我们存放项目的目录 mkdir -p  /home/svn/repos

创建项目目录  svnadmin create /home/svn/repos/bloga

步骤:

1,创建根目录mkdir -p /home/svn/

2,创建svn版本库,我们存放项目的目录 svnadmin create /home/svn/repos

3,创建项目目录bloga   svnadmin create /home/svn/repos/bloga

  创建项目目录blogb   svnadmin create /home/svn/repos/blogb

在bloga|blogb目录下我们都可以看到 conf db hooks locks format README.txt

这代表已经安装完成了,接下来就是配置问题

三 配置

将conf下的配置文件(passwd,authz,svnserve.conf)拷贝一份到目录/var/svn下

三个文件的作用:

Passwd 设置用户和密码

Authz 访问授权

Svnserve.conf 配置文件

 

1修改passwd

 

在[users]添加用户和密码

[users]

# harry = harryssecret

# sally = sallyssecret

admin=123456 #repos组长

bloga=123456 #bloga组员

blogb=123456 #blogb 组员

 

2修改authz配置权限

[groups]

group_admin=admin

[/]#英文反斜杠

@group_admin=rw

[repos/bloga:/]

bloga=rw

[repos/blogb:/]

blogb=rw

3修改svnserve.conf设置

[general]

Password-db=passwd

Authz-db=authz

Rerlm=xRepos

就是注释去掉

接来下就是启动服务的脚本,每次修改配置文件后都需要重启服务(这是常识,不管你以后修改什么软件的配置文件,都需要重启服务)

如果你之前已经启动过svn服务,这里需要kill

查看svn服务命令  ps -ef|grep svn

Kill 结束进程命令 kill 2380

 

启动svn服务 svnserve -d -r path

-d 表示后台运行

-r 指定根目录

svnserve -d -r /home/svn \

然后输入 --config-file==/home/svn/svnserve.conf

到这一步整个过程就结束了

下面验证客户端

windows安装我就不多说,网上很多教程,其实也不用教程,下载-安装就可以了

直接输入svn://你的ip地址/repos/bloga

如果正确就应该显示可能还需要输入账号密码,admin  123456 组员登陆就bloga 123456

上面那些是我随便添加的一些数据

总结

如果需要添加新项目就在repos添加

svnadmin create newproject

配置文件,一定要重启服务

四 同步本地和服务器

我们现有SVN版本库中的两个项目:home/svn/repos下的bloga和blogb

我们取bloga作为例子

SVN版本库中的一个项目:home/svn/repos/bloga

网站目录:/home/blog/
我们先将SVN版本库中的一个项目checkout到网站目录:

命令 svn co file:///home/svn/repos/bloga/ /home/blog/

然后利用钩子同步本地和服务器

打开目录 cd /home/svn/repos/bloga/hooks

复制文件cp post-commit.tmpl post-commit

打开post-commit文件 vi post-commit

修改(最后那里修改就好)

REPOS="$1"

REV="$2"

export LANG="zh_CN.UTF-8"    #防止乱码

svn update /home/blog --username admin --password 123456 --no-auth-cache #设置登陆账号密码并不缓存

#/home/blog 为我们的网站目录

 

注:不要遗漏post-commit文件第一行的#!/bin/sh,否则post-commit会报代号255的错误。
最后保存文件,修改文件权限为755,否则SVN无法调用执行:修改post-commit的可执行权限

chmod 755 post-commit

Or

chmod +x /home/svn/tcyg/hooks/post-commit

就完成了svn文件提交后自动同步更新到网站目录的代码了。

OK,至此,就完成所有,尽管可能存在很多漏洞,但新手本人至少是这样完成整个个过程,不喜勿喷。

Ps 冲突的一个基本处理就是清理

清理命令:svn cleanup

如果需要冲突,在客户端清理还是冲突就到服务器上清理,即在/home/blog目录上运行命令 svn cleanup

如果你的网站目录就是上线的网站,此操作慎重

一般来说同步本地和服务器 都是测试环境,正式环境不建议同步

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值