コンテンツ
質問
現在、HelixサーバがCentOS、クライアントがWindowsという環境です。
大文字/小文字の取り扱いを「区別しない」に統一したいのですが、設定方法はありますか?
また、懸念点があれば教えてください。
回答
以下の二通りの方法があります。
方法1:p4migrateを使用する
ファイルの登録状況により取り扱いを変更する場合に、データロスが発生することが懸念されるため、
メーカサポート対象外です。
方法2:トリガースクリプトを使用する
サブミットを行う際にCase違いのファイル・ディレクトリがあるチェックを行う、トリガースクリプト
を使用する
方法2の手順を以下で説明します。
手順
1.Python・P4Pythonインストール
使用するスクリプトはPythonで作成されているため、Perforceサーバがインストールされているマシン上へ
Python、またはP4Pythonがインストールされていない場合、インストールが必要です。
2.スクリプトの配置
ファイルをダウンロードし、任意の場所に配置します。
この手順では、/opt/perforce/配下に配置しています。
このサンプルファイルは、Perforce Software社のパブリックディポで公開されていたPython2用の
トリガースクリプトにたいして弊社で編集を加え、Python3環境にて動作するスクリプトです。
- 編集内容:150行目を"return aString.lower()"へ変更
※ Python3環境をRedHat、Cent OSへyumコマンドを使用してインストールを行う場合、デフォルト
で提供されるyumリポジトリを使用してインストールすることができない可能性があります。
Python3用のスクリプト設定前に、ご注意ください。
P4Triggers.py
CheckCaseTrigger.py
※ 2系には"CheckCaseTrigger.py"を使用します。
"#!/usr/bin/python3.4"と記述されていますが、Python2系での動作も確認済です
※ 3系には、"CheckCaseTrigger3.py"を使用します。
3.トリガスクリプトの設定
CheckCaseTrigger change-submit //... "python /opt/perforce/CheckCaseTrigger.py %changelist% port=**** user=super"
※ port=****:トリガを実行するP4Dサーバのポート
※ user=super:トリガスクリプトをサーバ側で実行するスーパユーザ
注意1
サーバマシン上にPerforce環境変数P4PORTとP4USERが設定されている場合、トリガスクリプトへの引数設定は不要です。
環境変数設定されていない場合、トリガテーブルに対して、userとportの設定が必要です。
注意2
チケット認証を使用している場合、ユーザのチケット情報には有効期限があります。非人格ユーザのチケット無期限化の対応が行われていない場合、チケット期間が無期限のグループを作成し、上記で設定したトリガスクリプト用ユーザを対象グループへ追加してください。
トリガは、P4Dを実行しているOSユーザのホームディレクトリにある.p4ticketsからチケット情報を参照します。この.p4ticketsにチケット情報がない場合、トリガ実行時に認証エラーとなるため、事前にチケット作成(認証)が必要です。