关于SVN(Subversion)中的主干、分支、标记的使用(trunk\branches\tag)

近期有碰到一个关于代码版本控制相关的问题。
目前使用的是Subervion。所以就这一点,对Subversion的控制谈一点个人的看法。

关于开发的主干、分支、标记怎么用,简要来说就是一句话:
trunk主要是用于主干代码的保存和迭代(主线开发或正常功能开发);
每次发布到正式的trunk需要保存一份到tag并加上目录版本号;
如果系统报bug则从tag与现行应用相符版本的代码检出到branch通过branch进行bug修复(分支开发);
当branch开发好了之后发布到正式,打一个新的tag;
然后再主干合并分支

详细的使用方式如下(常用4-11步)(需要熟悉基本的svn使用,否则可能看着有些吃力):

标题1.在svn库里创建对应的/branch;/tags;/trunk (分支,可用标签,主干)三个目录

标题2.在本地同一文件夹子中,检出上述三个目录;并且将本地代码和目录上传到主干目录中成为主干的第一个版本

标题3.当主干进行第一次功能发布后

a.在本地tags中创建1.0目录并上传。
b.选中本地trunk下的代码总文件夹(最新),branch/tag…,目标地址为:svn上对应的 tags/1.0/选中的代码文件夹名
c.并选中 Head revision in repository(修改库中的标题)
d.提交
e.更新本地的tags目录,第一个tag打成功

标题4.主干代码继续进行第二波主要功能的开发

标题5.应用出现紧急bug,需要对当前发布版本的代码进行修复处理。

从tags中检出"当前应用版本"!!!的代码并创建到分支目录下进行bug修复。
a.选中本地tags/1.0下的代码文件
b.branch/tag…,目标地址为:svn上对应的 branch/选中的代码文件夹名
c.并选中 Head revision in repository(修改库中的标题)
d.提交
e.更新本地的branch目录,分支创建成功

标题6.进行代码修复。

测试完成,提交代码并进行应用发布,
然后打一个新的tag(便于下一次的修改),注意是branch的小版本;
最后根据需要对主干和分支进行不同的合并操作;
合并完成后无用的branch代码可以删除

标题7.a.在本地tags中创建1.0.1目录并上传。

b.选中本地branch下修复好并提交的代码总文件夹(最新),branch/tag…,目标地址为:svn上对应的 tags/1.0.1/选中的代码文件夹名
c.并选中 Head revision in repository(修改库中的标题)
d.提交
e.更新本地的tags目录,第一个tag打成功

标题8.将branch和trunk进行合并(查看当前本地分支和主干最新的代码是否存在冲突,如果存在则处理)

a.右键本地 branche下的项文件
    TortoiseSVN
      Merge... 
     Merge a range of revisions 
    Next --->URL to merge from : file:///D:/TortoiseSVN/Repository/Repo-iOS/trunk/代码目录名 
    Next
    Merge
b.branch完成比对trunk的内容,完成

标题9.将trunk和branch进行合并(查看当前本地主干和分支的代码是否存在冲突,如果存在则处理)

a.右键本地 trunk下的项文件
    TortoiseSVN
     Merge... 
    Merge a range of revisions 
    Next --->URL to merge from : file:///D:/TortoiseSVN/Repository/Repo-iOS/branch/代码目录名 
     Next
     Merge
b.trunk完成比对branch的内容,完成

标题10.完成合并,无用的branch代码可以删除了。

标题11.返回主线继续做开发,开发完成后继续打tag到2.0

你可能感兴趣的:(SVN,资源(工具/文档),svn)