Perforce -如何同步P4中特定文件夹中的特定文件类型



我们有一个P4仓库,其中我们有多个源和编译的数据文件并排。通常情况下,这不会是一个问题,但我在多个团队中工作,所以在某些文件夹中我需要源文件,而在绝大多数情况下我不需要(并且它实际上是tb级的数据)。在P4中是否有可能在流或工作空间上设置过滤器,以便我有一些东西:

include root/
exclude *.max
exclude *.ma
exclude *.mb
include root/Engine/Data/Models/Reference/*.max
include root/Engine/Data/Models/Reference/*.ma
include root/Engine/Data/Models/Reference/*.mb

ie:默认情况下排除所有。max和。maya文件,但将它们包含在参考文件夹的文件夹和子文件夹中(如果这可以从P4V UI中完成,则加分)。

我知道有一种方法可以一个一个地对文件进行操作,但这不是一个选项,因为那里有几百个文件,并且每隔几天就会有美工添加新的文件。

Thanks in advance

从最佳实践的角度来看(就工作空间映射的概念简单性和Perforce服务器的性能而言),最好以这样一种方式组织仓库,即源文件和编译文件位于不同的文件夹中,而不是仅通过文件扩展名和/或名称来分离。如果编译后的文件进入"生成"文件夹,你可以简单地映射整个文件夹作为一般规则,在特定的源文件夹中添加你需要的源代码,然后收工,而不需要任何复杂的重叠排除/包含逻辑。

流完全不允许你所描述的粒度级别;你可以"忽略"。一个全面的扩展,你可以包括/排除个别文件夹,但你不能混合和匹配你所描述的那些规则;对于较简单的仓库结构,这是一个强制函数。流是为了鼓励/执行最佳实践,并且在一定程度上是作为一种约束用户构建任意复杂的客户端视图的方式,这些视图在历史上被证明是难以支持的。

在"classic"客户端视图(即客户端视图是手动构建的,而不是基于流自动生成的),你仍然有任意程度的灵活性,可以构建映射,如:

//depot/root/... //my-client/...
-//depot/root/....max //my-client/....max
-//depot/root/....ma //my-client/....ma
-//depot/root/....mb //my-client/....mb
//depot/root/Engine/Data/Models/Reference/*.max //my-client/Engine/Data/Models/Reference/*.max
//depot/root/Engine/Data/Models/Reference/*.ma //my-client/Engine/Data/Models/Reference/*.ma
//depot/root/Engine/Data/Models/Reference/*.mb //my-client/Engine/Data/Models/Reference/*.mb

,但需要注意的是,性能不能任意扩展——特别是,将大量这样的规则与保护表中的一组类似规则组合在一起,可能会显著降低需要连接两个映射的服务器操作(这是其中的大多数)。

最新更新