SVN版本管理与大型代码上线
Posted heroke
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN版本管理与大型代码上线相关的知识,希望对你有一定的参考价值。
SVN版本管理与大型代码上线
一、SVN简介
SVN是近年来崛起的非常优秀的版本管理工具,是一个开源的版本控制系统,开发的代码版本,
这些数据位置放置在一个中央资料档案库,很想一个普通的文件服务器或者FTP服务器
与其他服务器不用的是,SVN会备份并记录每个文件每一次的修改更新变动,
可以进行回滚操作,可以把任意一个时间点的档案恢复到想要的某一个旧的版本,
也可以浏览指定文件的更新历史记录。SVN是一个非常通用的软件系统,它常被用来管理程序源码,但是它也可以管理任何类型的文件,
如文本,视频,图片等等
SVN相关站点
Subversion官网:
http://subversion.tigris.org/
http://subversion.apache.org/
svn客户端:http://toroisesvn.net/
svn中文网站:http://www.iusesvn.com/
中文常见问题解答FAQ:http://subversion.apache.org/faq.zh.html
官方手册:http://svnbook.red-bean.com/ 中英都有
SVN与Git的区别
集中代码版本管理工具——SVN,应用产品开发,可以让每个人协调,开发用的多
个人代码版本管理工具——Git,只针对个人,与其他人无法配合
企业应用场景
SVN仍是当前企业的主流,Git正在发展,也许未来也会成为主流,小企业用的多
运维人员掌握版本管理
1、安装,部署,维护,排障
2、简单使用,很多公司都是由开发来管理,包括建立新仓库和添加删除账号
3、对于版本控制系统,运维人员相当于开发商,开发人员是业主,运维搭建的系统为开发人员服务
SVN三种访问方式
(1)独立服务器访问
访问地址如:svn://svn.yunjisuan.org/sadoc;
(2)借助apache等http服务
访问地址如:http://svn.yunjisuan.com/sadoc;
a,单独安装apache+svn(不要用)
b,CSVN(apache+svn)是一个单独的整合的软件,带web界面管理的SVN软件(3)本地直接访问(例如:file://application/svndata/sadoc)
二、搭建SVN服务端
安装配置SVN服务
#光盘安装svn
[[email protected] ~]# yum -y install subversion
[[email protected] ~]# rpm -qa subversion
subversion-1.6.11-9.el6_4.x86_64
#建立svn版本库数据存储根目录(svndata)及用户,密码权限目录(svnpasswd)
mkdir -p /application/svndata #数据存储根目录
mkdir -p /application/svnpasswd #用户,密码权限目录
建立项目版本仓库
创建一个新的subversion项目yunjisuan,其实类似yunjisuan这样的项目可以创建多个,
每个项目对应不同的代码。这里只创建一个项目为例:
svnadmin create /application/svndata/yunjisuan
tree /application/svndata/yunjisuan/
编辑SVN配置文件
cd /application/svndata/yunjisuan/conf/
cp svnserve.conf{,.bak}
vim svnserve.conf #修改12、13、20、27行内容
12 anon-access = none #禁止匿名访问
13 auth-access = write #验证访问可写
20 password-db = /application/svnpasswd/passwd #密码文件位置
27 authz-db = /application/svnpasswd/authz #验证文件位置
将authz文件和passwd文件拷贝到/application/svnpasswd下
cp /application/svndata/yunjisuan/conf/authz /application/svnpasswd/
cp /application/svndata/yunjisuan/conf/passwd /application/svnpasswd/
启动SVN
[[email protected] conf]# svnserve --help #svn启动命令帮助
svnserve: warning: cannot set LC_CTYPE locale
svnserve: warning: environment variable LANG is en
svnserve: warning: please check that your locale name is correct
usage: svnserve [-d | -i | -t | -X] [options]
Valid options:
-d [--daemon] : daemon mode #守护进程启动(后台)
-i [--inetd] : inetd mode
-t [--tunnel] : tunnel mode
-X [--listen-once] : listen-once mode (useful for debugging)
-r [--root] ARG : root of directory to serve #指定根目录
-R [--read-only] : force read only, overriding repository config file
--config-file ARG : read configuration from file ARG
--listen-port ARG : listen port #监听端口默认3690
[mode: daemon, listen-once]
--listen-host ARG : listen hostname or IP address #监听IP
[mode: daemon, listen-once]
-T [--threads] : use threads instead of fork [mode: daemon]
--foreground : run in foreground (useful for debugging)
[mode: daemon]
--log-file ARG : svnserve log file
--pid-file ARG : write server process ID to file ARG
[mode: daemon, listen-once]
--tunnel-user ARG : tunnel username (default is current uids name)
[mode: tunnel]
-h [--help] : display this help
--version : show program version information
[[email protected] conf]# svnserve -d -r /application/svndata/ #警告可以忽略
[[email protected] conf]# netstat -antup | grep 3690 #svn默认3690端口
解决svnserve启动时的警告问题
[[email protected] conf]# source /etc/sysconfig/i18n #启用中文字符集
[[email protected] conf]# pkill svnserve
[[email protected] conf]# svnserve -d -r /application/svndata/
[[email protected] conf]# netstat -antup | grep 3690
passwd文件及密码设置
#在/application/svnpasswd/passwd文件末尾追加如下内容:
[[email protected] conf]# tail -4 /application/svnpasswd/passwd
yunjisuan = 123123 #设置账号密码
benet = 123123 #设置账号密码
stu001 = 123 #设置账号密码
stu oo2 = 456 #设置账号密码
authz授权
注意:
1、权限配置文件中出现的用户名必须已在用户配置文件中定义(必须有这个用户才行)
2、对权限配置文件的修改立即生效,不必重启svn
权限配置说明
[groups]
zuming = xiaoming,xiaohong #用户组名 = 用户1,用户2
#版本库目录格式:
[repository:/baz/fuz] #[<版本库>:/项目/目录]
@zuming = rw #<用户组名> = <权限>
xiaoming = rw #<用户名> = <权限>
#编辑authz配置文件进行授权,在authz末尾加入以下几句代码
[[email protected] conf]# egrep -v "#|^$" /application/svnpasswd/authz
[aliases]
[groups]
sagroup = stu001,stu002 #新增本行,定义组名
[yunjisuan:/] #定义授权的范围
yunjisuan = rw #用户单独授权
benet = r #用户单独授权
@sagroup = r #组用户授权
重启svnserve
[[email protected] conf]# ps -ef | grep svn | grep -v grep
root 1261 1 0 17:16 ? 00:00:00 svnserve -d -r /application/svndata/
[[email protected] conf]# kill 1261
[[email protected] conf]# ps -ef | grep svn | grep -v grep
[[email protected] conf]# svnserve -d -r /application/svndata/
以上是关于SVN版本管理与大型代码上线的主要内容,如果未能解决你的问题,请参考以下文章