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);