チェンジリストに添付されているすべてのPerforceジョブをすばやく簡単に削除するにはどうすればよいですか?
-
03-07-2019 - |
質問
チェンジリストにアタッチされているため、コマンドラインから削除できない約600個のジョブのリストがあります。それらをデタッチする方法を知っている唯一の方法はGUIを使用することですが、それは永遠にかかります。誰かがより良い(つまり、より速い)方法を知っていますか?
解決
" fix&quot ;;および「修正」コマンド。手順は次のとおりです。
" fixes"の出力をダンプしますファイルへのコマンド
p4 fixes > tmp.txt
ファイルには次のような行が含まれます。
job005519 fixed by change 3177 on 2007/11/06 by raven@raven1 (closed)
job005552 fixed by change 3320 on 2007/12/11 by raven@raven1 (closed)
job005552 fixed by change 3318 on 2007/12/10 by raven@raven1 (closed)
...
信頼できるテキストエディターを使用して(ここではメモ帳のことではありません)、変更リストからジョブを切り離すために行をPerforceコマンドに変換するマクロを作成します(p4 fix -d):
p4 fix -d -c 3177 job005519
p4 fix -d -c 3320 job005552
p4 fix -d -c 3318 job005552
...
ファイルを.batまたは.cmdファイルとして保存して実行し、bada bing、bada boom ...すべてのジョブがチェンジリストから切り離され、GUIを使用して、または同様の手順で削除できます。先ほど説明したものと「ジョブ」の出力コマンド:
p4 jobs > tmp.txt
他のヒント
Perforceの-x引数は非常に便利です。これは、名前付きファイル[または]標準入力から引数を1行に1つずつ読み取るようにp4に指示します。また、「job -d」は信じています。ジョブが変更に関連付けられている場合でも、ジョブを削除できます。そのため、チェンジリストに関連付けられているすべてのジョブを削除するには、次のような(未テスト)を実行します。
p4 fixes -c <changenum> | p4 -x - job -d
次のDOSスクリプトを使用して、p4修正からの出力を解析し、修正とジョブを削除できます。
set users_filename =%1
for / F&quot; tokens = 1,5 delims =&quot; (%users_filename%)in%(
p4 fix -d -c %% j %% i
p4 job -d %% i
)