是否可以将库的相同部分映射到两个(或更多)不同的位置?
//depot/branches/foo/... //my_client/foo/...
//depot/branches/foo/... //my_client/foo1/...
我想要的原因是能够同时对相同的文件进行无关且不重叠的更改。
(如果它们是不同的文件,我当然可以在单个映射中使用不同的更改列表。)
答案 0 :(得分:5)
给定的客户端视图在给定时间只能拥有一个给定的depot文件。也就是说,这里有三种可能的方法可以同时对同一个文件进行两次不同的更改:
1)您的两个更改是否需要同时存在于客户端计算机上?如果没有,当您想暂停第一次更改时,“搁置”它,还原您的本地文件,然后进行第二次更改。您可以拥有与单个客户端关联的文件(在不同的更改列表中)的任意数量的“搁置”版本,但工作区中实际只存在“打开”文件。
2)你实际上是否需要在你的机器上同时使用这两个文件,但不一定需要同时对它们运行Perforce命令(比如它们之间的合并更改,相互之间的差异,将它们作为单个更改提交等) ?如果是这样,拥有多个客户端规格是一个不错的选择。确保它们具有不同的根(因此具有不同的本地文件系统位置),并使用P4CONFIG文件,以便您自动使用与您的工作目录匹配的客户端规范。
3)您是否需要这两个文件并且希望能够同时对它们进行不同的更改集,对两个变体进行区分,并在它们之间合并更改?如果是这样,你想建立一个新的分支。做:
p4 integ //depot/branches/foo/... //depot/branches/foo1/...
p4 submit
现在,软件仓库和工作区中有两组文件;您可以对它们进行独立更改,然后根据需要使用“p4 integ”将它们之间的更改(在任一方向上)合并。
答案 1 :(得分:0)
布莱恩的建议对于你想要完成的事情是一个很好的选择。
就客户端工作区中的覆盖映射而言,Perforce允许您将多个depot映射到此处记录的相同工作区位置: