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

问题描述:

我想使用我可以自动调用的脚本修改现有的Perforce标签。目前,我知道如何使用文本编辑器选项来做到这一点:通过脚本编辑Perforce标签的描述

p4 label <label-name> 

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

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

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

标签上的Perforce命令行文档可以找到here,但它没有帮助我。

任何想法?

你会做类似的规定:与多行说明字段打交道时

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 

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