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

时间:2012-02-08 11:42:10

标签: shell command-line perforce

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

p4 label <label-name>

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

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

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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:7)

你会沿着这些方向做点什么:

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

答案 1 :(得分:0)

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

以下bash代码导出标签NAME_OF_CURRENT_LABEL的标签定义,创建MY_NEW_LABEL的新标签定义,然后将描述设置为MY_NEW_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