通过脚本编辑 Perforce 标签的描述

发布于 2025-01-04 03:38:34 字数 488 浏览 0 评论 0原文

我想使用可以自动调用的脚本修改现有的 Perforce 标签。目前我知道如何使用文本编辑器选项来执行此操作:

p4 label <label-name>

这会在我的默认文本编辑器中打开一个临时文件,然后我可以输入描述,保存文件并关闭 - 成功更新标签。

但是,我希望能够使用脚本自动执行此操作。我将拥有可用于形成我的描述的变量。

我可以使用 shell 脚本或 bat 脚本(在 Windows 上,但有 Cygwin)。

有关标签的 Perforce 命令行文档可以在此处找到,但这对我没有帮助。

有什么想法吗?

I want to modify an existing Perforce label using a script that I can invoke automatically. Currently I know how to do it using the text editor option:

p4 label <label-name>

This opens up a temporary file in my default text editor, I can then enter a description, save the file and close - updates the label successfully.

However, I want to be able to do this automatically using a script. I will have variables that can be used to form my description.

I can use either a shell script or a bat script (on Windows but have Cygwin).

Perforce command line documentation on labels can be found here, but it's not helping me.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

审判长 2025-01-11 03:38:34

你会按照这些思路做一些事情:

p4 label -o  > label.txt
sed -i 's/old/new/g' label.txt  # or any other automated method to do the modification
p4 label -i < label.txt

You would do something along those lines:

p4 label -o  > label.txt
sed -i 's/old/new/g' label.txt  # or any other automated method to do the modification
p4 label -i < label.txt
[旋木] 2025-01-11 03:38:34

sed 可用于(轻松)替换单行上的文本,但 perl 的语法在处理多行描述字段时更容易。

以下 bash 代码导出标签 NAME_OF_CURRENT_LABEL 的标签定义,创建 MY_NEW_LABEL 的新标签定义,然后将描述设置为 MY_NEW_DESCRIPTION。请注意,它假设描述文本存在,并且位于上面的“Description:”行下方的一行上。要仅更新描述,请删除 sed 行。

p4 label -o NAME_OF_CURRENT_LABEL          |          # Output label spec for NAME_OF_CURRENT_LABEL     \ 
    sed 's/^Label:.*/Label: MY_NEW_LABEL/' |          # Update label name to MY_NEW_LABEL          \
    perl -pe "$/='',s/^Description:\n(.*)$/Description:\n\tMY_NEW_DESCRIPTION\n/s"  |    # Update one-line description to MY_NEW_DESCRIPTION        \
    p4 label -i                                       # Create new label with output from pipe

sed can be used to (easily) replace text on a single line, but perl's syntax is easier when dealing with the multi-line Description field.

The following bash code exports the label definition for label NAME_OF_CURRENT_LABEL, creates a new label definition of MY_NEW_LABEL and then sets the description to MY_NEW_DESCRIPTION. Note that that it assumes that the description text exists, and is on a single line, below the "Description:" line above. To just update the description, remove the sed line.

p4 label -o NAME_OF_CURRENT_LABEL          |          # Output label spec for NAME_OF_CURRENT_LABEL     \ 
    sed 's/^Label:.*/Label: MY_NEW_LABEL/' |          # Update label name to MY_NEW_LABEL          \
    perl -pe "$/='',s/^Description:\n(.*)$/Description:\n\tMY_NEW_DESCRIPTION\n/s"  |    # Update one-line description to MY_NEW_DESCRIPTION        \
    p4 label -i                                       # Create new label with output from pipe
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文