2010-11-01 94 views
1

我想同时将目录映射到不同的本地文件夹(例如AA/adirBB/adir)。以下是规格,但效果不佳。如何编写perforce客户端规范?

有什么问题吗?

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

你能解释一下你想做这个的原因吗,可能有更好的办法吗? – 2010-11-07 09:34:49

回答

7

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

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

因此喜欢的映射:

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

仅激活第二行(在冲突中取胜)。

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

你可以看一下覆盖映射,也许解决您的问题:

的叠加映射用于从多个库目录映射文件到工作区中的同一个地方。

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

谢谢,我试过之前我发布这个问题,它也工作。 – Biwier 2010-11-01 18:46:51

+0

就像你说的那样覆盖映射用于将来自多个库目录的文件映射到工作区中的相同位置......但我的要求是将一个库目录映射到多个文件夹中。这是完全不同的.. :) – Biwier 2010-11-01 18:47:51

+0

对不起的错字......实际上,我试过这种方式之前,我发布这个问题,它也没有工作也 – Biwier 2010-11-01 19:02:32

2

Perforce中,你可以有很多一对一的映射,但你不能有一个一对多的映射。您无法将同一个文件同步到2个位置。你需要提供你想要同步的清单。就像这样:

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