在;p4副本“;perforce是否更新集成历史记录
问题陈述: 有两个P4分支MAIN和DEV。 他们目前的融合历史不得而知。 如果我们从主-->DEV执行“p4复制”,则所有以前的集成历史记录都将变得无关紧要。因此,当我们在任一方向进行“p4积分”时,应该有0个积分。 这个假设正确吗 在实践中,当我尝试此操作时,P4合并/集成预览显示了挂起的集成,这是在我从主-->开发人员执行P4复制后发生的。这对我来说毫无意义 有人能澄清一下吗 谢谢。在;p4副本“;perforce是否更新集成历史记录,perforce,Perforce,问题陈述: 有两个P4分支MAIN和DEV。 他们目前的融合历史不得而知。 如果我们从主-->DEV执行“p4复制”,则所有以前的集成历史记录都将变得无关紧要。因此,当我们在任一方向进行“p4积分”时,应该有0个积分。 这个假设正确吗 在实践中,当我尝试此操作时,P4合并/集成预览显示了挂起的集成,这是在我从主-->开发人员执行P4复制后发生的。这对我来说毫无意义 有人能澄清一下吗 谢谢。 Paul V.在p4副本期间,集成历史在很大程度上是不相关的(*),因为p4副本主要基于源和目标的头部修订
Paul V.在
p4副本期间,集成历史在很大程度上是不相关的(*),因为p4副本
主要基于源和目标的头部修订是否相同而运行。这意味着:
没有集成历史记录且恰好相同的文件将不会被触摸
将复制具有完全集成历史且不相同的文件(例如,为允许受控差异而“忽略”特定更改的文件)
在p4复制
/p4提交
期间,将为受影响的文件创建正常集成历史记录
在p4合并
或p4集成
期间,内容是不相关的,因为p4合并
仅根据集成历史进行操作。这意味着:
没有集成历史记录且恰好相同的文件将打开进行集成。在p4 resolve
时(当内容实际发生差异和合并时),这些将自动解析为“复制”操作
具有不完全相同的完整集成历史记录的文件(例如,“忽略”特定更改以允许受控差异的文件)将不会打开进行集成
请注意,在案例(1)中,copy
将跳过一个文件,然后通过merge
打开以进行解析。实际上,这通常不是一个不便之处,因为相同的文件对于解析总是微不足道的
不管怎样,如果这个特定的场景使您感到不安并且您想避免它,您可以在copy上使用-f
标志,这将强制混合行为--对于相同的文件,copy
将在内部执行与合并-n
相当的操作来检查集成历史,然后冗余地复制这些文件,以便建立新的集成历史,以便以后进行合并
% p4 help copy
copy -- Copy one set of files to another
p4 copy [options] fromFile[rev] toFile
p4 copy [options] -b branch [-r] [toFile[rev] ...]
p4 copy [options] -b branch -s fromFile[rev] [toFile ...]
p4 copy [options] -S stream [-P parent] [-F] [-r] [toFile[rev] ...]
options: -c changelist# -f -n -v -m max -q
'p4 copy' copies one set of files (the 'source') into another (the
'target').
...
The -f flag forces the creation of extra revisions in order to
explicitly record that files have been copied. Deleted source files
will be copied if they do not exist in the target, and files that are
already identical will be copied if they are not connected by existing
integration records.
(*)值得注意的例外情况:上述-f
行为,以及+k
(关键字扩展)文件周围的一些边缘情况,其中通过粗略检查集成记录来补偿“虚假”内容差异,以确定修订在语义上是相同的。此外,对于copy
确实打开的文件,将参考集成历史记录以确定如何呈现修订范围(开始修订实际上对“复制”记录并不重要,但如果您不生成“看起来正确”的文件,人们会问“为什么这些范围重叠?”因此,为了将这些问题控制在最低限度,我们努力制造一种合并操作产生的副本幻觉。)在您完成p4解析后,查看p4解析后,情况是否变得更容易理解?