我正在一个BitBucket存储库中,该存储库具有3个主要分支:
1. develop
| |
| |->release/7.10 (newer)
|
|->release/7.09 (older)
激活自动PR复制的方式是,指向7.09
的PR会被复制到7.10
并进行开发,而指向7.10
的PR只会像这样复制到develop
图(数字按时间顺序排列):
当时刻1发生时,时刻2和3会自动发生。复制从右到左采用代码。我们的开发人员使用刚刚创建的新分支(如绿色箭头)的代码来创建PR。但是有时将代码复制到其他分支时会发生冲突。
时刻4发生时,它没有成功复制到7.10
中。在执行任何其他操作之前,feature3和Feature4在7.09
上合并,并进入“要复制的代码等待冲突”行。
请注意,虽然7.09
可以合并所有功能,但7.10
却是一团糟。如果在第5时刻生成的自动复制PR被拒绝,那么从第7时刻开始的复制也将丢失,并且来自Feature3和Feature4的所有代码也将从自动复制中丢失。因此,为了解决此问题,我们的开发人员在7.10
的第8时刻创建了一个新分支,从7.09
中提取了代码(从Feature2到Feature4),手动解决了冲突并创建了一个新的PR,当合并时,如图9所示,自动从5和7时刻合并PR。
在解释了这一点之后,我们来看一个真正的问题:
7.10
上显示了此问题,这是相同的,但是在{{1 }}分支),包括自己的代码。所有图像均来自同一PR:在第二张图片中,在红色矩形内的组合上,我可以看到图片3上列出的每个提交的差异。但是,选择All changes in this pull request
时,它仅显示了最后一个提交差异。合并此PR后,第3张图片中显示的所有提交都将丢失,必须按用户手动添加。它们发生了什么,为什么不将它们复制到有冲突的文件中?如果确实不是PR的一部分,为什么将它们列为非灰色提交?