2011-06-29 21 views
5

我試圖找到方式來更新客戶端上的特定軟件(Python應用程序)。 客戶端已經擁有HG或GIT,我可以決定客戶端環境的任何要求。任何方式恢復下載HG或GIT changsets拉?

但客戶端正在慢慢地發生互聯網連接。

HG,GIT和其他工具非常適合通過最小流量帶寬的更改集進行更新過程。

但是,如果變更集變大(從小修訂號跳轉到HEAD)下載它們可能會被連接丟失。

HG,GIT或其他人可以通過pull命令恢復下載嗎?


一種使用bundle變更集的方法,使用wget/curl和其他方法下載它們並恢復下載選項。然後應用捆綁。

在此解決方案中,服務器必須爲每個修訂提供捆綁跳轉組合FROM到TO(1-2,1-15,2-15)。理想情況下,服務器必須通過客戶端請求創建「Lazzy bundle創建」。

wget -c https://repo.myserver.com/bundle?from=rev1&to=rev2 

已經從源代碼庫的任何其他方式對客戶端軟件的更新?

對不起,我的英語不好:(

感謝

+0

我無法對斷開的連接問題發表評論,但關於下載套件 - 您不需要爲每個FROM to TO組合添加套件。您可以爲整個存儲庫提供一個捆綁包,也可以爲存儲庫的1/2,1/4,1/8(僅限每個捆綁包中後面的更改集)提供一個捆綁包。然後,只需選擇需要的(最小的包含所需變更集的包)。客戶可以獲得比所需更多變更集的捆綁包,並從該庫中「拉出」,就好像它是回購協議一樣。如果您的回購很少,只需提供完整的回購作爲一個捆綁。 – icabod

+0

你有沒有考慮過使用rsync? –

+0

我不考慮使用rsync,因爲源代碼必須從中央存儲庫直接更新並應用於「事務」(一次操作中的所有部分) – estin

回答

3

Git是特別有效和有彈性的這樣的網絡故障的影響。

有效的,因爲,它只是拉被改變了樹中的對象或新添加,甚至傳輸壓縮的對象

彈性,因爲除非所有必需的對象都存在,否則分支不會進一步發生。 omplete。

如果要解釋提取,下次執行提取時,這次只會收到先前未收到的新對象。

捆綁 - 轉移通過wget - 申請捆綁顯然是失敗的證據,但我不太確定,如果這是真的必要。