如何写这个perforce客户端规范?

时间:2010-11-01 18:26:20

标签: perforce perforce-client-spec

我想同时将目录映射到不同的本地文件夹(例如AA/adirBB/adir)。这是下面的规范,但它不能很好地工作。

有什么不对吗?

//depot/adir/... //cws/build/AA/adir/...
//depot/adir/... //cws/build/BB/adir/...

2 个答案:

答案 0 :(得分:7)

在perforce中,强烈要求在软件仓库和工作区之间存在一对一的关系。来自the doc

所有视图构建库中文件与客户端工作空间,分支或标签中的文件之间的一对一映射。如果多个映射行引用相同的文件,则会覆盖先前的映射。以连字符( - )开头的映射专门排除与该映射匹配的任何文件。在客户端视图中,以加号(+)开头的映射覆盖以前的映射。 (叠加映射不适用于分支视图或标签视图。)

所以映射如下:

//depot/adir/... //cws/build/AA/adir/...
//depot/adir/... //cws/build/BB/adir/...

仅激活第二行(赢得冲突)。

要做你想做的事,你需要使用两个不同的客户端(工作区),每个客户端都有一行示例。

您可以查看叠加层映射,也许可以解决您的问题:

覆盖映射用于将来自多个软件仓库目录的文件映射到工作区中的同一位置。

//depot/dir1/... //cws/build/...
+//depot/dir2/... //cws/build/...

答案 1 :(得分:2)

在Perforce中,您可以拥有多对一映射,但不能进行一对多映射。您无法将同一文件同步到2个位置。您需要提供要同步的明确列表。像这样:

//depot/adir/... //cws/build/AA/adir/...
+//depot/adir/exception.c //cws/build/BB/adir/exception.c