2012-01-16 17 views
3

我一直很高興地使用HgSubversion一段時間,今天我忘了將--svn添加到rebase命令。 現在我得到了可怕的未知版本''修復HgSubversion Rebase之後重新使用--svn

有沒有辦法從此恢復?

+0

回溯會有幫助,你能用'--traceback'運行命令嗎? – 2012-01-16 15:59:50

+0

此外,你什麼時候得到「可怕的未知的復興xxx」?您有沒有可能在本地(非推送)版本或其他類似的版本中重新制作「轉換版本」? – pmezard 2012-01-16 16:01:28

+0

我已經吹走了倉庫。我在沒有--svn(我有2個非推送修訂版)的情況下提出了更改(有一個新的修訂版)。然後我試圖推動..錯誤。試圖拉...錯誤 – 2012-01-16 18:02:00

回答

1

我會嘗試使用transplant擴展解決這個問題:

  1. 再克隆SVN版本庫到一個新的本地存儲庫中。
  2. 審覈原始庫的歷史並注意哪些變化需要移動
  3. 移植從舊倉庫更改到新的存儲庫

例如 - 固定projecthgsubversion回購叫:

> hg clone svn+http://svnrepo/project project-tmp 

然後檢查你原來的項目文件夾的日誌,並從做project-tmp文件夾中的以下內容:

> hg transplant -s ../project 1234 

其中1234是您想要移動的修訂。重複此操作,直到複製所有修訂。

當你做了你應該可以開始使用新的文件夾代替舊的文件夾中從SVN重新拉動,基礎重建的更改,並把它們放回原(不要忘記--svn)

+0

我會標記爲答案。但我真的很希望有一個解決方案,由於是遠程的,不需要完全的重新克隆。我會爲這些時間保留一份備份副本。 – 2012-01-19 12:36:10

5

你應該可以做「hg svn rebuildmeta」,然後做「hg pull」並讓它修復東西。

注意:這是未經測試的,所以我會在本地回購的情況下工作,以防萬一出現問題。我對代碼的記憶表明這將起作用。

+0

有時候這會起作用,我今天又陷入了這個混亂之中,而且重建的確奏效! – 2012-01-23 19:10:15