ページ ツリー

 コンテンツ

質問

現在、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.pyの設定

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にチケット情報がない場合、トリガ実行時に認証エラーとなるため、事前にチケット作成(認証)が必要です。