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