让每个人都在 Perforce 中为一个项目创建同一个客户端似乎毫无意义,那么,有没有人可以在 Perforce 中创建一个“公共”客户端,每个人都可以从中同步?
编辑:我的意思是像你在 Perforce 中根据客户规范创建的客户
让每个人都在 Perforce 中为一个项目创建同一个客户端似乎毫无意义,那么,有没有人可以在 Perforce 中创建一个“公共”客户端,每个人都可以从中同步?
编辑:我的意思是像你在 Perforce 中根据客户规范创建的客户
我相信,如果您使用术语“工作区”而不是“客户端”,则更容易理解架构。Perforce 应用程序在本地磁盘的指定区域(称为工作区)中管理文件。顾名思义,您的工作区是您进行大部分工作的地方。即使在同一个工作站上,您也可以拥有多个客户端工作区。
由于两个不同的用户通常在不同的工作站或笔记本电脑上独立工作,因此他们每个人都需要自己的代码副本,并且每个人都需要自己的工作空间,以便他们可以控制何时与服务器中的更改同步。
如果你和我试图在一个工作站上共享一个代码副本,我们很快就会发现自己对谁的更改是谁的更改感到困惑;我们更容易独立工作,并将我们的更改合并为单独的提交到服务器。
如果您的问题是客户端定义很复杂,视图定义非常复杂,那么您可能希望研究“模板客户端”功能:使用您喜欢的视图和选项设置一个主客户端,然后您的其他用户可以使用“client -t”创建从模板客户端复制视图和选项详细信息的工作区定义。
可以这样做,但不建议这样做。由于 Perforce 会在服务器端记录同步到每个客户端的文件,因此您可能会遇到以下情况:
Jim 可以使用“p4 sync -f”来解决这个问题,这将强制将所有最新文件同步到他的工作区,但这是围绕 Perforce 设计使用方式的一个混搭。
Perforce 客户端在服务器上占用的资源方面非常轻量级,因此最好不要共享客户端。
我试图在在线 Perforce 文档中找到关于为什么不应共享客户端的更完整解释,但这并不是很有帮助。如果您碰巧有一本,那么“Practical Perforce”一书有我见过的最好的概述。
使用 Bryan 提到的模板工作区,或考虑使用流。在流框架中,您只需定义一次流视图(组合),就会自动生成工作区。
p4 sync -f 太慢了。因为首先它将删除您本地的所有文件,然后从中央仓库重新加载文件!有一个棘手的方法。当想要同步 -f 时,它是创建一个 haslist 并进行同步。细节是1,获取clientspec,2,将其保存到本地。3、删除客户端 4、使用保存的clientspec创建一个相同的客户端。因此我们节省了删除本地文件的时间。