通过脚本编辑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