在我身爲建築工程師和系統人員的角色中,我必須學習最終弄清楚一些事情 - 即如何設置我們的基礎架構。在我加入他們之前,他們沒有任何。考慮到這一點,如果我問任何本該顯而易見的問題,請原諒我。Mercurial分佈式存儲庫
目前,我們有3個層次的分佈式善變庫:在每個開發人員的機器,在中央(主幹)兩級的一個級別的服務器 - 只有從本地網絡訪問和到位桶的第三層。工作流程如下:
本地開發:開發人員從本地網絡服務器提取變更集。一旦合併衝突得到解決,開發人員將提交到本地並推送到我們的本地服務器。一個安排好的腳本在一夜之間支持BitBucket。
在家工作:開發商從到位桶拉更改集。開發人員向他們的本地回購協議致敬並推送到BitBucket。
的TeamCity拿起從本地網絡服務器爲每個項目回購的變化和運行構建/自動部署到測試環境。
問題我打的場景2:此刻,如果有人推的東西到位桶它是把它合併回當他們回到辦公室時他們的責任。如果可以實現自動化,這有點浪費時間。
如果你想知道,我們有本地網絡上的中央回購的原因是因爲這將是運行的TeamCity建立到位桶倉庫的緩慢。沒有測試過,所以這只是一個受過教育的猜測。
總之,該計劃並推動從中央存儲庫本地網絡上的所有更改的腳本只是運行「汞推」每個庫。它必須事先進行拉/合併。我該如何做到這一點?
這是拉將不得不使用的開關: - 更新拉 之後 - 在合併衝突的情況下,始終以較新的文件 - 在錯誤的情況下,請發送電子郵件至系統管理員(或多個) - 什麼額外的?
請隨意分享您自己的設置,只要它與所描述的沒有太大的不同。
更新:在最近的答案的光,我覺得一個重要的方面,如果預期的方法需要加以澄清。這個想法不是強制合併在我們的本地網絡中央回購。相反,它應該解決合併衝突的問題,就像在開發者機器上使用HgWorkbench進行post pull:update + merge一樣。所有的開發者默認都有這個,所以應該沒問題。從到位桶
- 拉
- 更新+自動合併
任何合併自動衝突:
因此,對服務器的腳本/批處理文件將執行以下操作?
3.1是 - >發送電子郵件給管理員手工合併 - >打破
3。2否 - > Cary
獲取傳出變更集。將推動創造多個頭? (由於拉/更新,這可能是多餘的)
4.1是 - >提示管理員。打破。
4.2否 - >更改推
希望這清除了一點東西。現在,可以單獨使用hg命令 - 批處理 - 還是必須編寫腳本?具體可以發送電子郵件嗎?
謝謝。
改變TeamCity從BitBucket運行應該是微不足道的。既然你只是猜測它會變慢,我想你應該嘗試一下,然後再嘗試解決這個問題。奇怪的是,基本上有兩個同層的副本(BitBucket和本地中央服務器) –
不可否認,擁有兩層可能會很奇怪。但這是分發給我的手段。它應該能夠處理任意數量的圖層。無論如何,我會嘗試直接連接到BitBucket,看看它是如何發展的。這並不像您想象的那樣微不足道,因爲您必須開始玩優化 - 減少爲每個構建下載的源代碼量(而不是清理某些文件夾),甚至可能重構某些解決方案以滿足此需求。黃金法則:每個計劃需要三倍的時間執行按計劃:) –