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/

原文地址:https://www.cnblogs.com/heroke/p/10057692.html

时间: 2024-07-31 05:22:49

SVN版本管理与大型代码上线的相关文章

企业SVN版本管理与代码上线方案

1.SVN服务实战 1) 什么是SVN(Subversion)? Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统.Svn版本管理工具管理着随时间改变的各种数据.这些数据放置在一个中央资料档案库(repository)中,这个档案库很像一个普通的文件服务器或者FTP服务器,但是,与其他服务器不同的是,SVN会备份并记录每个文件每一次的修改更新变动.这样我们就可以把任意一个时间点的档案恢复到想要的某一个旧的版本,当然也

svn详细介绍,独立安装配置,hooks的配置管理以及大型门户网站代码上线流程

代码发布方案: 1,安装,优化 软件环境,(nginx,lvs)  <-------运维工程师 2,程序代码(不断更新).   <--------开发工程师,(开发,运维都可以发布) 3,配置变更(不断变更).   <--------运维工程师. 一.版本控制管理工具SVN详解 1.1 什么是SVN(subversion) ? SVN是近年来非常优秀的版本管理工具,与CSV管理工具一样,SVN是一个跨平台开元版本控制系统,但是SVN与众不同的是,SVN会备份并记 录每个文件每一次的修改更

SVN版本管理与代码上线架构方案

SVN是Subversion的简称,是一个开放源代码的版本控制系统,可以超越时间的管理文件和目录.文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器.你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改.这就是为什么许多人将 Subversion 和版本控制系统看作一种"时间机器".说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的. svn与git的区别svn   svn版本控制系统是集中式的数据管理,

SVN代码上线流程

为了确保维护svn代码的正确性,特制定上传代码流程如下: 开发人员开发: 开发人员本地分支----取得svn最新代码(根据前一天的最后tag合并)-----代码开发----提交分支. 合并时候注意事项,对于冲突的文件看是不是自己本地正在修改的文件,不是的话就按照诛仙的tag来覆盖,否则按照本地,最好提前解决冲突问题(不好操作的话就被分好自己本地代码,讲SVN代码拿过来,好好看一下冲突冲突的问题),这样在回合的时候就可以按照自己分支来操作了(当然我们也要看一下,以防止别人先合并) 开发人员代码合并

在linux服务器上装svn版本管理,自动部署代码到项目

在linux服务器上装svn版本管理,自动部署代码到项目 http://bbs.aliyun.com/read/9715.html?spm=5176.7114037.1996646101.1.W3zw3X&pos=1 http://v5sheji.com/archives/setupsvnonlinux.html 1.安装svn服务器端  yum install subversion 从镜像下载安装svn服务器端 中间会提示是否ok,输入y,确认 安装成功提示:.....complete! 依次

网页代码上线详解

第1章 代码上线 早期手动部署代码 纯手动scp上传代码. 纯手动登陆,Git pull 或者SVN update. 纯手动xftp上传代码. 开发发送压缩包,rz上传,解压部署代码. 缺点: 全程运维参与,占用大量时间. 如果节点多,上线速度慢. 人为失误多,目录管理混乱. 回滚不及时,或者难以回退. 1.1 小型公司代码上线案例 1.1.1 特点及问题 01.发布快.及时,可随时随地发布代码 02.开发发布的代码不经测试,导致无法访问(如死循环代码),对网站用户体验较差 1.1.2 架构方案

代码上线架构方案

小型企业上线架构方案 1.开发人员需在个人电脑搭建LAMP环境测试开发好的网站代码,并且在办公室或IDC机房的测试环境测试通过,最好有专职测试人员. 2.程序代码上线规定时间,由网站业务性质而定,原则就是影响用户体验最小. 3.代码上线之前需备份,网站程序出了问题方便回退,另外,从上线技巧上将,上传代码时尽可能先传到服务器网站临时目录,传完整后一步mv过去,或者通过ln做软连接. 线上更新代码的思路.如果严格更新,把应用服务器从集群节点平滑下线,然后更新. 4.尽量由运维人员管理上线,对于代码的

svn 版本管理与自动部分发布

作为团队开发项目时,会遇到项目的版本管理,测试部署与发布部署,下面是摘至他人的关于版本管理和自动部署的方案. svn自动部署的实现: 使用svn的hook功能 1.在版本库的hooks目录下面,有一些基于事件触发的执行脚本,比如post-commit, 去掉后缀.tmpl 2.编辑svn代码库服务器上文件: svn/test/hooks/post-commit #!/bin/sh REPOS="$1" REV="$2" export PATH="/usr/

代码上线

1 .小型企业现状 小型公司一般只有几个开发人员,并且网站核心程序大多都是PHP语言开发,为了方便,会直接通过FTP直接上传程序代码到线上服务器,随时随地上线更新. 1.1 上述代码方案的优缺点 优点:发布快,及时,随时随地就可以发布代码. 缺点:开发人员发布的代码不经过测试人员的测试,用户刷新网页可能发现页面改变,也可能刷新瞬间程序在更新,到时无法访问,对网站用户的体验较差,如果开发写错了代码,造成的影响就更大了,这是拿用户做测试的上线方案. 据统计,网站中大概50%以上的故障是和开发程序代码