svn代码管理和上线方案

svn集中式版本控制系统

svn简介

    安装 部署 维护 排障
    运维人员搭建系统 为开发人员使用
    svn档案数据格式:BDB FSFS
    svn版本系统逻辑架构图
    svn不太适合很多人开发
    svn集中式开发系统 有较好的权限管理系统

svn准备部署安装

准备好centos环境系统

  • 使用rpm、yum(功能性,快速简单,下载rpm包)安装subversion:yum -y install subversion
  • 配置并启动svn
mkdir -p /application/avndata
mkdir -p /application/svnpasswd
启动服务:svnserve -d -r /application/svndata/
查看进程:ps -ef|grep svndata
查看端口:netstat -lntup|grep 3690 或者 lsof -i : 3690
  • 创建新项目版本库sadoc
svnadmin create /application/svndata/sadoc
查看命令用法:svnadmin help create

配置简单易用就好,配置不要太复杂

  • svn版本库配置文件修改
备份:cp svnserve.conf svnserve.conf.ori
修改: vi svnserve.conf
查看修改对比:diff svnserve.conf svnserve.conf.ori

    < anon-access = none
    < auth-access = write
    ---
    > # anon-access = read
    > # auth-access = write
    27c27
    < password-db = /application/svnpasswd/passwd
    ---
    > # password-db = passwd
    34c34
    < authz-db = /application/svnpassword/authz
    ---
    > # authz-db = authz
    
复制passwd、authz到/application/svnpasswd/下: cp passwd authz /application/svnpasswd/
修改/application/svnpasswd/下的passwd、authz的权限:chmod 700 *
  • 为svn版本库创建用户并授权访问指定项目版本库
配置用户:vi passwd
[users]
    # harry = harryssecret
    # sally = sallyssecret
    oldboy = oldboy123
    gongli = gongli
    
    
版本库目录格式:vi authz
[group]
    sagroup = oldboy,gongli
    [sadoc:/]
    oldboy = rw
    gongli = r
    @sagroup = r
    
重启svn:
    pkill svnserve
    svnserve -d -r /application/svndata/

通过技术文档学外语

  • Linux客户端安装和使用
svn客户端连接方式:
    svn://your public ip address/sadoc
    账号密码:oldboy : oldboy123
svn在Linux中常用命令:
    1.将文件checkout到本地目录
        svn checkout path(path是服务器上的目录)
        例如:svn checkout svn://your public ip address/sadoc
    简写:svn co
    2.往版本库中添加新的文件
        svn add file
        例如:svn add test.php(添加test.php)
        svn add *.php(添加当前目录下所有的php文件) 
    3.将改动的文件提交到版本库
        svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)
        例如:svn commit -m “add test file for my test“ test.php
        简写:svn ci
    4.加锁/解锁
        svn lock -m “LockMessage“ [--force] PATH
        例如:svn lock -m “lock test file“ test.php
        svn unlock PATH 
    5.更新到某个版本
        svn update -r m path
        例如:
        svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
        svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
        svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
        简写:svn up 
    6.查看文件或者目录状态
        1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
        【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】M状态一般比较多
        2)svn status -v path(显示文件和子目录状态)
        第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
        注:svn status.svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
        简写:svn st 
    7.删除文件
        svn delete path -m “delete test fle“
        例如:svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”
        或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘,推荐使用这种
        简写:svn (del, remove, rm)
    8.查看日志
        svn log path
        例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化
    9.查看文件详细信息
        svn info path
        例如:svn info test.php
    10.比较差异
        svn diff path(将修改的文件与基础版本比较)
        例如:svn diff test.php
        svn diff -r m:n path(对版本m和版本n比较差异)
        例如:svn diff -r 200:201 test.php
        简写:svn di 
    11.将两个版本之间的差异合并到当前文件
        svn merge -r m:n path
        例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
    12.SVN 帮助
        svn help
        svn help ci

不常用的可以去网上搜索

  • svn的钩子脚本:被某些版本库事件触发的程序 写法就是操作系统中shell脚本程序的写法
    查看hooks目录可以发现很多常用钩子:
    post-commit.tmpl
    post-lock.tmpl
    post-revprop-change.tmpl
    post-unlock.tmpl
    pre-commit.tmpl
    pre-lock.tmpl
    pre-revprop-change.tmpl
    pre-unlock.tmpl
    start-commit.tmpl

上网可以查看修改用法 钩子可以实现代码分发 、同步数据 、上传文件各类检查等特殊功能

互联网小型企业上线发布方案

  • svn的项目组织和架构方案
    svn版本库分类:分支 主线
    代码上线方式:用户--http--web服务器--ftp--开发
    核心语言:php
    特点:快速 高效 开发人员少
    50%网站出现问题和开发程序代码有关 运维责任较少
    
    建议:
    搭建LAMP环境测试开发好的网站 办公室或IDC机房的测试环境通过
    程序代码上线需要规定时间
    上线技巧 先将代码上传到网站临时目录 传完整后一步mv过去
    如严格线上更新技巧,把应用服务器从集群节点平滑下线,然后更新

中大型企业上线代码发布方案

淘宝企业代码发布方案架构图
    svn服务器:程序代码 服务配置 项目文档 设计文档 运维部署优化文档

    配置管理员:协调开发人员 运维人员 把svn代码build好 推送到IDC机房

    Jenkins:web管理平台 可以把svn里的代码自动发布到办公开发环境

    开发项目测试人员:测试办公开发环境

    办公开发环境配置:也是从svn服务器发布上去

    IDC环境:IDC即Internet Data Center,是基于Internet网络,为集中式收集、存储、处理和发送数据的设备提供运行维护的设施基地并 提供相关的服务 

  • 运维人员上线:大型门户网站上线 按地区分布上线
运维上线方案
总结:
1.越往上走 更要熟悉流程和制度 而不是技术 要有项目负责制思想
2.svn独立模式
3.svn钩子应用 通过ldap统一认证
4.大型企业的代码发布 熟悉制度流程图,逻辑方案 业务变更管理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,653评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,321评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,833评论 0 324
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,472评论 1 266
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,306评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,274评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,658评论 3 385
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,335评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,638评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,697评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,454评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,311评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,699评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,986评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,254评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,647评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,847评论 2 335

推荐阅读更多精彩内容