将 svn 文件夹同步到 mercurial repo

Sync svn folder to mercurial repo

这是

的后续问题

该解决方案运行良好,但是我们想要做的是通过将一些特定文件夹克隆到 mercurial 存储库来分解树,因此我们将命令修改为

hg clone https://username@serverAddress/svn/MainRepo/SubFolder/Folder/ --insecure

这给了我们一个

error: [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:661)

有什么帮助吗?

感谢阅读

Mercurial 的设计与部分结帐不兼容。我没有查看 hgsubversion 内部结构,但我预计对部分结账的支持既不容易实现也不是优先实现的。另请注意,官方 hgsubversion wiki 指出:

Right now, you can only clone repositories that use a more-or-less standard Subversion layout. That is, the default location where work is done is called trunk, branches are located in a sibling of that directory called branches. Tags are expected to be another sibling of trunk called tags, but that is configurable.

这再次表明,克隆子目录 可能 违反这些假设,因为该子目录没有 trunkbranches 子文件夹。

作为变通方法,请考虑进行完整检查,然后将其拆分为子存储库(保留历史记录),如 this question 所示。如果你想继续与 svn 双向同步,这将需要你分两步完成,首先将所有更改从 subrepos 导入到 hg 镜像,然后将它们推送到 svn。