2010-09-30 56 views
2

我在工作時將Subversion版本庫提取到了一個本地的版本庫。在家裏,我修理了一些東西,投入到當地的汞儲存庫中,在開始工作時我做了一次拉動和更新。Mercurial和Subversion:改變,提交,從SVN拉,推,「對不起,找不到合併版本的svn父母。

$ hg pull 
$ hg update 

我需要合併,所以我這樣做了。

$ hg merge 

然而,當我試圖推:

$ hg push 
abort: Sorry, can't find svn parent of a merge revision." 

我都做的工作流程是什麼錯誤?我能做些什麼來避免將來的問題?

回答

5

如果我沒有記錯,序列

hg pull 
hg up # update the repo to the head 
hg rebase --svn # rebase your_head onto svn 
hg push 

如果您想直接推動轉變爲SVN,你先拉從SVN的最新變化,然後重訂更改的svn HEAD和推動他們背部。

[編輯:這些命令是不能作爲標準HG命令的一部分]

您將需要安裝hgsubversion擴展。

+1

我想我不應該用 「汞合併」,儘管水銀的建議。另外,「hg push」似乎並不接受--svn參數,因此您可能需要編輯答案,供其他人使用。另外,「hg up」似乎可以是獨立的,沒有your_head參數。 – 2010-10-04 10:02:46

+0

@IvanVučica:我認爲你已經安裝了hgsubversion。在我的頭上,我應該提到這一點。 – pyfunc 2010-10-04 16:53:04

+0

我確實有hgsubversion,否則我就無法提取Subversion repo :-)我只是說「push」不支持--svn,「up」不需要頭參數。你可能想修改答案。 – 2010-10-05 13:15:31