2010-08-19 23 views
5

我做了一些codeplex項目的分支。完成一些額外的代碼等,甚至把我的自定義代碼放到源代碼控制倉庫中。如何將我的自定義CodePlex Mercurial叉與主幹進行同步?

在我自己的叉子上工作的那幾個星期和幾個月裏,他們的主幹已經更新了。

如何將我的代碼與主幹的代碼同步?

(我想要同步我的代碼主幹主要的原因是,他們升級到VS2010,我仍然使用VS2008項目版本:()。

+0

你在尋找mercurial'merge'命令嗎? – Borealid 2010-08-20 00:32:13

+0

@borealid - 合併?也許:)關於如何使用的任何信息(在我谷歌之前)。 – 2010-08-20 04:27:45

+0

你有你的本地HG樹,你通過'hg pull'把你的遠程HG頭拉進去,然後你做'hg merge'來合併這兩個頭。 – Borealid 2010-08-20 04:38:00

回答

9

我只是碰到了同樣的問題,雖然上面的評論導致了正確的答案,但他們可能不會爲一個新來Mercurial的人想要貢獻開源項目而削減它

一個普通的hg pull只會從你的fork到本地克隆的存儲庫,在這種情況下沒有幫助。有一個可選參數[SOURCE],允許您從主幹中取而代之。

以下是執行作業所需的Mercurial命令行命令(根據您所需的CodePlex項目相應地替換「someprojectname」,或者對於類似的系統,用您的fork的trunk的URL替換整個URL [vs.刀叉的URL]):

  1. [可選]看看有哪些變更是在主幹而不是在你的本地庫:hg incoming https://hg01.codeplex.com/someprojectname
  2. 拉新的變更到你的資料庫:hg pull https://hg01.codeplex.com/someprojectname
  3. 合併這些變化到你自己的代碼(解決衝突因此):hg merge
  4. 提交的結果,你的本地庫:hg commit -m "Some message about merging changes from trunk."
  5. 把你的代碼的更新版本從本地資源庫,以你的叉子在CodePlex上:hg push
+0

謝謝@patridge - woot! – 2011-12-01 23:24:02