如何从命令行锁定Perforce标签?

时间:2012-12-09 19:27:10

标签: command-line locking perforce labels

我最近将一个VSS存储库导入Perforce。这包括数百个标签,使用VSS(现在使用Perforce)的开发人员依赖这些标签。我不小心删除了它们,不得不再次进行导入。为了防止将来意外删除,我想锁定所有标签,但通过P4V进行此操作将需要永远。我想写一个脚本来为我做。

我可以使用p4 labels命令将所有标签放入文本文件中,并且通过一些文本编辑器宏处理,我可以构建一个脚本来锁定它们。我只需要知道执行此操作的命令。

2 个答案:

答案 0 :(得分:3)

这可以通过自动化编辑标签规范的过程来完成。过程如下:

  • 使用-o开关将标签规格发送到标准输出。
  • 输出到可以操作它的实用程序并将标签的“选项”设置为“已锁定”。在这种情况下,Unix实用程序sed可以完成工作。 (我在Windows上,所以我使用this port。其他人可以在this answer中找到。)
  • 使用-i开关将此更新的规范传回标签命令。

将所有内容放在一起,就会得到一个看起来像这样的命令。

p4 label -o <label name> | sed 's/^Options:.*/Options: locked/' | p4 label -i

答案 1 :(得分:2)

相关的Perforce文档为here

将标签规格转储到标准输出:

p4 -o *labelname*

从标准输入读取标签规范:

p4 -i *labelname*

之间你需要处理文本以包括'options:locked',可能是通过将标准输出重定向到文本文件,例如('p4 -o labelname &gt; labelspect.txt'),按照您选择的方式处理文本文件,然后将文件读入标准格式('p4 -i labelname &lt; labelspect.txt')