初始 perforce 结构

Initial perforce structure

我正在尝试为一个小游戏设置初始 perforce 结构。

我熟悉 "classic"(仅阅读源代码)用法中的 SVN 和 SCM。

经过一些研究,似乎 Perforce 是管理源代码和二进制内容(如模型、纹理、声音)的方式...

但是,老实说,我很难找到一个好的结构。

我想把所有东西都放在源代码管理中,这意味着艺术家源文件,加上游戏源代码。

stream depot 对开发者/源代码来说似乎不错,但对美工来说有点麻烦。 我认为美工人员不会乐于管理流和 copy/integrate 到分支中。

所以,我的想法是将所有内容都放入一个普通的 depot,然后使用另一个流 depot 将 "icing" 添加到顶部。

问题是我不知道这是否可能或如何实现。 我想我记得在一个论坛 post 上有人设置了一个可以镜像 "standard branch" 的流,但我找不到它。

不幸的是我的 google-fu 失败了,所以我会在这里问 :

  1. 是否有某种 "standard" 或 "recommended" 用于游戏相关开发的 perforce 设置?我什至找不到一个完整的例子:/
  2. 我可以创建一个流,将 "mirror" 一个普通 depot 上的标准分支吗?如果可以,怎么做?

谢谢。

您可以将非流的内容集成到流库中。

大多数客户使用该过程将他们的内容从非流媒体库移动到流媒体库。

Streams 旨在为您的工作流程提供更多结构,并遵循合并向下复制方法。

不使用流也有它的优点,但它更容易做古怪的事情并稍微偏离 rails。因此,我不确定让美工人员在非流环境中工作,而让其他人在流环境中工作,是否是最适合您的解决方案。

您可能想查看 Streams Adoption Guide,其中提供了迁移到流和使用流的提示:

http://www.perforce.com/sites/default/files/pdf/streams-adoption-guide.pdf

您可能还会发现此 Merge2013 演示文稿很有用,因为它讨论了一家英国游戏公司如何开发和使用流:

http://www.perforce.com/resources/presentations/merge-2013/tips-tricks/streamlining-game-development-streams

此外,您可能会发现 Perforce 的 Helix Cloud 解决方案满足您的要求:

http://www.perforce.com/helix-cloud

希望这对您有所帮助, 珍.

我倾向于对两个组都使用流并将它们分别放在自己的仓库中,但不一定有一种正确的方法可以做到这一点。以下是要考虑的有关流的一些数据点:

  1. 流并不一定意味着分支;你可以有一个“//art/main”流,艺术家们专门在其中工作。他们没有内在的原因需要创建和维护分支(除了您通常创建分支的原因,但这些可能不适用于您的艺术资产,就像它们对您的代码所做的那样)。
  2. 除了管理代码线之外,使用流的好处是集中管理客户端规范——假设您注意到所有美工人员都提交了巨大的生成的“.foo”文件,这些文件不需要在软件仓库中。与其试图让所有艺术家在他们的客户端规范中添加“-//....foo”行,或者乱用触发器,不如在“//art/main”流规范中添加一个忽略行,并且它会影响使用该流的每个人。
  3. 您可以非常轻松地在存储库的 "art" 和 "code" 部分之间共享内容,无论两个团队是否使用流,一个团队是否使用流。

假设您设置了一个“//art”流站(带有“//art/main”流)和一个“//code”流站(带有“//code/main”加创建有意义的任何其他流——为不同的编码人员开发流,他们希望在将它们合并在一起之前隔离地处理不同的特性,等等)。在您的“//code/main”流中添加此路径:

import art/... //art/main/...

现在,“//art/main”中的所有内容都显示在“//code/main”客户端以及“/[=”等子流客户端下的 "art" 目录中39=]”。请注意,如果艺术存在于 "local" depot 而不是 "stream" depot 中,则此完全相同的语法有效——depot 文件是 depot 文件。

如果您最终需要隔离某些版本的艺术资产,请记住您可以在//艺术库中创建分支,而无需艺术家参与;他们只是继续在 //art/main 工作,其他人可以在开发过程中根据需要处理 branching/copying 事情。