只读svn访问hg存储库

时间:2013-04-01 18:49:42

标签: svn mercurial

Hg很好,但是,我们(开发团队)确实缺少一些Svn-Features。最重要的是:

  • 能够使用“svn externals”将(部分)项目提取到其他项目的子目录中,并且
  • 只能检出存储库的子目录(主要与第一个问题相结合)。

这是两个相当紧迫的问题,而Hg相对于Svn的好处似乎越来越多,是一个很好的功能。这是因为我喜欢适合我们(已建立和成功)工作流程的工具,而不是将我们的工作流程更改为工具的范例。

因此,一个想法是维护我们的hg存储库的只读svn存储库克隆。经过多次谷歌搜索后,我发现bitbucket实际上正在尝试这样的事情:

https://confluence.atlassian.com/display/BITBUCKET/Using+Subversion+to+Access+a+Bitbucket+Repository

(似乎,它不能很好地工作)。

我对通过svn提交存储库不感兴趣,也不需要通过svn提供完整的历史记录。我只需要提供默认提示。

最重要的存储库目前托管在SourceForge上。如果BitBucket中的这个功能一直在工作,我不介意切换主机。但是,我不想维护自己的服务器(我已经遇到了足够的问题)。

因此,我的问题是:

有没有人知道通过Subversion访问托管Hg存储库的工作解决方案?

令人遗憾的是,如果没有,我们实际上可能会迁移回svn。

1 个答案:

答案 0 :(得分:1)

  1. AFAIK,没有这样的(工作)桥梁 - 在hg和svn之间的核心存在许多架构差异,这使得“不可能的任务”(来自我的POV)
  2. 您可以考虑使用手工制作的桥梁进行镜像,从Mercurial到Subversion(主要取决于您的数据),必须

    • hg export提示更改集(可能是挂钩)到补丁文件(尝试其他选项,我不知道,这可能有用)
    • svn patch你的WC带有上述补丁
  3. 另一方面,我建议您在Mercurial中阅读,研究,检查和评估Subrepositories(但我建议您从头开始使用 GuestRepo extension,是为了avoid some shortcomings in Subrepos)而创建的。

    这种方式你不必改变工作流程,但只需要在引擎盖下使用存储库结构:而不是为每个项目使用大型单片回购,而是使用一组较小的独立回购,其中(瘦)“superrepo”结合到项目中存储库(和subrepos将提供仿真/ 在某种程度上 /来自SVN世界的稀疏检出和外部)