【问题标题】:read-only svn access to hg repository对 hg 存储库的只读 svn 访问
【发布时间】:2013-04-01 18:49:41
【问题描述】:

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。

【问题讨论】:

    标签: svn mercurial


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

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

    另一方面,我建议阅读、学习、检查和评​​估 Mercurial 中的Subrepositories(但我建议从头开始使用GuestRepo extension,它是按顺序创建的到avoid some shortcomings in Subrepos)。

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

    【讨论】:

    • 感谢您的回答。我希望这样一座手工制作的桥梁已经存在。子存储库(或 GuestRepos)似乎是一种可能性,但是,我不确定现在分解现有的存储库是否可行。有使用子存储库的经验吗?
    • @3of4 - “有使用子存储库的经验吗?”好吧,简而言之 - 它可以工作,但不要期望与外部和外部透明度 100% 相似:某些命令需要 -s 选项显式地用于 subrepo。并且 guestrepo 比 vanilla subrepo 稍微更接近外部环境
    • 谢谢!我会调查的。
    猜你喜欢
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 2021-11-13
    • 1970-01-01
    • 2019-02-06
    相关资源
    最近更新 更多