0

私は P4PHP API を使用して、ユーザーがクライアント仕様を大量に作成/更新できるようにする GUI を構築しています。これは、クライアントのロックが解除されている限りうまく機能しますが、ロックされたクライアントの場合、API は -f フラグを取得しません (少なくとも、そうではないと思います)。ロックされたクライアントを保存しようとすると、次のエラー メッセージが表示されます。Python p4 API を使用してほぼ同じことを行う Python スクリプトがあり、クライアントを保存するために同じ行を使用しますが、-f フラグを取得するため、これは奇妙です。ここで何をすべきかわかりません。

[エラー]: 'owner1' が所有するクライアント 'php_test_client' がロックされています。-f を使用して更新を強制します。

これが私のphpコードです:

$p4 = new P4();   //instantiate p4 object
$p4->port = 'perforce:1666';   //set p4 port
$p4->user = $pUser;  //set p4 user
try{
    $p4->connect();
    $p4->run_login($pPass);   //login with provided p4 pass
    $client = $p4->fetch_client($cNameSub);
    echo "client fetched: " . $cNameSub ."\n";
    $client['Client']= $cNameSub;
    $client['Description']= $cDescrSub;
    $client['Owner']= $cOwnerSub;
    $client['Host']= $cHostSub;
    $client['Root']= $cRootSub;
    $client['View']= $cViewArraySub;
    $client['Options']= $cOptSub;

    $p4->save_client($client,"-f");
    $p4->disconnect();

    echo "client" . $cNameSub . " created successfully \n\n";
} catch (P4_Exception $e) {
     // output errors
    echo $e->getMessage() . "\n";
     foreach ($p4->errors as $error) {
          echo "Error: $error\n";
     }
     //TODO: log errors in db
}

次の行でクライアントを保存しようとしましたが、どちらも機能しません。

//try1
$p4->input = $client;
$p4->run("client", "-f");
//try2
$p4->run("client", "-f", $client);
//try3
$p4->input = $client;
$p4->run_client("-f");
4

1 に答える 1

1

-i フラグも必要です。

これは機能します:

$p4->input = $client;
$p4->run_client("-i","-f");
于 2011-08-18T22:24:48.330 に答える