将Perforce depot的相同部分映射到多个位置?

时间:2015-02-10 23:05:38

标签: perforce perforce-client-spec

是否可以将库的相同部分映射到两个(或更多)不同的位置?

//depot/branches/foo/... //my_client/foo/...
//depot/branches/foo/... //my_client/foo1/...

我想要的原因是能够同时对相同的文件进行无关且不重叠的更改。

(如果它们是不同的文件,我当然可以在单个映射中使用不同的更改列表。)

2 个答案:

答案 0 :(得分:5)

给定的客户端视图在给定时间只能拥有一个给定的depot文件。也就是说,这里有三种可能的方法可以同时对同一个文件进行两次不同的更改:

1)您的两个更改是否需要同时存在于客户端计算机上?如果没有,当您想暂停第一次更改时,“搁置”它,还原您的本地文件,然后进行第二次更改。您可以拥有与单个客户端关联的文件(在不同的更改列表中)的任意数量的“搁置”版本,但工作区中实际只存在“打开”文件。

2)你实际上是否需要在你的机器上同时使用这两个文件,但不一定需要同时对它们运行Perforce命令(比如它们之间的合并更改,相互之间的差异,将它们作为单个更改提交等) ?如果是这样,拥有多个客户端规格是一个不错的选择。确保它们具有不同的根(因此具有不同的本地文件系统位置),并使用P4CONFIG文件,以便您自动使用与您的工作目录匹配的客户端规范。

3)您是否需要这两个文件并且希望能够同时对它们进行不同的更改集,对两个变体进行区分,并在它们之间合并更改?如果是这样,你想建立一个新的分支。做:

p4 integ //depot/branches/foo/... //depot/branches/foo1/...
p4 submit

现在,软件仓库和工作区中有两组文件;您可以对它们进行独立更改,然后根据需要使用“p4 integ”将它们之间的更改(在任一方向上)合并。

答案 1 :(得分:0)

布莱恩的建议对于你想要完成的事情是一个很好的选择。

就客户端工作区中的覆盖映射而言,Perforce允许您将多个depot映射到此处记录的相同工作区位置:

http://www.perforce.com/perforce/doc.current/manuals/p4guide/chapter.configuration.html#configuration.refine_workspace.map_diff_depot_locations