有时,当我接受我更改设置时,我会收到以下消息:
为了解决这个问题,我将更改作为补丁应用,然后“合并到工作区”更改为什么找不到所有更改集?我的代码是否存在与流目标不同步的危险?
危险不是不同步,而是结果代码的完整性,一旦应用了补丁:
您正在接受基于未交付的其他更改集的更改集。
不能保证它有效。
如该线程中所述:
在 S1 中,假设有两个更改集修改了 file
foo.java
:CS-23
和CS-35
.
你有要求CS-35
,但没有CS-23
。
但是文件foo.java
中的状态CS-35
包含来自...的更改所以除非您也有(即“导致此更改集的更改集”),否则您CS-23
无法获得。CS-35
CS-23
开发人员 A 可以不交付他/她的所有变更集,只要他/她交付所有变更集到某一点。
在部分交付的情况下出现警告(开发人员交付B
,基于变更集A
,但不交付变更集A
)
这可能不是问题,如果git cherry-pick
两个变更集之间没有功能依赖(类似于 )(例如,如果B
不依赖代码A
进行编译)。