同个项目合入两套代码(LSS&&VMS)

  (1)先要明确公共模块,在涉及到公共部分的时候,要先确认下需求,即确认另外的项目是否也需要同样的变动,如果不需要,则需要做兼容处理;
  (2)然后确认下迭代的顺序跟时间(后面迭代的分支在转测前需要把另一个代码分支合入,在合入代码有冲突时,最好是两个项目的人同时决定留下的内容),如果出现合入代码时不明确迭代发布顺序的情况,那么极有可能发生改动内容丢失的情况。

  举个例子在LSS迭代四跟vms1.0.1的开发过程中,我负责LSS而小卓负责vms,由于我们两个没有对齐迭代的发布时间,导致他误认为LSS迭代四的发布时间比vms1.0.1的发布时间要早,所以他在vms1.0.1转测之前合入了迭代四的内容。

  但是在得知了迭代四原来是比1.0.1晚发布的(此时迭代四的分支还没转测,尚存在一些bug),他进行了代码的回滚,但是这次代码回滚对后面我迭代四转测前合入vms分支时造成了影响,也就是我迭代四里面有些修改由于合入了vms1.0.1而丢失了,这是因为vms在进行代码回滚的时候进行了某些删除操作,而合并分支时选择了以vms分支的操作为准而导致的。所以如果一旦合错分支时,再次进行合入要小心比对之前回滚的代码。

  由于这次回滚是在git上直接点击还原的,相当于通过新的合并请求来还原(新的合并请求就相当于这次请求的内容都进行了更改),并不是真正意义上的还原,所以下次合入该分支时,会认为这次还原之后的分支的修改时间是比较靠后的,也就是会以此次还原的代码为准,如果这次还原是通过还原主分支,则不会发生这种事情。

  所以:如果代码合入了主分支之后,主分支后面又没有其他的合入时,要进行回滚可以考虑直接回滚主分支,回滚主分支的风险比较大。。特别是后面有新的合入。所以最好是合入其他迭代的分支之前先考虑好。