0

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

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

client 是 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);
4

1 回答 1

1

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

client.setRoot(p4Dir.getPath());
logger.debug("Setting p4sync dest root to: {}",p4Dir.getPath() );
client.update();
p4Server.setCurrentClient(client);
于 2017-05-01T22:19:18.723 回答