有人可以解释perforce集成选项吗?

Jef*_*ang 23 version-control integration merge perforce

特别:

  • 为什么我需要一直显式启用"启用无基础合并"?我正在从我的分支集成到主干.

  • "启用对已删除目标的集成"是什么意思?它不应该默认这样做吗?如果该文件不存在,并且您使用该文件集成到该分支,则应该创建该文件,对吧?

  • 什么"不要获得所选文件的最新版本"与集成有什么关系?我应该选择源修订版和目标版(以创建新的目标修订版).

  • "忽视间接整合历史"是什么意思?我从来没有用过它,因为它听起来很吓人.

我很高兴知道,因为当我尝试从我们的主干到各个分支执行各种集成任务时,我不太确定要启用哪些选项,反之亦然.(我不是构建大师,但是,嘿,我想知道他知道什么).

rav*_*ven 9

为什么我需要一直显式启用"启用无基础合并"?我正在从我的分支集成到主干.

在这里帮不了你.有些事情是不对的.

"启用对已删除目标的集成"是什么意思?

如果目标文件已被删除且源文件已更改,则会将源文件重新分支到目标文件之上.如果没有此选项,分支上已在分支上更改并在中继上删除的文件将不允许集成回主干.

它不应该默认这样做吗?

如果您要将文件重新集成到从中继分支的中继中,然后在中继上删除,则不会.通常,"p4集成"可避免将未完成的编辑与已删除的文件混合.您必须使用高级选项告诉它如何处理已删除的文件.

如果该文件不存在,并且您使用该文件集成到该分支,则应该创建该文件,对吧?

将以前从未存在的文件(即,它已添加到分支中)从一个位置集成到另一个位置时,是的,Perforce将在您要集成的位置创建它.但是,如果文件最初来自主干,已在主干上删除,现在您正尝试将其集成回分支机构的主干,您必须通过这些集成选项告诉它该做什么.这是这些选项对应的命令行开关:

  • 启用已删除修订的集成= -d
  • 整合已删除的目标= -Dt
  • 删除源时删除目标文件= -Ds
  • 尝试在删除源并重新添加= -Di时集成更改

您可以在集成命令帮助中了解有关它们的更多信息(在命令行中键入"p4 help integrate").

什么"不要获得所选文件的最新版本"与集成有什么关系?

这告诉Perforce使用目标文件的工作空间修订版.默认情况下,目标文件的头版本会在集成之前自动检索到工作区中.假设您已对分支文件进行了一次修订,并将其集成回主干.主干和分支现在有两个此文件的修订版.您向分支文件提交更改,因此它现在有3个修订版.您将分支文件同步回修订版2.如果您现在要进行正常集成,Perforce会假设您希望将所有内容集成到主版本,并将分支文件的修订版3集成到主干中.如果您选择此选项,它会说"已经集成了所有修订版本",因为您的工作区中有修订版2.它与尝试集成"限制集成范围:"选项设置为"集成所有修订版本:"修订版2相同.

"忽视间接整合历史"是什么意思?我从来没有用过它,因为它听起来很吓人.

我无法弄清楚,也找不到任何关于这是什么的信息.


Tod*_*ner 8

  1. 通常,要合并两个文件,perforce会查找"base",这是对这两个文件最接近的修订,并使用它来提供比直接运行两个文件差异更好的差异.请参阅知识库文章.在不知道你的perforce设置的情况下,我不知道出了什么问题,但是,p4win有一些很好的图形工具可以看到分支,你可能能够确定为什么perforce找不到你的基础.这也是"忽视间接整合历史"的作用:阻止它寻找基础.

  2. 对于"不要同步到头":集成时,"目标"是本地客户端中的文件,您没有为其指定修订版本; 相反,perforce将同步您的修订头(如果您不使用"-h"),或将使用您当前拥有的那个.您无法指定任意修订,因为您的本地客户端只有一个特定的版本.