2016-08-15 128 views
4

我試圖從命令行使用命令p4 change -i創建一個空更改列表,但似乎這個命令什麼都不做,我沒有收到任何錯誤/成功消息,命令行簡單地返回沒有,我必須用Ctrl + C殺死它。如何從命令行創建一個perforce空更改列表

我的p4客戶端工作,我能夠看到我所有的信息並正確執行所有其他操作,似乎只有創建新的掛起更改列表時出現問題。

任何人都遇到同樣的問題?

P.s.我已經檢查了P4V的方式來創建一個空的更改列表,並且實際上使用p4 change -i命令沒有任何問題,但是如果我嘗試從cli使用相同的命令,它將默默地失敗。

回答

12

的變化形式,常規的「P4變化」命令是路可走:

p4 change 

這將打開編輯器變更表的規範,這樣您可以填寫出來,當你保存文件在編輯器並退出其保存的更改列表。

如果您正在編寫腳本,您可以使用「p4 change -i」,但需要確保通過stdin爲其提供有效的更改列表表單。 「p4 change -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 
+0

也感謝 - 字段部分,這將是我的下一個問題:D – Max

+0

我可以使用--field運算符還檢索更改列表的數據(如只返回描述)嗎?對不起,在評論中提出要求 – Max

+2

試試「p4 -Ztag -F%Description%change -o CHANGE」 –

1

只需使用「P4變化」將打開的編輯和保存時編號的變化如果您在使用交互式命令行創建

0

p4沒有按不理解--fields選項。以下爲我工作。

#Powershell commandlet 
echo "Change: new`nClient: <client-name>`nUser: <user-name>`nStatus: new`nDescription: NewCL"|p4 change -i 

替換括號中的項目<>

這裏是回聲部分的輸出。

#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 

正如你可以看到,echo命令只是構建了一個格式化字符串,p4 change -i接受。

`n用於上面的新行。

請注意,我已排除Files,因爲我希望更改列表爲空。

更新 -我更新了我的perforce安裝,現在p4明白--fields選項。

+0

不承認 - 字段,因爲已過時,如果你更新它,你將能夠使用它(並且是非常有幫助的) – Max

+0

謝謝,更新爲我工作。我不明白爲什麼--fields在「p4 help undoc」中提到,這是「不支持或過時的Perforce命令和選項」,而「p4 --help」沒有提及它。 –

+0

這是因爲它是不受支持的選項。使其「支持」將不可避免地意味着編寫大量文檔,說明如何將它與每個規範一起使用,因此它可能會使其不受歡迎或者增加許多令人討厭的限制,從而使其更易於文檔化。 ;) –

相關問題