linux svn同步到本地目录,LINUX中SVN服务的搭建与实现SVN 自动同步到web目录,SVN自动启动...

一,下载相关软件:

[root@localhost test]# wget http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz

[root@localhost test]# wget http://subversion.tigris.org/downloads/subversion-deps-1.6.1.tar.gz

二,安装及配置:

1,解压,要在同一个目录下:

[root@ localhost test]# tar -zxvf subversion-1.6.1.tar.gz

[root@ localhost test]# tar -zxvf

subversion-deps-1.6.1.tar.gz

2,编译及安装:

[root@ localhost test]#cd subversion-1.6.1/

[root@ localhost subversion-1.6.1]#

./configure--prefix=/usr/local/svn/

[root@ localhost subversion-1.6.1]# make && make

install

注(可能会报错,直接复制错误信息到百度搜解决方案,就不记录了)

3,把svn相关的命令添加到环境变量中:

[root@ localhost subversion-1.6.1]# echo

"exportPATH=$PATH:/usr/local/svn/bin/" >> /etc/profile

[root@ localhost subversion-1.6.1]# source /etc/profile

三,建立测试仓库:

1,建立SVN的根目录:

[root@localhost subversion-1.6.1]# mkdir -p /data/svn/{目录自己选择}

-p:

可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;

2,建立一个测试仓库:

进入到根目录运行下面的命令,就会在/data/svn/下面新建一个名字叫firstsvn的库

[root@localhost subversion-1.6.1]# svnadmin create firstsvn

3、导入版本库

svn import [源路径] [目标版本库路径] -m [日志信息]

svn import svn/ file:///data/svn/firstsvn -m '初始化svn目录'

3,修改配置文件:

[root@localhost svnfirst]# cd /data/svn/firstsvn/conf/

[root@ localhost conf]# vim svnserve.conf

[general]

anon-access = none

auth-access = write

password-db = /data/svn/firstsvn/passwd

authz-db = /data/svn/firstsvn/authz

[root@ localhost conf]# vim passwd

svnname = 123456

用户名=密码

[root@ localhost conf]# vim authz

[groups]

admin = xiaoran.shen,test1

user = test2

[/]

@admin = rw

@user = rw

#除了以上用户其余用户权限为空,禁止访问

* =

四,在Windows 上安装svn客户端:

五,启服务器及测试:

1,启SVN服务,并指定SVN的根目录:

查看SVN服务是否启动

ps aux | grep svnserve

停止服务: killall svnserve

启动服务指定根目录

[root@localhost test]# svnserve -d -r /data/svn/

2,服务已经正常起来:

[root@localhost test]# netstat -tunlp | grep svn

tcp 0 00.0.0.0:3690 0.0.0.0:* LISTEN 8646/svnserve

3,测试:

在Windows

盘符下新建一个名称为firstsvn的目录,在此目录上点击右键,选择Checkout,在首行填写svn服务器的IP地址及仓库名称

例:svn://192.168.1.12/firstsvn

六、配置post-commit,实现自动同步svn版本库文件到web目录

为了可以在修改完代码提交到SVN服务器后,WEB服务器直接同步.需要配置SVN的钩子,打开hooks目录,

/data/svn/svnfirst/hooks

可以看到有一个post-commit.tmpl文件,这是一个模板文件,复制一份放在此目录下,命名为post-commit,并将其用户组设为www,并设置为可执行:

chown www:www post-commit

chmod +x post-commit

这样就有了访问www目录的权限。*里面原有的代码全部注释掉*.这里可以执行shell命令,每次commit完成后都会调用此文件.

我的文件内容为:

#!/bin/sh

#设定环境变量,如果没有设定可能会出现update报错

export LANG=en_US.UTF-8

REPOS="$1"

REV="$2"

SVN_PATH=/usr/localh/svn/bin/svn{服务器上svn安装的路径}

WEB_PATH=/home/wwwroot/default{web站点目录,如果根目录下有多个项目还需要把要同步的项目文件夹的名称写上,要与svn中的名字相同}

LOG_PATH=/tmp/svn_update.log{日志文件}

$SVN_PATH update $WEB_PATH --username user(svn的用户名) --password

password(svn用户名对应的密码) --no-auth-cache >>

$LOG_PATH

说明:

1、#!/bin/sh 说明是执行shell命令

2、export LANG=zh_CN.UTF-8 是为了解决svn post commit 中文乱码。

如果你是GBK编码可能会提示:Erroroutput could not be translated from the native

locale to UTF-8

这是客户端和服务器编码的问题,默认是utf-8,可尝试设置export

LANG=zh_CN.GBK或者exportLANG=zh_CN.UTF-8

如果不行的话可以重启SVN服务

结束服务:killall svnserve

启动:svnserve -d -r /data/svn

设置SVN服务随机自启

1、编辑rc.local文件

#vi /etc/rc.local

进入到rc.local文件

加入如下启动命令:

/usr/local/svn/bin/svnserve -d -r /data/svn/

注:

/usr/local/svn/bin/svnserve是SVN svnserve文件的安装绝对路径,

/data/svn/是svn版本库根目录的绝对路径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值