2017-03-13 112 views
0

这是Sync svn and mercurial repo同步SVN文件夹善变回购

一个后续问题的解决方案很好地工作,但是我们想要做的是通过克隆一些特定的文件夹到一个善变的回购,打破了一棵树,所以我们修改命令

hg clone https://[email protected]/svn/MainRepo/SubFolder/Folder/ --insecure

这给了我们一个

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

任何帮助吗?

感谢您的阅读

+0

ssl未知协议是由于在mercurial.ini文件中有一个无效的代理配置。但是我们仍然需要能够选择一个特定的文件夹进行克隆 – Bernard

+0

你能否确认没有子文件夹的完全相同的命令,即'hg clone https:// username @ serverAddress/svn/MainRepo/--insecure',可以正常工作现在?请更新您的问题以显示现在实际发生的情况。 – alexis

回答

1

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子文件夹。

作为一个解决方法,考虑做一个完整的结帐,然后将其拆分成subrepos(保留历史),如this question所示。如果你想继续与svn进行双向同步,这将需要你分两步进行,首先将subrepos中的所有更改导入到hg镜像中,然后将这些更改推送到svn。