テクニカルノート006  


スクリプトやバッチファイルからファイルをサブミットする方法
サブミット時にエディタを起動しないようにする方法

次のように実行することによって、サブミット時にエディタを起動しないようにすることができます。 submitに指定する -i オプションは、データを標準入力から読み込むことを指定します。:
p4 submit -i


例えばこのコマンドを実行するには、inputfileは正しく完成されたサブミット・フォームでなければなりません。:
p4 submit -i < inputfile


どのような内容になるか、例を示します。:
Change:	new
Description:
	Modify web pages.
Files:
	//depot/www/index.html
	//depot/www/products.html


フィールド名で始まっていない行は、空白文字またはタブ文字で始まらなければなりません。(フィールド名というのは、上の例で言うと "Change:"、"Description:"、"Files:" です。)

p4 submitコマンド用に妥当な入力テンプレートを作成するには、次のように実行するのが簡単です。
p4 change -o


スクリプトを作成し、事前に用意したデータでこの出力を変更するようにしてください。 p4 changeは、現在のクライアント・ワークスペースで作業状態になっているファイルをリストしますので、通常はコメント(Description) を書き換えるだけです。例えばシェル・スクリプト(UNIX/Linux)では、次のように書くことができます。
p4 change -o |
sed "s//Nightly build results/" |
p4 submit -i


注:Windows/DOSにおいては、これと同様のことができるUNIXライクなユーティリティが、別に(オープンソースおよび商用ツールとして)存在します。

別の方法として、番号付きチェンジリストを作成し、チェンジリスト番号をキャプチャし、その番号付きチェンジリストをサブミットするという方法があります。 これを行うためには、スクリプト内で次のように実行します。
p4 change -i < inputfile
p4 submit -c changenum


ここで changenum は、それ以前に実行したコマンドで生成したチェンジリスト番号です。さらに、 inputfile は正しいサブミット・フォームを含んでおり、スクリプトが新しいチェンジリスト番号をキャプチャし、保持すると仮定します。
戻る