2014-01-15 94 views
0

我正在編寫一個包裝腳本,我將在其中進行批量集成以更改分支結構。現在,我們有這樣的結構:在提交期間保留Perforce信息

//depot/product/component-1/... 
//depot/product/component-2/... 
... 
//depot/product/component-n/... 

,我們正在向

//depot/product/release/component-1/... 
//depot/product/release/component-2/... 
... 
//depot/product/release/component-n/... 

我寫了一個包裝腳本做,每一個分支此舉被捕獲作爲單獨的一部分的質量一體化更改列表。類似於更改列表101將具有用於組件-1的整合,更改列表102將具有用於組件-2等等。最後,它會提交所有更改。這是爲了縮小組件級別的提交內容。

我擔心的是,如果在兩者之間發生不好的事情,並且我的腳本無法提交或由於無法預料的原因,集成處於中間狀態,我必須在運行此腳本之前將所有內容恢復到狀態。我怎樣才能做到這一點 ?有沒有一種機制可以在提交給perforce本身之前堅持數據,這樣我就可以回到它了?

當我說的數據,我的意思是

p4 files //depot/product/component-n/[email protected] 

我有約束輸出,該腳本會由多人在做自己的一套集成的是要執行的,爲什麼我不能只是轉儲信息一個文本文件在本地。我需要一個解決方案,讓只有訪問perforce的人才能獲得這些持久信息,以防他們不得不倒退並恢復提交。將這些信息存儲在數據庫中也是沒有問題的。 :(

有沒有辦法實現這一目標?在此先感謝。非常感謝您對這個幫助。

+2

三條建議:(1)在運行腳本之前進行備份。 (2)用測試服務器複製數據,以便完全測試腳本。 (3)聯繫Perforce技術支持尋求幫助;這就是他們在那裏的原因。 –

回答

1

如果你想把所有的整合發生或者沒有,那麼這就是原子變更表是。把所有的集成在一個更改列表中,要麼全部都會被提交,要麼都不會。

如果您確實想單獨執行它們,則不需要持續輸出p4 files命令。在集成之後仍舊在舊版本上,所以p4 files命令應該仍然會產生相同的輸出。

如果你真的需要堅持輸出,你可以檢查它到Perforce。製作一些區域,如//depot/integration-records,並檢查每個文件,例如//depot/integration-records/component-n.txt,因爲它是生產。您可以將文件添加到集成了component-n的更改列表中,以便文件的存在或不存在將指示集成是否已完成。

+0

我喜歡檢查txt文件的想法。除非有人提出更好的建議,否則我會遵循這種方法。感謝您的建議。欣賞它。 – Raghuveer