如何快速轻松地删除附加到更改列表的所有Perforce作业?

时间:2008-10-21 15:47:14

标签: perforce

我有一个大约600个作业的列表,我无法从命令行中删除它们,因为它们已附加到更改列表。我知道如何分离它们的唯一方法是通过GUI,但这将永远。有没有人知道更好(即更快)的方式?

3 个答案:

答案 0 :(得分:2)

我使用“修复”和“修复”命令想出来了。这是程序:

将“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或类似于我刚刚概述的一个和“jobs”命令的输出:

p4 jobs > tmp.txt

答案 1 :(得分:0)

Perforce的-x参数非常方便;它“指示p4从命名文件[或]标准输入中读取每行一个参数”。此外,我相信“job -d”允许删除作业,即使它们与更改相关联。因此,要删除与更改列表关联的所有作业,请执行以下操作(未经测试):

p4 fixes -c <changenum> | p4 -x - job -d

答案 2 :(得分:0)

您可以使用以下DOS脚本解析p4修复程序的输出,然后删除修复程序和作业:

设置users_filename =%1

for / F“tokens = 1,5 delims =”%% i in(%users_filename%)do(

p4 fix -d -c %% j %% i

p4 job -d %% i