3

我最近将一个 VSS 存储库导入 Perforce。这包括数百个标签,使用 VSS(现在使用 Perforce)的开发人员依赖这些标签。我不小心删除了它们,不得不再次导入。为了防止将来发生这种意外删除,我想锁定所有标签,但是通过 P4V 这样做会很耗时。我想写一个脚本来为我做这件事。

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

4

2 回答 2

3

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

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

把它们放在一起,你会得到一个看起来像这样的命令。

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

于 2012-12-10T18:32:23.563 回答
2

相关的 Perforce 文档在这里

要将标签规范转储到标准输出:

p4 -o *labelname*

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

p4 -i *labelname*

在这两者之间,您需要处理文本以包含“选项:锁定”,可能通过将标准输出重定向到文本文件,例如(“p4 -o labelname > labelspect.txt”),以您选择的方式处理文本文件,然后将文件读入标准('p4 -i labelname < labelspect.txt')

于 2012-12-09T19:41:13.220 回答