1、介绍
Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。这样就可以很方面恢复到以前的版本,并可以查看数据更改细节。目前,Subversion已成为主流的开源代码版本管理软件之一,简称SVN。
2、SVN相关命令了解
svn:命令行客户端
svnadmin:用来创建、调整或修复版本库的工具
svnserve:svn服务程序
svndumpfilter:过滤svn版本库转储数据流的工具
svnsync:svn数据同步工具,实现另外存一份相同的
svnlook:用来查看办本科中不同的修订版和事务
3、两种运行模式
3.1 利用svnserve作为独立服务运行,通过svn协议访问
3.2 借助mod_dev_svn模块,由apache服务运行(Web/DAV),通过http或https协议访问。想了解此运行模式可以参考着篇博文:http://lizhenliang.blog.51cto.com/7876557/1340646
4、安装与部署
对于Ubuntu来说,装个SVN是件很容易的事,可以直接通过apt软件包管理安装。
4.1 直接安装
# sudo apt-get install subversion
4.1 创建版本库
# sudo mkdir –p /srv/svn/eweb
# sudo svnadmin create /srv/svn/eweb
4.2 了解版本库
# 进入版本库查看生成的相关文件
# ls /srv/svn/eweb
conf db format hooks locks README.txt
# 我们主要关心的是conf和db文件,conf文件夹下是存放主配置文件和用户、权限位置,db文件夹是存放svn转储后的数据。
# ls /srv/svn/eweb/conf
authz passwd svnserve.conf
# authz文件是设置用户权限,passwd文件是存储用户及密码,svnserve.conf是主配置文件,先配置主配置文件。
4.3配置版本库
# sudo vi svnserve.conf #将以下参数去掉注释(要顶格)
[general]
anon-access = none #匿名访问权限,默认read,none为不允许访问
auth-access = write #认证用户权限
password-db = passwd #用户信息存放文件,默认在版本库/conf下面,也可以绝对路径指定位置
authz-db = authz
# sudo vi passwd #格式是用户名=密码,采用明文密码
[users]
xiaoming = 123
zhangsan = 123
lisi = 123
zhangchengjie = zhangchengjie@!2016
# sudo vi authz
[groups] #定义组的用户
manager = xiaoming
php = zhangsan,lisi,zhangchengjie
[eweb:/] #以根目录起始的eweb版本库manager组为读写权限
@manager = rw
[eweb:/media] #php组对eweb版本库下media目录为读写权限
@php = rw
4.4 启动svn服务
# sudo svnserve -d -r /srv/svn --listen-port 21321
4.5关闭svn服务
#sudo pkill svnserve
5.创建web访问目录
#mkdir -p /var/www/eweb 我的web在这里根据自己机器环境定
5.1设置钩子post-commit
#sudo cp /srv/svn/eweb/hooks/post-commit.tmpl /srv/svn/eweb/hooks/post-commit
#sudo vim /srv/svn/eweb/hooks/post-commit
添加如下内容
export LANG="en_US.UTF-8"
SVN=/usr/bin/svn
WEB=/var/www/eweb
$SVN update $WEB --no-auth-cache --non-interactive --username zhangchengjie --password 'zhangchengjie@!2016'
chown -R www:www $WEB
chmod +x post-commit
从新启动服务
#sudo pkill svnserve
#sudo svnserve -d -r /srv/svn --listen-port 21321
6.在终端下执行如下命令
#svn co svn://127.0.0.1:21321/eweb /var/www/eweb --username zhangchengjie--password ‘zhangchengjie@!2016’
注意:127.0.0.1/eweb是svn仓库名,/var/www/eweb是web目录,如果在password中密码使用特殊字符需要用单引号引用,否则会报错bash不解析。
7.客户端验证,写phpinfo文件通过浏览器访问测试。
8.为了方便以后启动关闭在sbin建立svn启动脚本
vim /sbin/svn
1 #!/bin/bash
2 #autor:boy
3 #date:2016/7/28
4 # startup/stop/restart svn services
5
6 ####### start ##############
7
8 case "$1" in
9 start)
10 sudo svnserve -d -r /srv/svn --listen-port 21321
11 ;;
12
13 stop)
14 sudo pkill svnserve
15 ;;
16
17 *)
18 echo "Usage:start,stop"
19 ;;
20
21 esac
chmod 755 /sbin/svn
sudo /sbin/svn stop
sudo /sbin/svn start
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。