在svn流行的时候,分支模型往往聚焦于主干/分支/发布管理三个重要的点上,而在此基础上apache所推荐的trunk/branches/tags也能清楚地反映出这些点。bug的修复,以及在发布时问题的管理等这些问题也可以通过目前的这种方式来实现,但在其后的分支模型中都将这些问题进行细化,所以会有更好的适应性,
在git的使用相关的文章中整理过一些管理git flow以及github flow相关的文章。在接下来的这几篇文章将试图以svn的方式来践行这些新的分支模型比如git flow。
git flow
git flow源于Vincent Driessen在2010年提出的一个分支模型:
主要特点
两个长期分支
git flow中有两个长期的分支,一直不会被删除,这两个分支是develop和master。
分支 | 生命期 | 作用说明 |
---|---|---|
master | 长期 | 用于保持和生产环境一致或者半步先于生产环境,主要目的用于保证生产环境的实时可用状态 |
develop | 长期 | 开发的集成分支,主要目的用于显示最新的开发状况 |
三种临时分支
相比于长期存在的分支,git flow的模型中还有三种临时性的分支
分支类型 | 说明 | 是否可为多条 |
---|---|---|
Feature分支 | 特性分支 | 可为多条 |
Hotfix分支 | bug对应分支 | 可为多条 |
Release分支 | release实施分支 | 可为多条 |
事前准备
准备镜像
可以使用前面文章中Dockerfile生成的alpine的svn的lts版本的镜像,也可以直接使用使用easypack打好的镜像。
[root@liumiaocn svn]# docker pull liumiaocn/svn:1.10.0
1.10.0: Pulling from liumiaocn/svn
8e3ba11ec2a2: Already exists
4de3c6aa9a6d: Pull complete
f64b6f3c550b: Pull complete
Digest: sha256:c55a104e8f1cc10545b9e51aac4a40271540d0b13ab78c5c0e6ca40c0203f4f7
Status: Downloaded newer image for liumiaocn/svn:1.10.0
[root@liumiaocn svn]# docker images |grep liumiaocn/svn
liumiaocn/svn 1.10.0 15e2c7c993e6 Less than a second ago 12.4 MB
[root@liumiaocn svn]#
启动svn服务
[root@liumiaocn ~]# mkdir -p /usr/local/svn/gitflow
[root@liumiaocn ~]# cd /usr/local/svn/gitflow
[root@liumiaocn gitflow]# docker run -p 3690:3690 -v `pwd`/data:/data/svn --name svn -d liumiaocn/svn:1.10.0
eec53668f0a7e447dafee7416fe23261bfcc5fef56738439ab4cacdd4cb70f66
[root@liumiaocn gitflow]#