SVN安装配置详解

SVN安装配置详解


一、安装所需代码包


subversion源代码包:
下载地址:http://mirror.bjtu.edu.cn/apache/subversion/subversion-1.8.0.tar.bz2


sqlite-amalgamation源代码包:


下载地址:http://www.sqlite.org/sqlite-amalgamation-3071501.zip


二、编译安装源代码


1、创建svn安装目录


# mkdir /usr/local/svn
2、解压代码包


#tar -jxvf subversion-1.8.0.tar.bz2-C /usr/src//解压subversion包


#unzipsqlite-amalgamation-3071501.zip


#mv sqlite-amalgamation-3071501.zip /usr/src/subversion-1.8.0/sqlite-amalgamation


//解压sqlite-amalgamation到已解压的subversion目录下,并重命名为sqlite-amalgamation


(注:安装过程中有些机器可能会提示缺少一些包,大家可以根据提示下载安装。)


依赖包:


Yum -y install Apr apr-util apr-devel apr-util-devel


3、编译安装
# cd subversion-1.8.0


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


# make && make install


4、测试是否安装成功


# /usr/local/svn/bin/svnserve --version


5、将命令添加环境变量


vim /etc/profile


添加以下命令
PATH=$PATH:/usr/local/svn/bin


export PATH


三、配置svn


1、建立版本库目录不与svn同目录


# mkdir -p /opt/svndata/


2、建立svn版本库
# svnadmin create /opt/svndata/game/
(注:执行此命令后svn会自动在repos目录下生成必需的配置文件,如果为生成则svn库建立失败。所生成文件无法手建,否则无效。)


3、修改版本库配置文件


# vim /opt/svndata/game/conf/svnserve.conf
anon-access = none // 使非授权用户无法访问


auth-access = write //使授权用户有写权限


password-db = passwd //指明密码文件路径


authz-db = authz // 访问控制文件


realm = /opt/svndata/game //认证命名空间,subversion会在认证提示
里显示,并且作为凭证缓存的关键字。


(注:各语句都必须顶格写, 左侧不能留空格, 否则会出错这是svn配置文件的格式,按照以上格式书写。)


4、配置用户


#vim /opt/svndata/game/conf/passwd


插入用户名和密码,(格式为:用户名 = 密码),可添加多个。


[user]


Wgmml = 123456


Wuxu = 123456


5、给用户配置权限


# vim /opt/svndata/game/conf/authz
设置用户权限,(格式:用户名 = 权限)。只读“r”、读写“rw”没有列


出用户拒绝登录。具体设置可见svn手册。


[/]


wgmml = rw


wuxu = r


6、启动svn服务


# svnserve -d -r /opt/svndata


-d:表示以daemon方式(后台运行)运行
-r :/opt/svndata/game指定根目录是/opt/svndata/game


7.检查端口(svn默认端口是3690)


# netstat -nelp|grep 3690


---------------------------------------------------自动更新-------------------------------------------

网站根目录:/data/test/


Svn版本库:/data/svn/test


现在需要实现当客户端提交后自动更新到网站根目录。在版本库下有一个目录为hooks,在该目录下新建post-commit,其内容如下:(红色部分必须有,蓝色部分可选)


#!/bin/sh


REPOS=$1


REV=$2


time=`date "+%Y-%m-%d %H:%M:%S"`


export LANG=zh_CN.UTF-8


# 当用户提交的时候注释里包含aotu_deploy字符串的时候才发布到web目录


if (/data/app/svn/bin/svnlook log -r $REV /data/svndata/jfzd2012/ | grep "auto_deploy")


then


echo "start deploy $time" >> /tmp/svn_autocommit.log


/usr/local/svn/bin/svn export --username wp1998 --password 111 "svn://192.168.8.8/test"/data/test/ --force --no-auth-cache


fi


给脚本执行权限:chmod +x post-commit


------------------------------------------------------------------------------------结束----------------------------------------------------------------------------------------

------------------------------------------------SVN的迁移---------------------------------------------

说明:需要把192.168.8.141(源)主机下的/data/svn/www版本库迁移到192.168.8.8(目标)主机上。


步骤:
1.在源服务器上先建立版本库的dump
#svnadmin dump /data/svn/www/>www.dump
复制dump到目标主机(下面是网络scp复制,方式自选,ftphttp,移动设备都可以)。
#scp www.dump root@192.168.8.8:/root/
目标服务器上新建一个版本库/data/svn/www
#svnadmin create /data/svn/www
在目标服务器上导入dump
#svnadmin load /data/svn/www < www.dump


然后再修改/data/svn/www/conf目录下的配置文件来设置权限。


---------------------------------------------------结束-----------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------windows下-------------------------------------------------

1、导出:


在windows下,执行:


"c:\Program Files\VisualSVN Server\bin\svnadmin.exe" dump D:\Repositories\TestProject > d:\svndumpfile\TestProject_20090722.dump


2、将dump文件拷贝到目标机器


3、在目标机器创建仓库:


svnadmin create /repositories/TestProject


并注意检查是否需要修改文件夹权限


4、执行命令svnadmin load:


svnadmin load TestProject < TestProject_20090722.dump


你可能感兴趣的:(linux,SVN,服务)