2014-01-22 55 views
3

我有一些使用Perforce進行版本控制的軟件。有很多checkin,因此有很多changelist。使用Perforce對多個更改列表進行區分

有一個功能,在很長一段時間內用很多簽入來實現,我想在其他地方移植。 I 可以手動搜索歷史記錄,但如果有一種簡單的方法來區分基線的當前狀態與所選變更列表的組合效果,那將是非常好的。

換句話說,DIFF最新,最大的反對的結果分支:變更表A +變更表B +的變更表ç...

如何在Perforce中做到這一點?

+0

你要比較一個文件的不同版本或不同版本的幾個文件?您可以始終使用「p4 diff ... @ YYYY/MM/DD」來比較當前版本的子樹與舊版本中的同一子樹。但結果很難理解(如果它很複雜)。 – pitseeker

+0

如果你使用p4v,你看了Time-Lapse視圖嗎?在同一分支內,它可以讓你隨着時間的推移查看代碼。它可以讓您比較當前或過去更改列表的累積更改。 – gaige

+0

@pitseeker有很多開發人員長時間登錄到同一個分支。我只想要一個開發人員的一些變更名單。我可以很容易地找到所有相關的更改列表,手動比較每個列表只是一個痛苦。它是一大堆文件的不同版本。我想把所有我關心的改變列表,總結起來,並將它們與當前最新的 - 最偉大的改變列表進行比較。 – kmort

回答

1

我會這樣做的方式是使用p4編輯,同步和解析的組合來構建我想要在我的工作區中進行的一組更改。其基本過程是:

  1. 同步改變A(假設它開始的順序)
  2. 爲編輯
  3. 同步改變B-1(這將安排解決)
  4. 運行Open一切P4決心和忽略的變化(-ay)
  5. 同步變化B(這將調度解析)
  6. 解決變化乙處理任何衝突
  7. Sync來改變C-1
  8. 決心和忽略更改
  9. 同步變動c
  10. 解決,並在修改合併
  11. DIFF對頭部
+0

謝謝馬特。這將做我所問。我希望有更多的自動化功能,但我認爲你已經展示了Perforce目前能做的最好的事情。 – kmort

+0

我有同樣的問題。我正在跨越多個變更列表進行代碼審查,這是一個耗時的噩夢。只要我能理解,@matt的答案看起來很棒。大聲笑失去我的那一刻是從改變名單A,B和C但同步到B-1和C-1的跳躍。我不明白B-1和C-1是什麼。 – Keith

+0

字面上小於A,B和C的變化列表數。所以,如果你想看到變化123(A),456(B)和789(C)的組合效果,那麼你將同步到123,打開所有的編輯,然後同步到455,解析 - 一直忽略所有這些更改,然後同步到456以僅從該更改中獲取內容。 – Matt