如何从命令行

时间:2016-08-15 14:34:07

标签: windows command-line-interface perforce

我正在尝试使用命令p4 change -i从命令行创建一个空的更改列表,但似乎此命令什么都不做,我没有得到任何错误/成功消息,命令行只是不返回任何内容必须用ctrl + c杀死它。

我的p4客户端正常工作,我能够正确查看我的所有信息并正确执行所有其他操作,似乎只有创建新的待定更改列表才有问题。

任何人都遇到过同样的问题吗?

P.S。我已经检查了P4V方式来创建一个空的更改列表,它实际上使用p4 change -i命令没有任何问题,但如果我尝试使用cli中的相同命令,它将无声地失败。

2 个答案:

答案 0 :(得分:16)

如果您以交互方式使用命令行,则常规" p4更改"命令是要走的路:

p4 change

这会在编辑器中打开更改列表规范,以便您可以填写它,并在编辑器中保存文件并退出时保存更改列表。

如果您正在编写脚本,则可以使用" p4更改-i"但您需要确保通过stdin将其提供给有效的更改列表表单。 " p4改变-o"命令为你提供了与你相同的形式" p4 change" (通过stdout代替你的编辑器),所以剩下的就是填写说明和/或修改要包含的文件列表。 --field选项在这里很有用:

p4 --field "Description=My pending change" change -o | p4 change -i

如果您希望新的更改列表为空而不是从默认更改列表继承打开的文件,请将“文件”字段留空:

p4 --field "Description=My pending change" --field "Files=" change -o | p4 change -i

答案 1 :(得分:0)

我的colorChangerViewClass无法理解p4选项。以下对我有用。

--fields

替换#Powershell commandlet echo "Change: new`nClient: <client-name>`nUser: <user-name>`nStatus: new`nDescription: NewCL"|p4 change -i 括号中的项目。

这是回声部分的输出。

<>

如您所见,echo命令只构造#Powershell commandlet PS C:\Users\sahil> echo "Change: new`nClient: <client-name>`nUser: <user-name>`nStatus: new`nDescription: NewCL" Change: new Client: <client-name> User: <user-name> Status: new Description: NewCL 接受的格式化字符串。

以上

p4 change -i用于换行。

请注意,我已排除`n,因为我希望更改列表为空。

更新 - 我更新了我的perforce安装,现在Files了解p4选项。