2011-10-22 129 views
4

我想轉換一個Mercurial存儲庫以將所有文件移動到一個子目錄中,準備將兩個存儲庫合併爲一個。我遇到的問題是我的一些分支在轉換過程中丟失了。Hg轉換丟失分支

這是我在做什麼:

hg convert --filemap filemap.txt SourceRepo DestRepo 

我filemap.txt如下:

rename . subdir 

當這個命令完成,DestRepo缺少創建的但SourceRepo的所有分支對他們沒有任何改變。

爲什麼我的分支與父級完全一樣的原因是因爲原始存儲庫是SVN存儲庫,因此我們使用分支來標記版本。

有什麼方法可以完成此轉換而不會丟失分支?

編輯:回答Ry4n的問題。

源代碼倉庫是一個Mercurial倉庫,它是使用hgsubversion擴展從SVN倉庫創建的。

這裏是日誌的分支:

> hg log -b V3.02.55 

changeset: 84:cf19dfac555c 
branch:  V3.02.55 
parent:  71:aec56bf6ad9a 
user:  [email protected] 
date:  Wed Aug 24 15:31:01 2011 +0000 
summary:  Branching V3.02.55 

回答

3

在水銀有沒有這樣的事情與他們沒有任何變化的命名分支。如果您的源代碼庫是Mercurial存儲庫,則它或者沒有這些命名分支,或者它們至少有一處更改。

是您的起源Mercurial?

如果是這樣,您可以提供hg log -b NAME輸出爲您認爲存在但沒有更改的分支之一?

+0

該源是由hgsubversion擴展創建的Mercurial存儲庫。請參閱我上面的編輯日誌命令的輸出。 –

+0

好的,這個分支上有變更集,他們只有空的補丁。爲什麼不把它們作爲標籤創建?你應該能夠在事後把'hg tag'自動化,以將發佈標記放在原來的位置。如果稍後想要從該點添加一些變更集,可以通過更新到標記然後提交來輕鬆完成。 –

+0

謝謝。我想這就是我要做的。無論如何,它們應該是標籤,只是SVN使用分支來標記。 –