回顾一下之前所新建的SVN仓库
在上一讲中,我们一起学习了如何来安装SVN服务器并且新建了一个名称为taotao-javaee
的空的仓库,如下图所示。
从上图中我们可以清楚地看到taotao-javaee
仓库下有三个空的文件夹,它们分别是branches、tags以及trunk,你不仅就要问了,这三个文件夹分别代表什么意思呢?下面我就来告诉大家,如有讲得不好的地方,还请指出,大家可以一起讨论。
branches
branches文件夹代表的是分支。如何理解分支这一概念呢?举个例子,我们在开发项目时往往会分版本,比如1.0、2.0之类的,当我们开发完1.0版本之后,往往就要拉一个分支出来,这时主干继续开发2.0版本。但是1.0版本上线之后肯定会遇到一些bug,遇到bug我们肯定要处理啊,那么我们在哪儿进行处理呢?答案是在分支上,因为主干上的代码加入了很多新特性,还未经过详细测试,不稳定性比较高,而分支上的代码是旧的代码,并没有加入新特性,因此改动起来更简单也更稳定些。当然了,在分支上改完之后,肯定要把分支上修改的代码合并到主干上来,因为我们不能让1.0版本的bug在2.0版本再重现。如果修复的是1.0版本的bug,那么修改完之后新建版本应该是1.1、1.2、1.3等等。
tags
tags文件夹代表的是标签,它主要是记录一些关键时间点,比如某个版本发布的时间,某个大的bug修改的版本等,我们在tags做下标记,这样方便我们根据标签找回我们想要的以前某个版本的代码。
trunk
trunk文件夹代表的是主干,它是我们平时开发所在的目录,也就是说在正常情况下,我们开发的代码应放在主干这儿。
主干的代码始终是最新的,版本也是不稳定的,需要经过多轮测试才能验收通过,这时再新建分支,然后接着开发新的版本。
你有可能对于这句话,不是那么的很明了,接下来,希望通过我比较通俗的话语可以让你理解得更加的深刻。举个例子,比方说我们开发一个项目,就拿淘淘商城这个项目来说,该淘淘商城项目有不同的版本进行迭代,例如taotao v1.0
、taotao v2.0
、taotao v3.0
、······,这些不同的版本是主干上的版本。当我们开发出来taotao v1.0
这个版本之后,就得发布一版。接下来,我们就要继续开发taotao v2.0
这个版本了,这个时候我们依然是在主干上进行开发的。那么好了,现在taotao v1.0
这个版本有bug了,改不改呢?那当然得改了,改的时候,能在主干上改吗?答案是不能。这个时候,主干已经开发完taotao v2.0
这里面的功能了,你即便是在taotao v2.0
这个主干上改完了,你也不能进行发布。因为taotao v2.0
增加了一些新的功能,可能都还没有进行测试,这个时候,你再重新发布,那就肯定会包含一些有问题的功能点,所以,你不能在主干这儿改。
taotao v1.0
这个版本一旦发布了之后,你就应该建一个分支(branches),然后主干继续向前开发。如果分支这里面有bug,那么就在分支里面进行修改,这样势必就会出现taotao v1.1
、taotao v1.2
、taotao v1.3
等这些小版本号。在分支里面改完bug之后,要不要合并到主干呢?这肯定要合并到主干,因为你都知道有bug了,难道主干就不改了吗?难道你还能把这个bug带到taotao v2.0
版本中吗?所以你得把分支里面修改的内容合并到主干,这样保证我们主干里面的内容是最新的。我们主干一旦把taotao v2.0
这个版本开发完,并且测试完之后,再为该版本建一个分支,接着继续开发taotao v2.0
这个版本。
由于我们现在还处于开发项目的过程中,所以我们应该把代码上传到trunk主干之上。
上传代码
要向SVN服务器上传代码,首先我们需要知道上传的地址,如何获取要上传的地址呢?很简单,方法是在trunk
文件夹上右键,再在其子菜单中点击Copy URL to Clipboard
,如下图所示。
粘贴我们刚才复制的URL到记事本上,你便可以看到https://liayun:8443/svn/taotao-javaee/trunk
这样的一个URL,它是以https开头的,也就是安全模式,https默认的端口号是433,如果本地有进程占用了433端口请先关掉那个进程。
上传代码秉承先独立后依赖的原则。比方说,taotao-parent就是个独立的工程,它并没有依赖任何别的工程,因此我们便先上传它,然后taotao-common工程只依赖了taotao-parent,而其他工程都依赖于它,因此第二个便上传taotao-common工程,接着taotao-manager工程依赖于taotao-common,因此我们第三个便上传taotao-manager工程,这里值得说明的是,由于taotao-manager是个聚合工程,它聚合了下面四个子工程,因此我们只需要上传taotao-manager工程即可,不用再单独上传它下面的四个子工程。最后我们上传taotao-manager-web工程。
上传taotao-parent工程的代码
第一步,我们在taotao-parent工程上右键,然后在其子菜单中选择Team
&#