SVN指导手册.docx
- 文档编号:766871
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:41
- 大小:1.85MB
SVN指导手册.docx
《SVN指导手册.docx》由会员分享,可在线阅读,更多相关《SVN指导手册.docx(41页珍藏版)》请在冰点文库上搜索。
SVN指导手册
SVN指导手册
目录
一、SVN简介3
二、术语介绍3
1、Svn目录3
2、主干(trunk)3
3、分支(branch)4
3.1如何创建分支:
4
4、标签(tag)6
4.1如何创建标签:
6
5、补丁(patch)6
5.1如何创建补丁:
6
5.2补丁文件用途说明9
6、创建分支情况案例分析9
三、分支原则11
1、BasicallyStable(基本稳定)11
2、BasicallyUnstable(基本上不稳定)12
四、开发方式12
1、串行开发12
2、并行开发12
五、并行开发13
1、流动的基线13
2、版本树13
3、修改Bug,需要合并到基线中,以便可以发布稳定版本13
4、修改Bug,需要合并到其他正在开发新功能的代码中14
5、修改Bug,导致基线改变,将改变同步到已经发生了改变的2.0版本中15
6、1.1版本开发完成,1.0版不再维护,将1.1版本合并到基线版本中,作为后续版本基线15
7、并行开发策略:
16
六、svn应用16
1、检出(checkout)16
2、更新/更新到指定版本(update/updatetorevision)17
3、提交(commit)18
4、删除(delete)19
5、还原(revert)20
6、比较(diff)22
7、冲突及解决23
8、重命名(rename)25
9、回滚(revert)27
10、查看日志(showlog)29
11、创建分支(Branch)及标签(Tag)30
七、配置管理在项目中32
1、svn客户端的安装32
2、eclipse中svn插件的安装32
3、eclipse中项目的svn检出33
4、eclipse中svn的更新,提交等其他操作35
5、基线的命名规范36
6、Hotfix版本管理37
版本
作者
日期
说明
1.0
lion
2012.09.07
初稿编写
一、SVN简介
Svn全名subversion,是一款版本控制软件
1、版本控制是管理信息变更
2、版本控制工具早已经成为许多程序员的主要工具之一
3、版本控制软件的用途并不仅限于软件开发的领域,只要人们使用计算机来管理经常变更的信息,就需要使用版本控制工具
4、协同工作,大大提高团队工作效率
5、及时了解团队中其他成员的进度
6、资料共享
7、记录每个文件从诞生到最终完成全过程的每步细节
二、术语介绍
1、Svn目录
主干(trunk):
是整个项目开发的主线
分支(branches):
可以是开发者自己独立出来的一个分支,也可以是一个新的项目,与主干项目有一些功能的差异,需要单独分开出来。
标签(tags):
项目开发过程中,各阶段发布的版本快照。
2、主干(trunk)
一种特殊的分支、开发线,通常用于主线版本的开发与发布。
现在文档管理也纳入主干中
3、分支(branch)
主线并行的开发线,用于管理小版本、预研版,hotfix版;
会根据需要,向主线版本合并;
好处:
保证主干不受影响,防止代码丢失,随时上传代码SVN
3.1如何创建分支:
右键点击要进行创建分支的文件夹,选择‘branch/tag’,在地址栏中输入分支地址以及分支的名字,即可创建。
4、标签(tag)
标签是一个静态的标识,是某个时间点的分支快照,不再做修改的里程碑的作品
每次提测都要求打tag;
重点强调:
灰度和正式版本发布前,必须打tag
tag命名要求,例如:
Tag_QQ2011.0.0.123(S60V3)_Beta1/Tag_QQBrowser2.3.0.123(iPhone)
责任人:
由PM负责
4.1如何创建标签:
创建标签和创建分支方法相同,右键点击要进行创建分支的文件夹,选择‘branch/tag’,在地址栏中输入标签所在地址以及标签的名字,即可创建。
5、补丁(patch)
一种线下传递变更信息的方式,记录文件的变动;
主要用于提交前,成员间对文件改动的检查,保证提交的修改正确性。
好处:
patch以发送邮件或者发送到讨论组中的方式,发给相关的责任人(PeerReview)
5.1如何创建补丁:
文件经过修改后在提交前,单击右键,SVN选项中选择‘createpatch’,然后选择要进行打补丁的文件,选择补丁文件存放位置,补丁文件即创建完毕。
1、右键选择‘createpatch’
2、选择要补丁的文件
3、选择补丁文件存放位置
5.2补丁文件用途说明
打开补丁文件内会明显标记出代码的改动地方,可以在线下以邮件方式或者讨论组方式将补丁文件发送到组内,组内成员通过直接查看或者applypatch方式,将代码放入工程中对其进行代码review,进行回复review意见,可以避免代码带有异常情况进行上传,打补丁文件可以用来帮助新人审查代码,有很大程度上的帮助
Applypatch方式附图:
6、创建分支情况案例分析
3.0开发完成,这个时候要做一个tag,tag_release_3_0,然后基于这个tag做release,比如发布等。
trunk进入3.1的开发,但是3.0发现了bug,那么就需要基于tag_release_3_0做一个branch,branch_bugfix_3_0,基于这个branch进行bugfix,等到bugfix结束,做一个tag_release_3_0_1
提示branch_bugfix_3_0一定要合入主线trunk。
如何进行代码的合入:
点击右键,选择‘Merge…’,上端的‘From’地址栏内,填入起始地址,一般为分支地址,下端的‘To’地址栏内,填入合入目标地址,一般为主线地址
操作完成后,此次合并效果会在工作副本上呈现,如果有问题请使用还原,撤销此次修改操作。
注:
其他SVN的插件大同小异
填入分支地址和主线地址
三、分支原则
BasicallyStable(基本稳定)
BasicallyUnstable(基本上不稳定)
1、BasicallyStable(基本稳定)
主导思想是trunk只包含稳定的随时可发布的代码
branches则用于开发新功能/修正bug/发布前的
QA控制/重构/实验性质功能试点
优点:
任何时刻可以分出一个release。
并配以简单QA控制就加以发布。
trunk只包含稳定的代码,并且变动的节奏很慢;
branch上作大量的实验性改动,而不用担心merge回trunk时(即向主线合入代码)会和
别人的工作掺杂在一起而导致bug。
(QA)
缺点:
merge工作量很大
2、BasicallyUnstable(基本上不稳定)
trunk包含最新的代码,不管它的稳定性如何
该原则下最严格的遵行方式为:
所有开发都在trunk上进行
bugfix,release等性质的事件才会开辟branch
优点:
merge是个不常发生的事情,而且是个相对容易完成的事情—因为是由熟悉branch代码的负责者来完成merge
缺点:
显然是trunk包含了不稳定的代码,可能是实验性功能,甚至连编译都不能通过的代码
四、开发方式
1、串行开发
在一个独立的软件发布版本上开发,并行同时只有一个人对同一个配置项进行修改的情况下。
由于现今大多项目采用并行开发模式,在这里不对串行进行详细说明
2、并行开发
当多个人或团队工作在多个版本上,并且对相同文件进行时。
五、并行开发
1、流动的基线
所有代码起始版本的集合。
如果没有并行开发,基线也许就是版本树上的一个简单文件夹。
并行开发,那么基线就是具有了指定标签的版本的集合
并行开发,我们希望基线是流动的,会随着我们的期望变化
2、版本树
1、2、3是不同的版本;
主干作为分支的一种,可以说Main、Ver2.0都是分支;
Release1023和Ver2.0Begin则是标签
3、修改Bug,需要合并到基线中,以便可以发布稳定版本
在主干main中发现发布的版本出现bug,应另创建分支,对bug进行修改,经测试通过后不可以在分支上进行发布,应将代码合并到基线中进行发布
4、修改Bug,需要合并到其他正在开发新功能的代码中
Bugfix修改完bug后,需要将改完后的代码合并到正在开发的新功能版本中,例如图中的v1.1版本。
5、修改Bug,导致基线改变,将改变同步到已经发生了改变的2.0版本中
6、1.1版本开发完成,1.0版不再维护,将1.1版本合并到基线版本中,作为后续版本基线
7、并行开发策略:
频繁合并
控制分支数量
避免长期分支
降低分支复杂度
直到必要时才使用分支
原子级代码提交
六、svn应用
1、检出(checkout)
将服务器内容下载到本地。
右键选择‘SVNCheckout’,填写将要导出的项目路径,导出即可,但是为了分类清楚,查看方便,建议新建文件夹,重新命名,在文件夹内进行检出
2、更新/更新到指定版本(update/updatetorevision)
将svn服务器内容合并到本地。
更新到最新版本:
在SVN控制的某层文件夹内或文件上点右键,选择“svnupdate”则更新到最新版本
查看指定版本:
右键选择“updatetorevision”弹出窗口中填写要取的版本号,点“确定”查看该版本
注:
只是查看该版本的内容,不是将该版本覆盖至最新版本
3、提交(commit)
向SVN版本库提交本地文件。
稳妥的方法为先进行添加,再对有添加标记的文件进行提交,如图示
4、删除(delete)
删除版本控制文件。
将提交到SVN版本库中的文件delete删除后,再右键文件夹空白处选择‘commit’提交后,才是将版本库文件删除。
但是由于版本库已经有记录,是无法将文件彻底从svn库中删除的。
对删除的文件进行提交
5、还原(revert)
用于放弃“增加”、“删除”、“改名”以及修改文件内容等客户端的本地操作,将客户端的文件恢复到改动前的版本状态。
如图:
选择要回撤的操作
回到添加前的初始状态
6、比较(diff)
如不确定和之前的版本有何差别,可右键选择‘diff’来进行比较
左边为服务器中版本,右边为本地代码
7、冲突及解决
当两人或者多人对一个共同文件修改,一个人修改提交后,其他人员并没有进行更新操作,而直接在原有版本上修改提交,无法提交,update时,这两个修改版本就会发生冲突。
解决方法1,放弃自己的更新,使用svnrevert。
在这种方式下不需要使用svnresolved(解决)
解决方法2,手动解决:
冲突发生时,右键选择‘Editconflicts’,通过和其他用户沟通之后,进行结果选择保留,然后执行resolved来解除冲突,最后提交。
左边为服务器版本,右边为本地版本,下面为要合并解决后的版本
解决冲突后,选择‘Resolved’,即‘解决冲突’才可再次正常提交文件
8、重命名(rename)
将上传的文件重新命名。
右键点击想改名的文件,选择‘rename’后,输入新名字,文件变成添加状态,最后在文件的空白处点击提交
重新命名后,进行提交
9、回滚(revert)
用于当前版本编辑提交错误,回滚至以前正确版本。
打开svn浏览器,查看过往版本,根据log信息和提交时间,右键点击revert,回滚至需要版本。
如图
10、查看日志(showlog)
每次修改提交版本到svn都会自动的产生日志,可以通过showlog功能进行查看,进而对某版本进行操作。
点击右键,选择‘showlog’
可以看到各个版本相关信息
11、创建分支(Branch)及标签(Tag)
右键选择branch/tag,输入分支地址,即可创建分支
七、配置管理在项目中
1、svn客户端的安装
Svn分为客户端和服务器端,作为平常工作使用,我们安装客户端即可,服务器端则主要来装在服务器上,安装客户端像安装普通软件即可。
这里需要注意的是,因为公司服务器端版本为1.6,所以我们安装的客户端最好也为1.6版本,否则会产生部分功能的不兼容。
2、eclipse中svn插件的安装
方法:
如果手中的eclipse没有自带svn插件,就需要手动安装,打开eclipse,点击‘help’,选择‘installnewsoftware’,
点击‘Add’按钮
选择插件所在文件夹(local)或者压缩包(Archive),选择完后,点击‘OK’即可,插件可向同事或在网上查找得到
3、eclipse中项目的svn检出
Svn插件安装好后,点击文件的导入,选择‘从svn检出项目’
选择‘创建新的资源库位置’,然后输入svn路径
下一步,选择对应的代码完成即可。
4、eclipse中svn的更新,提交等其他操作
在前面介绍到如何在文件夹中进行更新,提交等操作,在eclipse安装好插件后,右键
点击,选择‘Team’后,即可对应进行相关操作,详细操作前面已有说明,大同小异,不再赘述
需要注意的是:
要对代码进行svn相关操作前,一定要先进行update(更新)操作!
代码要经常进行提交,且保证代码的正确性。
提倡原子提交,小功能完成后运行测试通过即可提交。
5、基线的命名规范
举例:
6、Hotfix版本管理
问:
上线后暴露严重问题,该如何处理呢?
答:
分两步
1、正式环境快速回滚至上一个稳定版本
2、基于出现问题的基线版本Fixbug;
具体步骤如下:
1、基于出现问题的基线(2.0)创建一个2.0-bugfix分支
2、在该分支上解决bug;
3、基于分支创建一个新的基线(2.0.1),测试验证后重新上线;
4、将分支上的修改合并回trunk,这很重要!
(持续更新中……)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SVN 指导 手册