版本管理中说得版本是指构件(artifact)的版本,而非源码的版本。项目是否需要进行版本管理依据实际情况而定,如果项目体量小,迭代速度快完成可以直接在主干上进行开发迭代。但是如果项目有往产品性质发展趋势或者有定制化内容,最好进行版本管理,开辟trunk,branch,tag进行联合管理。
trunk:主干,通常情况下都在主干上进行开发工作。
branch:分支,使用分支通常有两种情况。一是主干代码已经正式发布且投入到了下一个版本的开发,此时正式版本出现了bug,则可以开辟一个branch分支进行bug修复,完成后重新发布,后续将branch中的代码合并到trunk上。二是项目存在定制版本,也可以开辟一个branch分支进行维护(不过这种情况感觉做好还是另起项目维护比较好)。
tag:标记(里程碑),如果主干代码发布正式版本了,通常需要在tag下存档。
idea创建svn远程目录
首先在linux上通过命令创建版本库,比如使用的是idea,可在idea中远程创建目录结构,用于存放trunk,branch,tag源码版本。如图一
版本正式发布
当开发测试完成,需要正式发版时,对trunk版本进行打tag,即将当前trunk版本记录成一个里程碑版本(简单理解就是将当前trunk代码复制一份到tag目录上)。假如pom中当前版本为1.0.0-SNAPSHOT,正式版本为1.0.0。发版后调整为1.1.0-SNAPSHOT继续开发。如图二
后续如果需要对这个版本进行bug修复,也可以从这个版本开立分支进行,按照需要将代码合并当trunk上。
代码合并
进入到version control模块进行代码合并操作。
svn switch问题
当我们创建了分支时,拉去最新代码的时候我们首先得确认我们是要拉trunk代码还是branch上的代码。
确认好拉取的对象后我们点击ok便可以或者到最新的代码,下图是当前的代码的svn地址,可以看到的是虽然地址不同,但是本地的工作空间(本地代码存放目录)没有变化。这样就说明了选择trunk或者branch代码,本地工作空间的代码会跟着变化(虽然本地创建了trunk目录来存放trunk代码,但是如果切换到了branch分支,本地trunk目录下的代码也会变成branch中的代码)。当提交代码是会提交到对应远程svn地址上去。为了开发时不混淆,本地工作空间和远程svn代码库最好保持一致。
参考:
idea svn创建trunk主干、branch分支和tag标签_yy1209357299的博客-CSDN博客_svn 创建tag