这个命令会做什么:p4 sync // depot / proj1 /

时间:2016-06-19 04:34:21

标签: perforce p4v

我是Perforce的新手,想要创建一个自动化工具来自行获取最新版本。我有这样的映射:

P4CLIENT: Proj_name 
Worspace root direcctory: C:\...\Proj_name  
Stream: Build

现在我想要的是它应该获得所有文件的最新版本:

Build\fold1\fold2   to    C:\...\Proj_name\fold1\fold2

当我刚刚运行p4 sync command时,它会复制Build to C:\...\Proj_name中的所有文件。

因此,请告诉您如何指定从哪里获取最新版本的文件夹路径。命令p4 sync //depot/proj1/...是否对我有效?它在我的情况下会如何变化?

1 个答案:

答案 0 :(得分:2)

您可以使用客户端规范的View:部分来描述您希望使用的整个存储库的哪些部分,以及这些文件应放在工作站的文件系统中的位置。

在您的特定情况下,要指定文件夹路径以及应放置这些文件的位置,您可以将View:指定为:

View:
    //depot/Build/fold1/fold2/...  //Proj_name/fold1/fold2/...

您可能有更复杂的视图映射;视图语法非常强大。要了解有关视图映射的详细信息,请键入p4 help views

更改客户端的View:规范后,请运行:

p4 sync

sync命令会注意到您已更改了视图映射,它将重新排列工作站上客户端根目录中的文件,以便按照新视图映射的说明进行排列

如果您不希望同步整个客户端,则可以通过使用文件命名该文件子集来指定应该同步的文件的子集pattern作为sync命令的参数:

p4 sync //depot/Build/fold1/fold2/*.cpp

然而,这可能会令人困惑,我建议您首先避免使用该高级用法,并坚持执行没有文件参数的p4 sync,至少在您对如何使用使用p4 sync。首先,当您使用不同的文件参数同步不同的文件子集时,通过从一个更改列表中获取一半的文件,可以很容易地将工作站的文件系统置于不可构建的状态和另一半,这将导致你有没有编译的代码等。

所以,现在:

  1. 考虑您希望使用的存储库的哪些部分,以及您希望它们在工作站的文件系统中的位置
  2. 运行p4 client并使用View:字段的模式匹配语法描述相应的View:行以指定这些文件
  3. 运行p4 sync,Perforce会按规定将这些文件放在您的计算机上。