我在网上看到过使用Perforce的p4javaapi将客户端工作区与最新文件同步的例子。例如:
public List<IFileSpec> sync(List<IFileSpec> fileSpecs,
boolean forceUpdate,
boolean noUpdate,
boolean clientBypass,
boolean serverBypass)
但是,我如何指定它与特定标签同步?例如,命令行中的等效项:
p4 sync @labelname
可能是通过使用SyncOptions的替代方法吗?
public List<IFileSpec> sync(List<IFileSpec> fileSpecs,
SyncOptions syncOpts)
我看了一下SyncOptions,但没有发现任何方法可以在其中指定标签。
FileSpec是IFileSpec的一个实现,它有一个label
字段:
protected String label
以及以下方法:
void setLabel(String label)
Set the label associated with this file spec.
取自以下链接:
https://www.perforce.com/perforce/r15.1/manuals/p4java-javadoc/com/perforce/p4java/impl/generic/core/file/FileSpec.html
在上面建议查看fileSpecs参数后,我发现这个方法对我有效:
List<IFileSpec> fileSpecsSet =
FileSpecBuilder.makeFileSpecList("//path/to/project/...@labelname");
client.sync(fileSpecsSet, true, false, false, false);