提出時に空白を自動的に削除するためにperforceトリガーを書くことができますか?好ましくはPythonで?どのように見えるだろうか?または、ファイルが送信されているときにファイルを変更できませんか?EOL空白を自動的に削除するためのトリガー?
答えて
変更されたファイルコンテンツをサーバーに戻すことができないため、これはできません。 p4 print
でファイルコンテンツを表示できるのはtrigger typesの2つだけです。change-content
とchange-commit
です。後者の場合、ファイルはすでにサーバー上に提出されており、前者の場合は、(未送信の)ファイルコンテンツを見ることができますが、変更してサーバーに戻す方法はありません。
可能なトリガーは、EOL空白を含むファイルを拒否して、送信者がファイルを自分で修正できるようにすることだけです。ここではファイルのタブをチェック同様のものの抜粋があり、トリガにドキュメンタリーを読んで、例のためのPERFORCEサイトをご覧ください:
def fail(sComment):
print sComment
sys.exit(1)
return
sCmd = "p4 -G files //sw/[email protected]=%s" % sChangeNr
stream = os.popen(sCmd, 'rb')
dictResult = []
try:
while 1:
dictResult.append(marshal.load(stream))
except EOFError:
pass
stream.close()
failures = []
# check all files for tabs
for element in dictResult:
depotFile = element['depotFile']
sCmd = "p4 print -q %[email protected]=%s" % (depotFile,sChangeNr)
content = os.popen(sCmd, 'rb').read()
if content.find('\t') != -1:
failures.append(depotFile)
if len(failures) != 0:
error = "Files contain tabulators (instead of spaces):\n"
for i in failures:
error = error + str(i) + "\n"
fail(error)
これは私が疑っていたものです。その場合、私がやることは、クライアントにpre-presubmitテストをローカルで実行するp4ラッパーを作成することです。これは、その1つでもかまいません。 –
@jhwistこれは古い質問ですが、私は上記のスクリプトで混乱しています。常に1を返さないので、常に送信に失敗します(つまり、p4サーバーにファイルを送信することは不可能です)。また、os、sysをインポートする必要はありませんか?また、sChangeNrはどこで定義されますか? – Lorenz03Tx
@ Lorenz03Tx私は簡潔にするために定型文をたくさん残しました。 – jhwist
- 1. Djangoは自動的に空白の後に文字を削除します
- 2. Resharperは実行時に空白を自動的に削除します
- 3. 空白を削除する
- 4. テキストファイルから空白を削除するためのJythonコード
- 5. フッターの下の空白の空白を削除するには?
- 6. 空白の削除
- 7. Javascript - 動的グリッドの空白の削除のオプション
- 8. オラクル - 空白を削除するには?
- 9. 私の空白のサービスバスキューが自動的に削除されているのを見ています
- 10. グリッド付きPython Tkinterウィジェット間の自動空白を削除する
- 11. qtranslateを削除した後の空白
- 12. 開始時に空白または空白行を削除する
- 13. テーブルの空白を削除する
- 14. div間の空白を削除する
- 15. Rの空白を削除する
- 16. Axes3d(matplotlib)の空白を削除する
- 17. データテーブルの空白行を削除する
- 18. 行末の空白を削除する
- 19. C#空白セルを削除
- 20. 空白とコロンの削除
- 21. C - 空白の削除
- 22. EditTextに空白を自動的に追加する方法
- 23. テキストファイル内の行を削除した後に空白を削除するVB6
- 24. Vi:自動的に空白を挿入する方法
- 25. 数値の範囲内の空白を効率的に削除
- 26. XPathで空白を削除するdom4j
- 27. CSVから空白を削除する
- 28. ハイパーリンクから空白を削除する
- 29. as3空白を削除する
- 30. 空白を削除するXpath関数
私はPERFORCEのについて多くを知らないが、[ドキュメント] (http://www.perforce.com/perforce/r10.2/manuals/cmdref/triggers.html)可能であることを示します。 Python関数 'rstrip()' [[docs](http://docs.python.org/library/stdtypes.html#str.rstrip)]を呼び出すスクリプトを記述してから、それを呼び出す必要があります'change-content'トリガータイプです。 – brc
私はこのようなことを自動的に行うことに注意したいと思います。誰かが意図したところから空白を取り除きたくないでしょう。 (間違いなく、あなたが空白でプログラミングしている場合や、バイナリファイルを熱心に取り除いている場合を除き、奇妙なケースです)。このルートに行くと警告を表示し、変更の差分を表示するので、検証できますそれは良いです。 – Thanatos