我正在努力爲使用Subversion的項目做出貢獻。我用Mercurial和它的hgsubversion擴展來克隆回購。我的工作發生在一個功能分支上。如何處理與hgsubversion的合併?
如何讓功能分支與默認分支(hg speak)又名幹線(svn speak)上發生的事情保持同步?
所以我用hg up feature
更新到功能分支,然後hg pull
這給了我默認分支的變更集。所以我做了hg merge default
,承諾合併,然後嘗試hg push
將我的變更集發送到Subversion。 Mercurial說:「對不起,找不到合併版本的svn父母。」
謝謝,瑞安。 但是根據你的建議,我的作品不會出現在上游(即在Subversion中)。我希望能夠承諾Subversion分支。實際上,我可以提交給Subversion分支,但我無法從Mercurial的主幹中合併。 (Subversion「只有名義上」有分支嗎?似乎在Subversion中合併分支的支持比Mercurial中的支持要弱,但它並不太可怕。至少我可以將一個分支從trunk中分支出來,然後從trunk中重複合併當我想將分支重新集成到主幹時,問題就出現了。) – hibbelig 2010-04-17 16:20:17
我的建議一定不清楚,因爲沒有任何東西阻止你向上遊推進。我只是建議,一旦將變更集變爲mercurial,您將自己限制爲一個命名分支,因爲正常情況下mercurial分支之間的合併會阻止您推送到顛覆(如您所見)。如果你想要單獨的開發軌道,將所有cset保留在mercurial land的同一命名分支上,並使用多個克隆,而且你應該沒問題。 – 2010-04-17 18:14:29
再次感謝你,瑞恩。那麼我如何使用多個* Subversion *分支? 請注意,我在Subversion中做了兩個分支的'hg merge',然後想把合併推回到Subversion。以上錯誤信息推進合併失敗。如果我在Subversion一側完成了相同的合併,Mercurial一方會完成合並(在'hg pull'之後)。 – hibbelig 2010-04-17 20:26:06