3

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

  • 能够使用“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。

4

1 回答 1

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

    • hg export将变更集(可能在钩子中)提示为补丁文件(尝试使用其他选项,我不知道,这可能很有用)
    • svn patch您的 WC 与上述点的补丁

另一方面,我建议阅读、研究、检查和评​​估 Mercurial 中的Subrepositories(但我建议从一开始就使用 GuestRepo 扩展,这是为了避免 Subrepos 中的一些缺点而创建的)。

这样您就不必更改工作流程,而只需在底层存储存储库结构:您不必为每个项目使用大型的整体存储库,而是使用一组较小的独立存储库,它们(薄)“超级存储库”组合到项目的存储库中(和subrepos 将提供模拟/在某种程度上/来自 SVN 世界的稀疏结帐和外部)

于 2013-04-02T04:51:40.917 回答