你能在Pe​​rforce中分享客户规格吗?

时间:2013-01-06 23:12:10

标签: version-control perforce collaboration

让所有人为Perforce中的项目创建相同的客户端似乎毫无意义,那么,是否有人可以在Perforce中创建一个“公共”客户端,每个人都可以从中同步?

编辑:我的客户端就像您在客户端规范中使用Perforce创建的客户

4 个答案:

答案 0 :(得分:3)

我相信,如果您使用术语“工作区”而不是“客户端”,那么理解架构会更容易。 Perforce应用程序管理本地磁盘的指定区域中的文件,称为工作区。顾名思义,您的工作区就是您完成大部分工作的地方。即使在同一工作站上,您也可以拥有多个客户端工作区。

由于两个不同的用户通常独立工作,在不同的工作站或笔记本电脑上,他们每个人都需要自己的代码副本,他们每个人都需要自己的工作区,以便他们可以控制何时与服务器中的更改同步

如果您和我尝试在单个工作站上共享代码的单个副本,我们会发现自己很快就会对哪些更改属于谁而感到困惑;我们更容易独立工作,并将我们的更改作为单独的提交合并到服务器。

如果您的案例中的问题是客户端定义很复杂,视图定义非常复杂,那么您可能希望调查“模板客户端”功能:使用您喜欢的视图和选项设置单个主客户端,然后您的其他用户可以使用'client -t'创建工作区定义,从模板客户端复制视图和选项详细信息。

答案 1 :(得分:2)

可以这样做,但不可取。由于Perforce保留了同步到每个客户端的文件的服务器端记录,因此您可能遇到以下情况:

  1. 用户Fred使用共享客户端进行同步并获取一组新文件。
  2. 在提交任何更改之前,用户Jim使用共享客户端同步并且什么也得不到,因为Perforce服务器认为客户端已经拥有最新的文件集。
  3. Jim可以使用“p4 sync -f”解决这个问题,它会强制所有最新文件同步到他的工作区,但这是Perforce设计使用的方式。

    Perforce客户端在服务器上占用的资源非常轻量级,因此最好不要拥有共享客户端。

    我试图找到一个更完整的解释,说明为什么不应该在在线Perforce文档中共享客户端,但它不是很有帮助。如果你碰巧有副本,那本书"Practical Perforce"有我见过的最好的概述。

答案 2 :(得分:0)

使用Bryan提到的模板工作区,或考虑使用流。在流框架中,您可以定义一次流视图(组合),并自动生成工作空间。

答案 3 :(得分:0)

p4 sync -f太慢了。因为首先它将删除本地的所有文件,然后从中央软件仓库重新加载文件!有一个棘手的方法。当想要同步-f时,它是创建一个havelist并进行同步。详细信息为1,获取clientspec,2,将其保存到本地。 3,删除客户端4,使用保存的clientspec创建相同的客户端。因此,我们节省了删除本地文件的时间。