2017-03-31 26 views
0

我想更改列表像一個Perforce分支的清單:如何問Perforce公司與雙方的描述和修改文件

P4 -t -L // mydepot/LIBRARY1/V1。 0 /[email protected] 2017/03/27,@現在

也就是本週所有更改的列表和說明。但我也想要的文件的列表,如 files in one changelist:

P4文件@ = 123456

這似乎是它需要的腳本,但任何人都知道一個Perforce的方法嗎? 如果返回的變更集合較大,那麼事後查詢每個變更集會對服務器造成不利影響嗎?

回答

1
p4 -Ztag -F "describe -s %change%" changes //mydepot/library1/v1.0/[email protected]/03/27,@now | p4 -x - run 

性能問題的答案取決於有多少是「大」(我們在談論多少變化/文件)和您的服務器硬件。

我的猜測是,對於「正常」服務器和「正常」使用情況,你會好起來的,但如果我們談論幾十億個文件,每個文件有幾十億個變化,是的,這些命令需要一段時間。如果我們更多地處於數百或數千個範圍內,那麼。

0

你在一個問題中問了一堆問題,所以這裏有一個答案在一個答案。

  1. 使用p4 changes命令獲取感興趣的更改列表。
  2. 使用p4 describe -sp4 files @=可以獲取每次更改中的文件列表。
  3. 是的,要組合這兩組數據,你需要一個腳本,但它可以是一個非常短的腳本。您可以使用p4命令行別名功能編寫這樣的腳本,也可以使用您最喜歡的腳本語言。網絡上有很多這樣的腳本的例子。
  4. 服務器最終必須執行多個命令,但這些特定命令是服務器非常有效地執行的命令。我懷疑它不會讓服務器在計算輸出時出現問題,但是在讀取所有輸出時會遇到問題。換句話說,不要運行產生比您想要讀取的輸出更多的腳本。
+0

然而,考慮到性能問題與第一個答案有關。也就是說,如果需要一個呼叫或N + 1個呼叫。 –

+0

服務器需要N + 1個呼叫。正如@ sam-stafford在他的回答中所觀察到的那樣,您可以編寫一個緊湊的單線腳本,以便您只需要一個腳本調用。 –