ubantu 安装 svn 以及同步

zhoulf 2013-02-02 原创

安装说明

系统环境:CentOS-6.3
安装方式:yum install (源码安装容易产生版本兼容的问题)
安装软件:系统自动下载SVN软件

 

检查已安装版本

#检查是否安装了低版本的SVN
[root@localhost /]# rpm -qa subversion

#卸载旧版本SVN
[root@localhost modules]# yum remove subversion

安装SVN

[root@localhost modules]# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql

确认已安装了svn模块

[root@localhost /]# cd /etc/httpd/modules
[root@localhost modules]# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so

验证安装

检验已经安装的SVN版本信息 
[root@localhost modules]# svnserve --version

svnserve,版本 1.6.11 (r934486)
编译于 Jun 23 2012,00:44:03

版权所有 (C) 2000-2009 CollabNet。 
Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。 
此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。

下列版本库后端(FS) 模块可用:

* fs_base : 模块只能操作BDB版本库。 
* fs_fs : 模块与文本文件(FSFS)版本库一起工作。

Cyrus SASL 认证可用。

代码库创建

SVN软件安装完成后还需要建立SVN库 
[root@localhost modules]# mkdir -p /opt/svn/repositories
[root@localhost modules]# svnadmin create /opt/svn/repositories
执行上面的命令后,自动建立repositories库,查看/opt/svn/repositories 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。

配置代码库

进入上面生成的文件夹conf下,进行配置 
[root@localhost modules]# cd /opt/svn/repositories/conf

用户密码passwd配置

[root@localhost password]# cd /opt/svn/repositories/conf
[root@admin conf]# vi + passwd
修改passwd为以下内容:

[users]
# harry = harryssecret
# sally = sallyssecret
zhoulf=123456

权限控制authz配置

[root@admin conf]# vi + authz
目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:

#设置[/]代表根目录下所有的资源 
[/]
zhoulf=rw

服务svnserve.conf配置

[root@admin conf]# vi + svnserve.conf

追加以下内容:

[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限 
auth-access=write
#密码数据库的路径 
password-db=passwd
#访问控制文件 
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字 
realm=/opt/svn/repositories

配置防火墙端口

[root@localhost conf]# vi /etc/sysconfig/iptables
添加以下内容: 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重启防火墙 
[root@localhost conf]# service iptables restart

启动SVN

svnserve -d -r /opt/svn/repositories

查看SVN进程

[root@localhost conf]# ps -ef|grep svn|grep -v grep
root     12538     1  0 14:40 ?        00:00:00 svnserve -d -r /opt/svn/repositories

检测SVN 端口

[root@localhost conf]# netstat -ln |grep 3690
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN

停止重启SVN

[root@localhost password]# killall svnserve    //停止 
[root@localhost password]# svnserve -d -r /opt/svn/repositories  // 启动

测试

SVN服务已经启动,使用客户端测试连接。 
客户端连接地址:svn://192.168.15.231
用户名/密码: zhoulf/123456
测试创建文件夹等操作。










安装SVN   http://wiki.ubuntu.org.cn/SubVersion

=================================================================================================================================================
安装包
sudo apt-get install subversion
添加svn管理用户及subversion组
sudo adduser svnuser
sudo addgroup subversion
sudo addgroup svnuser subversion
创建项目目录
sudo mkdir /opt/svn
cd /opt/svn
sudo mkdir websites
sudo chown -R root:subversion websites
sudo chmod -R g+rws websites
创建SVN文件仓库
sudo svnadmin create /opt/svn/websites
访问方式及项目导入
svn co file:///opt/svn/websites 或者 svn co file://localhost/opt/svn/websites
下面的命令用于将项目导入到SVN 文件仓库
svn import -m "New import" /opt/www file:///opt/svn/websites
访问权限设置
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz


[users]
mirze = 123456
test1 = 123456
test2 = 123456


[groups]
admin = mirze,test1
test = test2
[/]
@admin=rw
*=r


启动SVN服务(!!!可以监听多个端口)
svnserve -d -r /opt/svn
如果以其他的端口启动则 svnserve -d -r /opt/svn --listen-port 21
访问版本库
svn://192.168.12.118/websites


SVN利用钩子中的post-commit同步版本库到网站目录
这些钩子会在不同的点触发事务
# start-commit  提交前触发事务
# pre-commit    提交完成前触发事务
# post-commit  提交完成时触发事务
# pre-revprop-change 版本属性修改前触发事务
# post-revprop-change 版本属性修改后触发事务


svn同步版本库到网站目录就是利用post-commit钩子:
假设您的
网站目录为:/home/wwwroot/default/weixin
svn仓库目录:/usr/svn/weixin
第一步:到网站目录(/home/wwwroot/weixin) checkout一份SVN版本库中的项目:
    # cd /home/wwwroot/default/weixin  
    # svn co file:///usr/svn/weixin  
如果我只想导入weixin下的文件则在后面加空格点,"svn co file:///usr/svn/weixin ."
第二步:编辑SVN版本库中的钩子
    # cd /usr/svn/weixin/hooks/  
      
    # cp post-commit.tmpl post-commit  
      
    # vi post-commit  


输入如下
    REPOS="$1"  
      
    REV="$2"  
      
    #SVN=/usr/bin/svn  
      
    WWW=/home/wwwroot/default/weixin/  
      
    export LANG="en_US.UTF-8"  
      
    svn update $WWW  --username **** --password **** --no-auth-cache   
增加脚本可执行性权限
chmod +x post-commit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值