2008-08-07 40 views
12

我們在同一個封閉的(呃,愚蠢的政府)網絡上有兩個開發者,另一個開發者在路上駕車幾分鐘,第四個開發者在全國各地中途開車。對於不在同一網絡上的人員,電子郵件,ftp和刪除媒體都是可能的轉移方式。什麼是該設置的良好Mercurial使用模式?

我是兩個封閉的網絡開發者之一,認爲我們是「主」位置。

什麼是最好的Mercurial設置/模式組?向遠程開發人員傳輸更改的最佳方式是什麼?正如我負責的那樣,我認爲我必須至少保留一個擁有另一個本地回購的主回購商品,以便我可以開發。每個其他人只需要一個主人的克隆。這是正確的嗎?我想這也讓我對合並負責任?正如你所看到的,我仍然試圖圍繞分佈式版本控制。我不認爲有什麼其他的方式來解決連接問題。

回答

1

網絡外部的用戶可以使用patches和/或使用email將更新發送到主存儲庫或某人,像您自己合併它們。其他內部人員可以像本人一樣擁有本地副本並進行合併 - 但是如果您沒有網絡補丁,那麼一個人處理它們可能會更好,因此沒有人會感到困惑,但這是您必須要做的事情考慮你自己。

以另一種方式同步,您會創建一個補丁程序,然後他們通過電子郵件或閃存驅動器向遠程開發人員修補系統。你需要與隊友進行一些良好的溝通,我很感謝你,我不在你身邊。

這些是我唯一的建議 - 很明顯,讓他們成爲VPN連接!我很想聽聽它是如何發展的,什麼計劃穩定在每週的溝槽等等。

0

正確。任何使它進入封閉網絡的唯一方法是通過閃存驅動器。

3

修補程序是一個簡單和多功能的解決方案。

爲了移動更大的變化組(特別是二進制變化和合並),Mercurial提供了二進制包。一個包基本上是在你做hg push時在網絡上發送的二進制東西,但是在這裏它被捕獲在一個文件中。

讓我們想象我已經得到了一個克隆(通過閃存驅動器,DVD等)。稱它爲upstream。然後我做第二個克隆,叫它devel。我在devel中完成了所有的開發工作,並進行了大量的提交,合併等操作。由於Mercurial是分佈式的,我可以在離線情況下完成所有這些工作。

要查看哪些變更中丟失了upstream我做

% hg outgoing ../upstream 

當我有東西送,我可以使用

% hg bundle changes.hg ../upstream 

得到一個二進制壓縮文件,該文件包含的變更,包括所有他們的元數據。然後,我可以將這個文件刻錄到CD上並通過郵件發送。

捆的接收者可以做

% hg incoming changes.hg 

看到變更列表和

% hg pull changes.hg 

解包和變更集添加到他的倉庫。然後,他很可能不得不合並 - 這就好像他是通過HTTP或SSH直接從存儲庫中提取的。

請注意,upstream存儲庫僅用作記憶上游存儲庫中已找到哪些更改集的便利方法。您還可以記下變更集標識,並在捆綁時使用hg bundle --base指定基本(通用)變更集。請參閱hg help bundlelook in the wiki

相關問題