(I是新手在水銀。和版本控制)。推輓與多個遠程位置中水銀
我使用從到位桶(水銀)一個開源框架克隆。每當框架更新我運行hg拉和hg更新獲得最近的副本。現在我爲了自己的目的對該框架進行了一些修改,我在另一個存儲庫上存儲了bitbucket。現在如果更新了原始框架,我如何將這些更改合併到我自己的存儲庫中,保持我自己的更改不變。
(I是新手在水銀。和版本控制)。推輓與多個遠程位置中水銀
我使用從到位桶(水銀)一個開源框架克隆。每當框架更新我運行hg拉和hg更新獲得最近的副本。現在我爲了自己的目的對該框架進行了一些修改,我在另一個存儲庫上存儲了bitbucket。現在如果更新了原始框架,我如何將這些更改合併到我自己的存儲庫中,保持我自己的更改不變。
嗯,這是這個工作流程。
首先,你從第三方項目克隆上到位桶,要修改,所以你會得到如下的歷史在您的本地克隆:
3rd: 1---2---3
clone: 1---2---3
然後你在你的到位桶帳戶創建一個新的項目,並推到回購,所以現在你有:
3rd: 1---2---3
clone: 1---2---3
fork: 1---2---3
「叉」這裏只是意味着公共克隆在bitbucket。
然後你做一些更改您的克隆,並推到自己的BB倉庫,現在您有:
3rd: 1---2---3
clone: 1---2---3---4---5
fork: 1---2---3---4---5
在某些時候
然後,第三方更新自己的資料庫,所以現在您有:
3rd: 1---2---3---4'--5'
clone: 1---2---3---4---5
fork: 1---2---3---4---5
修正號後面的數字只是表示數字相同,但變更內容不是。
在這一點上,你拉第三方改變下來到自己的克隆:
3rd: 1---2---3---4'--5'
clone: 1---2---3---4---5
\
\-6'--7'
fork: 1---2---3---4---5
然後你在你的克隆進行合併,並且還實現了一些新的變化:
3rd: 1---2---3---4'--5'
clone: 1---2---3---4---5----8---9---10
\ /
\-6'--7'-/
fork: 1---2---3---4---5
,並推送到你的BB庫:
3rd: 1---2---3---4'--5'
clone: 1---2---3---4---5----8---9---10
\ /
\-6'--7'-/
fork: 1---2---3---4---5----8---9---10
\ /
+-6'--7'-+
同樣,在某些時候,第三方開發板的每更新其回購:
3rd: 1---2---3---4'--5'--6'--7'
clone: 1---2---3---4---5----8---9---10
\ /
+-6'--7'-+
fork: 1---2---3---4---5----8---9---10
\ /
+-6'--7'-+
所以你重複這個過程,第一拉:
您合併:
3rd: 1---2---3---4'--5'--6'--7'
clone: 1---2---3---4---5----8---9---10---13
\ / /
+-6'--7'-+--11'---12'-+
fork: 1---2---3---4---5----8---9---10
\ /
\-6'--7'-/
推:
3rd: 1---2---3---4'--5'--6'--7'
clone: 1---2---3---4---5----8---9---10---13
\ / /
+-6'--7'-+--11'---12'-+ <-- 11' and 12' corresponds to 6'/7'
fork: 1---2---3---4---5----8---9---10---13
\ / /
+-6'--7'-+--11'---12'-+
感謝細節。現在看起來很容易。 :) – iamgopal 2011-01-16 07:44:43
在大多數分佈式源代碼管理系統,你可以從上游的遠程存儲庫中取出ry,找到並修復合併衝突,在您的本地工作副本中檢入合併,然後最終推送到遠程存儲庫。 – sarnold 2011-01-13 10:46:43