近期服务端这边出现了几次代码合并丢失的问题,结果导致一次线上P1故障,一次推迟试验结果出数据,问题很严重。所以回顾一下,期望以后不要再躺在了同样的坑里面。
近期丢代码事件
- A同学误操作将测试中dev分支合并到master,然后在master上revert该mr,然后该mr前的dev分支上的所有commit丢失,合并不回master、
- A同学 误导操作,将hot fix c1合并到master,然后在master revert该mr,然后将c1合并到dev分支,B同学操作合并master到dev,这个时候没有任何冲突,但是导致c1代码丢失,导致线上获取session失败,产生did替换uid,导致推荐画风突变故障
- A同学 revert操作idl,B同学master合并到dev, 代码丢失
- A同学 合并master代码时候,conflict冲突,选择了accept master,导致线上试验一直没有数据故障
- A同学 thrift 生成的代码,合并到master后,发现丢弃部分自动生成的client代码
- A同学 误操作、删除了很多idl接口定义、
问题原因
1. revert操作
原因:revert操作的语义
这里上面的master分支、下面的是dev分支,dev合并到M后,发现错误,在W做revert操作、然后在C、D修复这个错误,这个时候,A、B的代码是没办法合并回master的。
r