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 に答える