p4java客户端setRoot无法正常工作

时间:2017-03-15 18:36:12

标签: perforce perforce-client-spec p4java

使用p4java同步各种机器上的文件,因此我使用IClient.setRoot()相应地更改根目录。但是IClient.setRoot()实际上并没有改变客户端对象中的根。我在setRoot()调用之后立即调试了调试器

这是连接到服务器后的代码。

客户端是IClient,p4Server是IServer。

prop函数只是拉取工作空间和根目录的属性条目

我缺少什么使setRoot()工作。谢谢!

client = p4Server.getClient(prop.getString("perforce.workspace"));
if (client == null) {
    logger.error("Failed to fetch workspace: {}", prop.getString("perforce.workspace"));
} else {
    File p4Dir = new File(prop.getPath("perforce.scripts.dest"));
    if (!p4Dir.exists()) {
        p4Dir.mkdirs();
    }

    client.setRoot(p4Dir.getPath());
    logger.debug("Setting p4sync dest root to: {}",p4Dir.getPath() );
    p4Server.setCurrentClient(client);

1 个答案:

答案 0 :(得分:1)

您必须更新服务器上的客户端 - setCurrentClient()不会这样做。

client.setRoot(p4Dir.getPath());
logger.debug("Setting p4sync dest root to: {}",p4Dir.getPath() );
client.update();
p4Server.setCurrentClient(client);