我有一个从svn存储库转换的大型Hg存储库(2 + GB)。它有很多网站,我们希望将它们分成单独的Hg回购。存储库位于Windows 2008 Server上,我们正在使用TortoiseHg附带的hg。
我们一直在尝试将convert方法与filemap一起使用,以便从转换后的存储库中创建一个新的repo。
问题是命令在源仓库中的所有变更集中运行,但新创建的仓库为空。
这就是命令行的样子:
hg convert -s hg --filemap "hgsplitstaticsites-site1.txt" staticsites-hg "C:\projects\marcelsprojects\hgversions\site1-hg"
filemap如下所示:
include staticsites-hg/site1
rename staticsites-hg/site1 .
非常感谢任何帮助。
我们还尝试在svn存储库中的子文件夹上运行hg convert,但实际上会抛出异常并退出。
我们放弃了这个,只是将子文件夹分成单独的Hg repos,并丢失了所有的版本历史记录。
答案 0 :(得分:3)
我也遇到了空存储库的问题。我的问题是我在我的文件映射中使用了Windows风格的路径名(使用反斜杠而不是普通的斜杠),如下所示:
include src\file1.pas
include src\file2.pas
...
但它必须采用POSIX格式:
include src/file1.pas
include src/file2.pas
...
显然你也可能不会在路径前加./
,因为它也会产生一个空的存储库。
你的文件地图看起来没问题,所以这可能不是你原因造成的,但也许这会帮助遇到这个问题的其他人通过谷歌找到这个页面。
答案 1 :(得分:2)
答案 2 :(得分:1)
我的空存储库问题是由于文件映射中的路径名是错误的。
答案 3 :(得分:0)
hg convert
的输出是什么?空存储库是什么意思?如果您在目标存储库中执行hg log
,那么您是否有任何条目?
答案 4 :(得分:0)
我写了一个批处理脚本来帮助运行hg convert
命令。 Can I clone part of a Mercurial repository?
答案 5 :(得分:0)
我有同样的问题,这是由你的包含行引起的。您需要指定相对路径,而不是存储库..
E.g
svnrepo > branches |
| tags |
| trunk > Project1
| Project2
您的文件地图应该如下所示
包括Project1