2011-03-02 80 views
15

什麼時候你會使用hg exporthg bundle使用Mercurial hg bundle和hg export vs合併?

這些命令列在Mercurial快速入門guide上,但我們不清楚何時使用它們。

目前我們通過擁有不同的資源和合並來管理開發者。即:

cd myapp-1.01 
hg pull ../myapp-1.0 
hg merge 
hg commit 
hg push 

什麼時候你會使用export和bundle而不是我們使用的方法?

回答

19

主要區別在於父變更集是否存在於目標存儲庫中。例如,如果你的源回購有這樣的:

[A]--[B]---[C] 

和你的目的地有這樣的:

[A]--[B] 

,你想送[C]你可以使用包(或只是推/拉)。

但是,如果你的目標資源庫有:

[A]--[D] 

,你想[C]添加到它,你不得不使用導出和導入。

簡而言之:bundle適用於當您要推/拉但沒有良好的網絡路徑時,export適用於當您要發送變更集的邏輯內容而不是特定的確切變更集。

+1

補充@ Ry4an所說的話:一個bundle會將變更集插入到原始倉庫中的相同位置,這意味着在新的倉庫中(通常)會有一個新的倉庫。 – Alex 2013-01-11 09:00:26

5
  • 包是更適合於變更的指定範圍保存到輕鬆傳送文件(如,通過電子郵件發送它們被應用到不同的存儲庫中的其他地方)。

    hg --help bundle

    束文件然後可以 使用常規手段 轉移並施加到另一個存儲庫與 的分類定價或拉命令。這是 有用 當直接推入和拉動不可用時或者導出整個 存儲庫是不可取的。

  • 導出似乎爲某些範圍的變更集生成標題+差異列表,但helpfile沒有提及這是否有助於自動將它們轉移到其他地方。

    此外,導出的文件輸出參數是根據修訂版號等格式化的,這使我相信這個命令通常用於保存修訂,使您更容易查看它們(作爲文件)。

相關問題