1

我有一个从 svn 存储库转换而来的大型 Hg 存储库(2+GB)。它有许多网站,我们希望将它们分离到单独的 Hg 存储库中。存储库位于 Windows 2008 Server 上,我们使用的是 TortoiseHg 附带的 hg。

我们一直在尝试使用带有文件映射的 convert 方法从转换后的存储库创建一个新的存储库。

问题是该命令会遍历源存储库中的所有变更集,但新创建的存储库是空的。

这是命令行的样子:

hg convert -s hg --filemap "hgsplitstaticsites-site1.txt" staticsites-hg "C:\projects\marcelsprojects\hgversions\site1-hg"

文件映射如下所示:

include staticsites-hg/site1
rename staticsites-hg/site1 .

任何帮助将不胜感激。

我们还尝试在 svn 存储库中的子文件夹上运行 hg convert,但这实际上会引发异常并退出。


我们放弃了这个,只是将子文件夹分成单独的 Hg 存储库,并且丢失了所有版本历史记录。

4

6 回答 6

3

我也遇到了空存储库的问题。我的问题是我在文件映射中使用了 Windows 样式的路径名(使用反斜杠而不是普通斜杠),如下所示:

include src\file1.pas
include src\file2.pas
...

但它必须是 POSIX 格式:

include src/file1.pas
include src/file2.pas
...

显然,您也可能不会预先./添加到路径,因为它也生成了一个空存储库。

您的文件映射看起来不错,所以这可能不是您的原因,但也许这会帮助遇到此问题的其他人并通过 Google 找到此页面。

于 2011-10-23T19:12:38.243 回答
2

这个答案是正确的:您实际上并没有创建一个空目录,而是一个带有隐藏目录的.hg目录。如果你跑

hg update

在您的目标目录中,您将拥有您的目标目录,其中包含预期的所有内容。

于 2014-10-02T14:27:24.127 回答
1

我的空存储库问题是由于文件映射中的路径名是错误的情况。

于 2013-03-19T16:42:31.903 回答
0

的输出是hg convert什么?空存储库是什么意思?如果你hg log在目标存储库中这样做,你有任何条目吗?

于 2010-06-29T13:14:09.377 回答
0

我写了一个批处理脚本来帮助运行hg convert命令。 我可以克隆 Mercurial 存储库的一部分吗?

于 2011-02-14T20:19:01.803 回答
0

我有同样的问题,它是由你的包含行引起的。您需要指定相对路径,而不是存储库之一。

例如

svnrepo > branches |
        | tags     |
        | trunk    > Project1
                   | Project2

您的文件映射应如下所示

包括项目1

于 2011-05-25T18:06:54.997 回答