我想使用可以自动调用的脚本修改现有的Perforce标签。目前我知道如何使用文本编辑器选项:
p4 label <label-name>
这会在我的默认文本编辑器中打开一个临时文件,然后我可以输入描述,保存文件并关闭 - 成功更新标签。
但是,我希望能够使用脚本自动执行此操作。我将有可用于形成我的描述的变量。
我可以使用shell脚本或bat脚本(在Windows上但有Cygwin)。
标签上的Perforce命令行文档可以找到here,但它对我没有帮助。
有什么想法吗?
答案 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