一步一步搭建Svn服务之主干分支操作

临文乍了了,彻卷兀若无。这篇文章主要讲述一步一步搭建Svn服务之主干分支操作相关的知识,希望能为你提供帮助。
公司的项目越来越大,开发人员越来越多,项目中有不同的里程碑,也就是不同版本。软件开发的过程中,如果发现上一个版本有一个紧急BUG,并且需要立即发包修复。这个时候就进退两难,如果你做了版本管理,直接切换到上个版本开发就好了。
在版本控制的系统中,我们经常需要对开发周期中的单独生命线作单独的修改,这条单独的开发生命线就可以称为Branches即分支。分支经常用于添加新的功能以及产品发布后的bug修复等,这样可以不影响主要的产品开发线以及避免编译错误等。当我们添加的新功能完成后可以将其合并到主干中。
习惯性在创建repository仓库后,再在刚才创建的仓库里面再创建trunk、branches、tags这三个文件夹。主要目的是:为了给项目各个阶段,各个版本归类、分阶段存储、并行开发。
trunk文件夹: 主干,我们一般把项目提交到此文件夹里面,在trunk中开发。
branches文件夹:分支,我们一般把那些需要打分支,但是有可能会修改的项目代码,打分支到此目录。
tags文件夹:分支,我们一般把那些阶段性(如迭代各期)的项目代码,打分支到此目录。
本次示例的软硬件环境为:sqlserver2019、VisualSVNServer、TortoiseSVN。
下面是以TortoiseSVN客户端,介绍分支的使用的,依然是图文并茂,都是我一手操作后,留下的文档截图和注释:
准备工作: 使用VisualSVNServer创建一个仓库

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

创建完成,如下图所示:
一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

注:右键目录或仓库,会出现拷贝连接SVN的URL的选项。
把本地项目代码上传到SVN服务端的主干中来到你本地的workspace,找到你的项目。
一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

查看SVN服务端主干目录内容
一步一步搭建Svn服务之主干分支操作

文章图片

使用TortoiseSVN来查看一下SVN中的内容在你本地电脑桌面空白处,右键操作
一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

使用TortoiseSVN检出SVN中的项目
一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

查看从SVN下载到本地的文件夹
一步一步搭建Svn服务之主干分支操作

文章图片

此处演示的是我的桌面路径,各位操作时要注意此处,路径不是写死的。
一步一步搭建Svn服务之主干分支操作

文章图片

SVN打分支: 方式1、先检出再打分支找到你本地桌面下载的文件夹,右键操作
一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

分支创建完毕,再去看一下
一步一步搭建Svn服务之主干分支操作

文章图片

在某一个枝干上的操作,其作用范围就是其自身,并不会影响到其他枝干。这里说的是一般操作,分支合并等情况除外。实战操作一下,详细步骤如下:
在本地DataX文件夹中,增加一个lipengfei.txt,然后SVN Commit到SVN服务端。
一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

用TortoiseSVN查看SVN服务端主干目录的情况
一步一步搭建Svn服务之主干分支操作

文章图片

用TortoiseSVN查看SVN服务端分支目录的情况
一步一步搭建Svn服务之主干分支操作

文章图片

在主干上增加的lipengfei.txt,在分支的目录中并没有,说明枝干之间不会发生干扰。
所以,打分支之前,要保证本地的和服务器上是一致的。打分支之前,一定要做SVN Update和SVN Commit。
方式2、Copy to的方式打分支选择要备份的目录
一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

点击ok后,如果项目文件大的话,等一会再刷新一下客户端,就可以看见打的分支了。
一步一步搭建Svn服务之主干分支操作

文章图片

合并分支:合并分支,就是选择目标分支合并到当前所处分支。可以合并文件也可以合并整个文件夹,看自己的需求。
没有冲突
一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

模拟产生冲突现在主干和分支中的代码是一模一样的
1、在主干中修改操作
在本地的DataX目录中,修改lipengfei.txt,并SVN Commit到SVN端主干中
一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

2、在分支中修改操作
偷个懒,就直接使用TortoiseSVN中的Repo-browser修改
一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

3、在本地主干目录中Merge
一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

冲突已经解决,已经合并完毕了。Merge合并之后,只是在本地的当前枝干发生了变化,而在服务端SVN中的当前枝干还是合并之前的。合并之后确认没问题后,还需要commit到服务端SVN,以保证其他同事能拿到最新的代码。
4、最终结果提交到SVN服务端
一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

5、退回
如果发现合并之后,还有问题,那么可以回退
一步一步搭建Svn服务之主干分支操作

文章图片

切换分支:前面的分支,都是我由主干复制出来的,在SVN仓库中可以看到分支。但是在你的本地目录上,看不到新建的分支情况。如果要把你的文件更新作用到的分支上,你必须做"切换分支"操作。这样你的本地文件就和SVN服务端指定的分支目录关联上了,虽然这时本地目录上看到的文件名仍然为旧的文件名,但是你更新或者提交的话,全是对SVN服务端指定的分支目录操作了。
1、切换分支
一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

2、清空SVN分支目录为了演示,我把分支目录中的所有文件清空,效果如下:
一步一步搭建Svn服务之主干分支操作

文章图片

3、清空本地工作目录把本地工作目录中,除了.svn目录外的其它文件,全部删除。
一步一步搭建Svn服务之主干分支操作

文章图片

4、在本地工作目录中操作在本地工作目录中,创建一个lipengfei_new.txt文件,然后做 SVN Commit操作
一步一步搭建Svn服务之主干分支操作

文章图片

5、把本地文件提交到SVN服务端
一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

【一步一步搭建Svn服务之主干分支操作】
一步一步搭建Svn服务之主干分支操作

文章图片

6、查看SVN服务端分支目录情况
一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

一步一步搭建Svn服务之主干分支操作

文章图片

开发中多分支操作流程:对于branches、tags、trunk这三个目录,并不是subversion必需的,而是长期工作过程中的一种习惯叫法,其使用流程如下描述:
1、一般建立最初的repository时,就建好这三个目录。
2、开发者每日的修改提交到trunk主干目录,主要包括:新功能、bug修正等等。
3、当研发小组认为当前项目,已经做好发布的准备,就会把trunk中的项目代码拷贝到branches下的1.0目录中,这样1.0版本发布的代码就有了。
4、研发工作是并行的,测试同事上面分支中发布的1.0代码,进行严酷的测试。同时研发的同事,在trunk目录中继续新的研发工作(如准备2.0)。测试人员在测试发布的1.0代码中,发现存在bug的话,错误修正需要来回运送代码,这是个反复的过程,当然这个过程有时候也会结束,就是分支已经是发布前的最终测试的代码。
5、分支已经作了标签并且发布,当测试工作结束了,branches下的1.0目录作为引用快照,已经拷贝到tags下的1.0.0目录,这个标签被打包发布给客户。
6、分支多次维护,假如当前trunk中的版本2.0版本,bug修正继续在branches下的1.0目录中操作,如果积累了足够的 bug修正,管理部门决定发布1.0.1版本:拷贝branches下的1.0目录中的内容,到tags下的1.0.1目录中,标签被打包发布,这样1.0.1版本发布的代码就有了。
总结:1、工作中操作多个分支,在文件还未提交之前,确定把文件提交到哪个分支上,一定要选择切换分支操作。
2、SVN分支的管理,实现不同作用的代码放到不同的目录中保存。因此你在取得新版本的时候会发现,不同分支的最新文件也会被获取下来。
3、创建tag目录操作,相当于把当前的代码版本,复制一份到其他地方,然后以这个地方为出发点进行新的开发,与原来位置的版本互不干扰。
至此,SVN的主干和分支开发就演示完了。在上一篇文章中,主干和分支开发这部分讲得比较粗糙,今天特别来篇精讲吧,希望可以帮忙有需要的朋友们!!












    推荐阅读