我是Perforce Python API的新手,仍然在尋找解決方法。到目前爲止,如果我提供文件名,我一直能夠檢索像number,desc等更改列表信息。我正在嘗試獲取指定日期/時間範圍內所有提交的更改列表,以便我可以收集更改的文件和每個更改列表的描述等信息。有沒有一種方法可以使用API執行此操作?如何使用Perforce Python API在一天內檢索提交的更改列表
感謝
我是Perforce Python API的新手,仍然在尋找解決方法。到目前爲止,如果我提供文件名,我一直能夠檢索像number,desc等更改列表信息。我正在嘗試獲取指定日期/時間範圍內所有提交的更改列表,以便我可以收集更改的文件和每個更改列表的描述等信息。有沒有一種方法可以使用API執行此操作?如何使用Perforce Python API在一天內檢索提交的更改列表
感謝
從less than extensive P4Python documentation和a question from the Perforce forum的讀取時,該代碼可能做的伎倆,但記住它是完全未經測試**所以買者自負和所有
在filelog命令時,...
似乎是請求文件夾中所有文件的方式,因此您只需要用適當的值替換server
和folder
。
from P4 import P4, P4Exception
p4 = P4()
p4.port = "1"
p4.user = "User"
p4.client = "Client"
try:
p4.connect()
changelist = p4.run_filelog('//server/folder/[email protected]/mm/dd,@now')
for r in changelist:
print r.depotFile
print r.revisions[0].time
except P4Exception:
for e in p4.errors:
print e
finally:
p4.disconnect()
**是的,我可以下載的Perforce,安裝,添加了一些文件,然後進行測試的代碼,但這似乎是一個溫和的程度矯枉過正。
這個方法適合我。我發現使用API會更好一些,因爲我可以訪問所有其他字段和方法。謝謝! – Periastron
繼file.c當今變化的代碼輸出列表:
import subprocess
import datetime
curr = datetime.datetime.now()
file = "file.c"
cmd = 'p4 changes -s submitted %[email protected]%s/%s/%s,@now' % (file, curr.year, curr.month, curr.day)
print subprocess.check_call(cmd)
請注意,你應該已經在上面的腳本執行前設置P4PORT和P4USER在您的環境。如果你不想設置,你可以使用-p和-u開關在命令中設置它們。
在上面的代碼中,查詢是爲在file.c上獲取當前更改列表而創建的。您可以操作日期和文件名以獲得您想要的結果。
感謝您的示例。它有助於。儘管不是文件,可以用於文件夾嗎?更改特定文件夾中所有文件的列表?我正在使用的倉庫有成千上萬的文件,並且很難在逐個文件的基礎上做到這一點。使這個工作在文件夾的基礎上將爲我做的伎倆。 – Periastron
是的..它可以工作的文件夾..只提交文件=「// mysrc/mypath/...」 – user3
酷!我會盡快嘗試,並在這裏發佈它是如何去的。這是否需要除Perforce Python API以外的其他P4設置或安裝? – Periastron
您也可以使用這樣的:
from P4 import P4, P4Exception
p4 = P4()
p4.port = "A"
p4.user = "B"
p4.client = "C"
try:
p4.connect()
changelist = p4.run_changes('//server/folder/[email protected]/mm/dd,@now')
# p4.run("change","//server/folder/[email protected]/mm/dd,@now") works as well
for c in changelist:
print c.desc
# or whatever you want, including: status, client, user, changelist...
except P4Exception:
for e in p4.errors:
print e
finally:
p4.disconnect()
對我來說,感覺比較正確的,因爲它使用了P4Python API和正確的run方法(調用P4改變命令),你也得到了很多有關每個更改列表的更多信息。
Chee
我在文檔中看不到任何明顯的東西。由於API是由Perforce自己提供的,您是否曾嘗試向Perforce提交支持憑單來問這個問題? – Talvalin
是的,我在文檔中也找不到任何東西。我還沒有提交過Perforce的門票。如果不是我正在尋找的確切的東西,我仍然試圖找到一些解決方法。 – Periastron