从命令行

时间:2015-04-22 13:50:05

标签: cmd perforce

使用perforce GUI,可以将待处理的更改列表中的文件卸载到新的更改列表中。我在日志中注意到GUI程序通过首先创建一个新的空更改列表然后取消搁置到新的更改列表来实现此目的。

如何从批处理脚本执行此操作?我有一份搁置的变更清单清单,我想将其中的每一个取消搁置到新的待定变更清单中。

3 个答案:

答案 0 :(得分:2)

这是一个bash函数版本:

# Takes shelved changeset # as single argument and unshelves to a new changeset
p4unshelve() {
    p4 change -i <<< "Change:new"$'\n'"Description:Unshelve $1" | awk '{ print $2 }' | p4 unshelve -s $1 -c $(cat)
}

用法

p4unshelve 43245

这不会在.bat文件中按原样运行,但如果您使用某种形式的Bash,则可以使用它,并且可能会被修改为它的.bat对应文件。

答案 1 :(得分:0)

您可以使用changes命令和-s shelved选项来检索所有搁置更改的列表。

如果为每个搁置的更改创建新的更改列表,unshelve命令的-c <changelist>选项允许您指定目标更改列表。

答案 2 :(得分:-1)

它并不漂亮但是如果你有一个搁置的变更清单编号,你想要取消搁置到一个新的变更清单中,你可以运行以下内容:

 (echo Change:  new && echo Description:    test) | p4 change -i | for /f "tokens=2" %i IN ('more') DO p4 unshelve -s 99999 -c %i 

如果您知道更清洁的解决方案,请发布。