2010-11-06 49 views
1

如果有兩個分支,和我一直在default分支做的工作,我想推到其他克隆的foo分支的一個方法是使用Mercurial,如果有兩個本地克隆,是否可以從一個分支推送到另一個分支?

cd ~/development/clone2 
hg up default 
hg pull ~/developmet/clone1 
hg up foo 
hg merge default 

cd ~/development/clone1 
hg up default 
hg push ~/developmet/clone2 
cd ~/development/clone2 
hg up foo 
hg merge default 

這些2種方法工作完全一樣嗎? (一個是拉,一個是推)。

有沒有更簡單的方法直接將克隆1的default分支轉移到克隆2的foo分支?謝謝。

(我用克隆1,看我做了(沒看到任何人的變化)的所有更改,並使用clone2合併,並與其他團隊成員整合)

回答

0

你總是可以推拉一個修訂和它的所有使用老祖:

hg push -r revision ~/development/clone1 

hg pull -r revision ~/development/clone2 
+0

但什麼推動了存儲庫路徑關於從分支1到分支2的分支 – 2010-11-06 06:18:48

+1

推拉永遠不會改變存在變化集的分支,什麼都不會。分支是mercurial中變更集的不變部分。您可以使用'merge'從一個分支到另一個分支獲取該更改的內容/效果,這會創建新的更改集。在http://steveosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/上有一個很好的概述和克隆分支與命名分支分支與書籤分支的比較。 – 2010-11-06 19:02:42

0

有沒有辦法來「推到另一個分支」因爲你永遠需要合併兩個不同的分支手動你描述

這兩種方法的工作完全一樣,但建議的第一個(始終執行合併工作在你的克隆,而不是集成庫或其他人的克隆)

也許是故意的遺漏,但在你這兩個例子只有提交合並的結果,並在第一個例子中,你必須強迫合併變更回clone2

所以在〜/開發/ clone1做:

hg up default 
hg pull -u ~/development/clone2 
hg up foo 
hg merge default 
hg ci -m 'merged default into foo' 
hg push ~/development/clone2 

如果你這樣做很多喲U可以考慮加入這行到你的〜/開發/ clone1/.hg/hgrc文件

[paths] 
default = ~/development/clone2 

這樣就可以省略,當你拉動和整合資源庫

相關問題