Perforce 此命令将执行什么操作:p4 sync//depot/proj1/

Perforce 此命令将执行什么操作:p4 sync//depot/proj1/,perforce,p4v,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命令时,它将所有文件从Build复制到C:\…\Proj\

我是Perforce的新手,希望创建一个自动工具,自己获取最新版本。我有这样一个映射:

P4CLIENT: Proj_name 
Worspace root direcctory: C:\...\Proj_name  
Stream: Build
现在,我希望它能够从以下位置获取所有文件的最新版本:

Build\fold1\fold2   to    C:\...\Proj_name\fold1\fold2
当我刚刚运行p4 sync命令时,它将所有文件从Build复制到C:\…\Proj\u name

因此,请说明如何指定从何处获取最新版本的文件夹路径。命令p4是否会同步//depot/proj1/。。。为我工作以及在我的情况下它如何变化?

您可以使用客户端规范的“视图:部分”来描述您希望使用的整个存储库的哪些部分,以及这些文件应该放在工作站的文件系统中的何处

在您的特定情况下,要指定文件夹路径以及这些文件的放置位置,您可以指定视图:如下所示:

View:
    //depot/Build/fold1/fold2/...  //Proj_name/fold1/fold2/...
您可能有相当复杂的视图映射;视图语法非常强大。要了解有关视图映射的更多信息,请键入p4帮助视图

更改客户端的视图:规范后,运行:

p4 sync
sync命令将注意到您已经更改了视图映射,它将在工作站上重新排列客户端根目录中的文件,以便按照新视图映射所述排列这些文件

如果不希望同步整个客户端,可以指定应同步的文件子集,方法是使用文件模式将该文件子集命名为sync命令的参数:

但是,这可能会让人非常困惑,我建议您首先避免使用这种高级用法,并坚持在没有文件参数的情况下执行p4同步,至少直到您对p4同步的使用方式更熟悉为止。首先,当您使用不同的文件参数同步不同的文件子集时,很容易使工作站的文件系统进入不可构建状态,方法是从一个变更列表中获取一半文件,从另一个变更列表中获取一半文件,这将导致您的代码无法编译,等等

因此,目前:

考虑您希望使用的库的哪些部分,以及您希望它们在工作站的文件系统上运行的位置。 运行p4 client并使用View:字段的模式匹配语法描述适当的View:行以指定这些文件 运行p4 sync,Perforce将按照指定将这些文件放在您的计算机上。
假设//depot/proj1/。。。映射到客户端中的某个位置,然后映射到p4 sync//depot/proj1/。。。将同步这些文件。不太清楚你在问什么。如果要更改这些文件的同步位置,请运行p4 client以更改depot到client的映射。@jamesdlin很简单:假设我已将a/b映射到c/d,但现在我想获取从a/b/e/f到c/d/e/f/的最新版本。如何从命令行实现这一点。如果当前目录位于Perforce客户端的根目录,则p4 sync c/d/。。。将同步c/d下的所有内容并提供c/d/e/f。或者您可以执行p4 sync//depot/a/b/…@jamesdlin是否有任何命令用于获取客户端名称和客户端根。正如我已经提到的,运行p4 Client。在第二步中,运行p4 Client并描述适当的视图我是否需要手动更改视图。没有任何命令可以执行此操作吗?请您告诉命令获取客户端根、客户端名称和客户端流。我在命令引用中找不到它们。
p4 sync //depot/Build/fold1/fold2/*.cpp