使用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);
答案 0 :(得分:1)
您必须更新服务器上的客户端 - setCurrentClient()不会这样做。
client.setRoot(p4Dir.getPath());
logger.debug("Setting p4sync dest root to: {}",p4Dir.getPath() );
client.update();
p4Server.setCurrentClient(client);