美文网首页
Devops规划随笔-代码分支模型优化 02

Devops规划随笔-代码分支模型优化 02

作者: antony已经被占用 | 来源:发表于2018-12-06 21:03 被阅读0次

昨天谈到了代码分支模型优化的话题。
今天本来和运维的同学约了聊运维平台和CI/CD这边的接口数据的问题,谈到了上线的若干种场景。
谈到最后,大家发现,发布的版本包的内容,其实问题的症结,就在于生产和仿真的代码内容是会分岔的,同一各版本会先上生产再上仿真。而仿真和生产分岔的时候,如果再产生线上缺陷,就需要发布两个hotfix分别上到这两个环境来解决。
如果在git workflow的基础上再增加一个仿真的分支,可以支持上述场景。问题在于
1)Develop合并谁的内容?
2)如果有只上仿真,不上生产的内容,怎么办?

场景:

某版本R1上完仿真后,仿真/生产代码产生不一致。此时线上(仿真/生产)由于历史遗留缺陷,需要修复,并完成R1的生产上线。

1初始状态下, develop/master/sim三个分支的HEAD相同


image.png

2 在develop分支上开发,并通过release/r1分支准备发布。

image.png

3 在release/r1分支上提交。

image.png

4 release/r1 合并至sim(上仿真)

antony@DESKTOP-4ABGAGB MINGW64 /d/repo/demo (sim)

$ git merge release/r1

Updating c4cf7b3..b29bc3a

Fast-forward

feature1.txt | 2 +-

feature2.txt | 3 +++

2 files changed, 4 insertions(+), 1 deletion(-)

create mode 100644 feature2.txt

上线完成后,从sim分支看代码树


image.png

5 线上(prod/sim)发生历史缺陷,通过hotfix来修复

image.png
image.png

6 hotfix/fix1 merge到master (先上生产)

antony@DESKTOP-4ABGAGB MINGW64 /d/repo/demo (master)

$ git merge hotfix/fix1

Updating c4cf7b3..413ff09

Fast-forward

feature1.txt | 2 +-

1 file changed, 1 insertion(+), 1 deletion(-)

上完以后master分支的代码树

image.png

7 在sim分支上拉出hotfix/fix1_sim分支准备修复缺陷

antony@DESKTOP-4ABGAGB MINGW64 /d/repo/demo (sim)

$ git checkout -b hotfix/fix1_sim

Switched to a new branch 'hotfix/fix1_sim'

并解决代码冲突。

image.png
image.png

8 将hotfix/fix1_sim 上仿真

antony@DESKTOP-4ABGAGB MINGW64 /d/repo/demo (sim)

$ git merge hotfix/fix1_sim

Updating b29bc3a..9fc954c

Fast-forward

feature1.txt | 2 +-

1 file changed, 1 insertion(+), 1 deletion(-)

从sim分支上看仿真的代码树

image.png image.png

9 将hotfix/fix1_sim分支merge到release/r1。更新release/r1分支包含现有master 内容,并修复冲突。准备r1上生产。

image.png

10 r1 完成生产上线。

antony@DESKTOP-4ABGAGB MINGW64 /d/repo/demo (master)

$ git merge release/r1

Updating 413ff09..9fc954c

Fast-forward

feature1.txt | 2 +-

feature2.txt | 3 +++

2 files changed, 4 insertions(+), 1 deletion(-)

create mode 100644 feature2.txt

image.png

完成以后,生产/仿真再次拉齐。

此时,线上的修改hotfix尚未回归到develop。该步骤完成后,所有代码更新完成。

删除hotfix/release下临时分支即可。

相关文章

网友评论

      本文标题:Devops规划随笔-代码分支模型优化 02

      本文链接:https://www.haomeiwen.com/subject/ohsacqtx.html