Perforceクライアント仕様のデフォルトを設定する方法
-
13-09-2020 - |
質問
私はクライアント仕様オプションとsubmit-optionsのデフォルトセットを変更する方法を発見しようとしています。
set P4CLIENT=my_new_client_1
p4 client
私に次の仕様default-specを与えます:
Client: my_new_client_1
...
Options: noallwrite noclobber nocompress unlocked nomodtime normdir
SubmitOptions: submitunchanged
...
今私のマシン上で私はいつも使いたい revertunchanged
, rmdir
たとえば、新しいクライアントを作成するたびに手動で設定する必要があるようです。
これを達成する方法はありますか?p4setは、環境変数で設定できるものにのみ影響するようです。
解決
デフォルトのクライアント仕様テンプレートを変更することはできません(Perforceシステム管理者でない限り)が、独自のテンプレートを設定して使用することはできます。まず、必要な値を持つクライアント仕様を持つダミークライアントを作成します:
Client: my_template_client
...
Options: noallwrite noclobber nocompress unlocked nomodtime rmdir
SubmitOptions: revertunchanged
...
次に、新しいクライアントを作成するときにダミークライアントをテンプレートとして使用するように指定するだけです:
p4 client -t my_template_client my_new_client_1
他のヒント
ここでの最初の応答は正しくありませんでした:
トリガーを使用して、Perforceでデフォルトのclientspecを作成できます。
基本的には、サーバー上で実行されるスクリプトを作成し、誰かがフォームクライアントでフォームアウトを行うたびに実行します。このスクリプトは、clientspecが既に存在するかどうかを確認し、そうでない場合は(新しいclientspecの場合)賢明な"デフォルト"を置き換える必要があります。
これは正常に動作し、P4SysAdminガイドにもあります(あなたが探している正確な例があります!)しかし、トリガーはクライアントではなくサーバー上で実行されるため、デバッグが少し難しい場合があります。
マニュアル:http://www.perforce.com/perforce/r10.1/manuals/p4sag/06_scripting.html
具体的な事例:http://www.perforce.com/perforce/r10.1/manuals/p4sag/06_scripting.html#1057213
Perforce Server Deployment Package(SDP)は、Perforce Helixコアサーバーを操作するためのベストプラクティスを含むリファレンス実装で、まさにこの目的のためのサンプルトリガが含まれてい見る:
- SetWsOptions.py - https://swarm.workshop.perforce.com/projects/perforce-software-sdp/files/main/Server/Unix/p4/common/bin/triggers/SetWsOptions.py
- SetWsOptionsAndView.py - https://swarm.workshop.perforce.com/projects/perforce-software-sdp/files/main/Server/Unix/p4/common/bin/triggers/SetWsOptionsAndView.py
を使用して、 p4 client -t <template_client>
これは便利で、通常のユーザーができることであり、P4V(graphical user interface)と同等のものも持っています。Perforceスーパーユーザーのみがトリガーを混乱させることができます。
スーパーユーザーが知っておくべきもう1つのトリックがあります:ユーザーが指定しない場合、デフォルトとして使用されるクライアント仕様を指定することができます -t <template_client>
.それは設定可能を設定することによって行うことができます テンプレート。クライアント.見る: https://www.perforce.com/manuals/cmdref/Content/CmdRef/configurables.configurables.html#template.client
もう一つの提案:デフォルトを次のように変更することをお勧めします submitunchanged
に leaveunchanged
よりもむしろ revertunchanged
(上記のサンプルトリガーのように)。を使用して leaveunchanged
それでもファイルをチェックアウトしたい場合は、以下を使用する方が良いでしょう leaveunchanged
よりもむしろ revertunchanged
ファイルを再度チェックアウトするためにファイルに移動する必要がなくなります。それは小さなことですが、leaveunchangedと一緒に行くのが最適です。変更されていないファイルを元に戻したい場合は、再度チェックアウトするよりも元に戻す方が少し簡単です。