2010-11-13 101 views
4

我想將我的項目(https://softsmithy.svn.sourceforge.net/svnroot/softsmithy)從Subversion遷移到Mercurial。 我正在使用本地鏡像(svnsync;如http://panospace.wordpress.com/2010/05/19/svn2hg_part1/所述)。 當前SVN版本號爲:544 我使用下面的命令來顛覆存儲庫轉換爲Mercurial庫: 汞轉化--branchsort --authors svn_users.txt softsmithy鏡softsmithy,善變,所有Svn to Mercurial:更少的版本號和缺失的標籤

但是,生成的存儲庫不包含所有標籤。

生成的存儲庫也只有511個修訂版本。我不確定這是否僅與標籤有關。

一些缺失的標記是標記trunk的子目錄。這可能是問題的一部分。

如何獲取所有標記和修訂?

問候, 深褐色

+0

可悲的是,這可能是唯一的東西水銀的郵件列表可以幫助。我希望你能夠轉換它,我知道保留舊的標籤結構是多麼重要。 – jcolebrand 2010-11-13 18:01:13

+0

我不喜歡爲單個問題註冊郵件列表,但您可能是對的。我在那裏交叉發佈。 (還沒有存檔鏈接。) – Puce 2010-11-14 14:41:09

回答

0

你可以閱讀有關子目錄標籤和它們所造成的問題,以及如何解決它下cvs2hg: Mercurial backend for cvs2svn

工具cvs2hg也可能有助於轉換爲善變,如果你可以從SVN轉換到CVS而沒有信息丟失。它可以被配置爲適應你想要進行的轉換(沒有1:1翻譯的解釋發生)。

+0

嗯,我覺得先轉換回CVS並不舒服。我想我可能會丟失許多信息(例如文件歷史記錄,文件被重命名/移動時)。或者你沒有看到任何問題,它是安全的? – Puce 2010-11-14 14:44:07

+0

是的,這真的是一個問題,重命名歷史可能會丟失,當去CVS,OTOH的標籤處理cvs2hg是更好,更靈活。我擔心你不能在這裏擁有一切。考慮到安全性,你可以嘗試不同的方式並比較結果,而不是轉換具有破壞性。 – 2010-11-15 18:02:31

2

您可以使用hgsubversion extension重新嘗試轉換。它旨在允許從Mercurial雙向使用Subversion存儲庫,但因此它有時可以更好(更快速地)處理簡單的單向轉換。但是,hg convert和hgsubversion都不會自動處理subdir標籤。轉換後可能需要手動添加標籤。如果您使用汞(> = 1.6)的最新版本,這可以比較容易實現:

$ svn log svn://example.com/original/repo/tags/subdirtag # note revision number 
$ hg tag -r 'svnrev(X)' TAGNAME       # X is revision number 
+0

嗨凱文, 感謝您的迴應。是的,我也發現了hgsubversion,它似乎做得更好(例如,hg convert做了一些移動文件的歷史記錄)。之後我使用hg convert進行一些清理(例如重命名用戶)。 hg tag命令沒有按照上述方式工作,但是我使用hg view工具手動創建缺失的標籤(缺少更少的標籤)。 唯一的事情是:我現在有兩個小分支和10個回購頭,我並不需要這些。有沒有簡單的方法來刪除那些沒有破壞回購? – Puce 2010-11-18 01:33:36