2011-12-01 78 views
1

我正在處理一個項目,這個項目是在每個組擁有我們的主要mercurial存儲庫的服務器端克隆的情況下設置的。我們一直在使用的工作流程涉及在筆記本電腦上開發,提交併推送到服務器端克隆存儲庫,然後將這些更改提交到功能強大的遠程計算機以運行我們的測試。一旦更改準備好與組中的其他成員共享,主服務器端克隆就會被拉到本地存儲庫中,並且本地存儲庫將針對主克隆進行重定位。然後可以將更改推送到主遠程克隆,歷史記錄將顯示線性歷史記錄。讓本地和遠程的mercurial存儲庫同步歷史記錄

問題是,個人服務器端克隆與本地存儲庫完全不同步,因爲它沒有重新組裝。我們沒有使用適當的分支,所以合併+ rebase和移植/移植似乎不是我們用來讓存儲庫重新同步的。

服務器端克隆需要具有與本地存儲庫相同的歷史記錄,否則它將拉動並推送所有更改集,並且耗費大量時間解決不存在的衝突。如何讓服務器端克隆具有與主要和本地存儲庫相同的歷史記錄,而無需從主服務器上剝離和提取?理想情況下,我們不必登錄到服務器。

+5

那麼...不要變身? –

回答

2

您只能從「主」回購倉庫獲取其歷史記錄,但這不會從您的開發服務器和本地回購倉庫中刪除未重定義的歷史記錄。

只有這樣,纔能有只有「主」歷史剝離其他回購(甚至重新克隆它們),而這必須同時對所有回購來完成。

P.s.並且不要重新分配。只適用於私人回購。

+0

謝謝。我認爲我們希望藉助重塑來神奇地允許我們使用DVC並具有線性歷史。我們停止重新配售,現在它起作用並顯示出非常廣泛的歷史。 – weitzner

0

重新定價是確定性,因此您可以在客戶端克隆中重新設置rebase。

令人擔憂的唯一原因是,如果rebase觸發了合併解決方案 - 那麼您必須在客戶端以相同方式解決合併。這樣做而不偷看服務器上的代碼可能很困難。

相關問題