Perforce流拷贝不';这似乎不是正确的选择

Perforce流拷贝不';这似乎不是正确的选择,perforce,perforce-stream,Perforce,Perforce Stream,我刚刚开始使用perforce streams,我对如何处理一个非常基本的情况感到困惑。假设我有两个dev流,每个流都在处理一些特定的、不相关的特性。我的流图如下所示: 假设我希望main同时具有dev1和dev2更改,但我不希望dev1具有dev2更改或dev2具有dev1更改。我可以轻松地将我的dev1更改复制到main。因为我不想在dev2中更改dev1,所以我无法将main合并到dev2中。但是,如果我不从main向下合并到dev2中,我将在复制dev2时丢失main中的dev1更改

我刚刚开始使用perforce streams,我对如何处理一个非常基本的情况感到困惑。假设我有两个dev流,每个流都在处理一些特定的、不相关的特性。我的流图如下所示:

假设我希望
main
同时具有
dev1
dev2
更改,但我不希望
dev1
具有
dev2
更改或
dev2
具有
dev1
更改。我可以轻松地将我的
dev1
更改复制到
main
。因为我不想在
dev2
中更改
dev1
,所以我无法将
main
合并到
dev2
中。但是,如果我不从
main
向下合并到
dev2
中,我将在复制
dev2
时丢失
main
中的
dev1
更改


你怎么避开这个?或者它应该是这样工作的?

你是正确的,复制不是正确的选择

您需要从
dev1
和/或
dev2
合并到主线中。在希望流彼此分开的场景中,无法有效地使用copy,因为copy根据定义,会强制事物相同


请注意,默认情况下,copy操作应自动检测到您正在从尚未合并所有主线更改的流进行复制,并且不管发生什么错误,都会失败。(假设您使用的是copy命令的流感知版本——如果您只告诉它“将此站点路径复制到另一个站点路径”,那么它将愉快地覆盖目标中的任何内容。)

明白了,感谢您的澄清。是我一个人,还是这似乎是一种常见的情况?他们对“豆腐规模”大肆渲染,并将其向下/向上合并,但这似乎不是一个非常现实的方法。也许作为一个git人,我不在Perforce的思维模式中?合并/复制在旧版本的Perforce(比如十多年前的版本)中更有意义,因为它可以解决旧的基础选择引擎的缺点,而旧的基础选择引擎会导致您在来回合并过程中不得不重新考虑冲突解决方案。不过,现代版本的合并逻辑非常合理地处理这些合并,并将自动推断何时适合进行简单复制,因此您不需要在正常工作流程中进行显式复制。我从来都不是“copy”命令的粉丝,除了作为一把大锤用于非常特定的用例之外。