我的svn项目结构:
svn项目结构说明:
svn的标准目录结构是trunk、branches、tags,我这里多了2个文件夹是dev、prod,是jenkins用来自动发布时填写的svn路径,其实svn的目录如何分配是根据你自己喜好和公司情况来分配的,大公司目录结构肯定更多,小公司没准连目录都不建呢。
1)trunk是主分支,是日常开发进行的地方,你可以直接把代码推送到主分支trunk上(我现在是这样),也可以对应的在branches目录下建立对应的分支,在分支下开发,在合并到主分支上。
2)branches是分支。一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中。又比如为不同用户客制化的版本,也可以放在分支中进行开发。
3)tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。
前提:
项目的dev和prod的代码完全相同,区分不同环境是在maven打包时,使用-Pdev命令生成不同环境的war包的。
我的思路:
1 开发者拉取trunk目录下的代码进行开发,开发到一个稳定版本,如V1.0,管理员将代码打个标签到trunk/1.0目录下,同时再copy一份到dev目录下,用jenkins打包发布后进行测试
2 测试没问题的话,如果要发个版本到正式环境,那你就直接把trunk/1.0目录下的代码直接copy到prod目录就好了,再用jenkins发不下,或者配置jenkins自动检索svn的dev和prod目录文件是否有改动,有的话就直接打包发布,多说一句,我之前的另一个项目是直接jenkins自动检索svn的trunk目录文件是否有改动,有的话自动构建发布,所以说这个就看你需求吧。
测试有问题的话,那就
1 将tag/1.0目录下的代码直接copy/tag到branches/1.0bugfix下,然后管理员把这个branches/1.0bugfix目录告诉开发者(不能在现在的trunk上直接改bug,因为现在可能trunk是V3.0,线上才1.0),
2 开发者本地另开一目录拉取下来分支处理bug,处理好了提交。
3 管理员再把branches/1.0bugfix下的代码copy/tag到tags/1.1下
4 如果现在要发个版本到正式环境,那就把branches/1.0bugfix里的项目 copy/tag到prod目录下。
5 对于当前开发环境trunk里的代码当然也要记得改下(这里是该用分支的合并?那都很久之前的代码了,怎么合并?不懂,望告知),以免以后发布依然存在bug
网友评论