Perforce “如何管理”;“第三方”;Performance中的子项目?

Perforce “如何管理”;“第三方”;Performance中的子项目?,perforce,setup-project,Perforce,Setup Project,我们的团队将一系列不同的子模块集成到我们的主要项目中,我们正试图确定管理所有这些不同知识产权的最佳方式。(从这里开始,我将这些子项目称为IP“知识产权”) IP将是第三方供应商IP、先前项目IP和本项目新IP的混合。以下是我们正在考虑的管理所有不同IP的一些想法: 在物理驱动器上发布版本,并使主项目指向正确的版本 优点-对SCM几乎没有依赖性:最初似乎更易于管理: 缺点-必须记住使每个物理设计中心保持最新: 使用Perforce客户端规范视图包含正确的版本 专业人士-能够快速查看客户端规范中使用

我们的团队将一系列不同的子模块集成到我们的主要项目中,我们正试图确定管理所有这些不同知识产权的最佳方式。(从这里开始,我将这些子项目称为IP“知识产权”)

IP将是第三方供应商IP、先前项目IP和本项目新IP的混合。以下是我们正在考虑的管理所有不同IP的一些想法:

  • 在物理驱动器上发布版本,并使主项目指向正确的版本

    优点-对SCM几乎没有依赖性:最初似乎更易于管理:

    缺点-必须记住使每个物理设计中心保持最新:

  • 使用Perforce客户端规范视图包含正确的版本

    专业人士-能够快速查看客户端规范中使用的IP:

    缺点-由于有很多IP,客户端规范变得非常混乱且难以管理:每个团队成员都管理自己的客户端规范(不一致):决定使用哪个IP版本的事情不在SCM下(默认情况下):

  • 将不同版本集成到一个单行客户端视图中

    优点-使客户端规范维护非常简单:IP版本的任何更改都可以通过标准Performance工具轻松观察到:

    缺点-不太容易看到我们使用的IP版本:

  • 我们的经理更喜欢#2,因为他最容易查看客户规范并了解我们正在使用的所有IP和版本。工蜂们往往非常不喜欢这个项目,因为这意味着我们必须努力使每个人的客户规格保持最新,并且不在项目本身的SCM范围内

    其他人如何处理Performce项目中的IP?您有什么建议

    更新:

    我真的倾向于解决方案3,它看起来更干净,更容易维护。如果有人能想到为什么#3不是一个好主意,请告诉我。

    “每个团队成员都有自己的客户规范(不一致)”


    不要那样做。让客户端规范成为签入到Perforce的文件。

    我也会选择第三种解决方案

    我想不出有什么坏处,过去遇到类似情况时也没有经历过

    您可以通过使用分支规范来安抚您的经理,该规范清楚地说明了分支的IP版本。然后他可以引用分支规范而不是客户规范

    此外,如果您在帮助中查找“spec depots”,您可以设置Perforce,以便it版本自动控制所有规范,包括分支规范,这将在您更改IP版本时为您提供可追溯性。

    我建议使用#2,因为它是最透明的系统。是的,这将意味着需要更多的工作来保持客户机的最新,但是您可以通过使用模板客户机来最小化这个问题

    在我的工作中,我们使用开发人员从中复制的模板客户机来保持客户机的正确配置。我们将其命名为模式“0-PRODUCT-BRANCH”(如果需要,有时还会添加平台)。然后,它是来自命令行的一行命令,或者是来自GUI的几次单击来更新您的客户机。每当模板更改时,我都会向团队发送通知


    在我的例子中,模板更改并不经常发生。每年最多可能有5-6个,因此您的麻烦程度可能会有所不同。

    起初,我以为您指的是“互联网协议”中的IP。然后,由于这在你的帖子中没有意义,我认为它可能意味着“知识产权”,但在你谈论发布时,这似乎也不太合适。你能澄清一下你所说的IP是什么意思吗?如果你不是在谈论互联网协议,你可能想把IP拼出来(并去掉IP标签)。您可能会发现此问题已(错误地)迁移到ServerFault。我不会,因为我不知道你说的IP是什么意思。对于这个回答,IP+1是我们倾向于这样做的。我只想说,能够一致地复制构建比准确地知道正在使用的版本更重要;依赖复杂的客户规范就等于问未来的问题IMHO(选择#3的理由)。当然可以将客户规范签入Performance,即使这可能会导致鸡和蛋的问题。在多用户环境中,每个用户可能还需要在“同一时间”从不同的位置使用同一版本,您在实践中如何处理这一问题?