【问题标题】:Can I emulate svn:externals using mercurial?我可以使用 mercurial 模拟 svn:externals 吗?
【发布时间】:2008-10-20 04:31:07
【问题描述】:

我们正在考虑从 SVN 迁移到 Mercurial,但遇到了绊脚石。

我们目前使用svn:externals 自动将一组通用库拉入工作目录。我在 Mercurial 中找不到对此类内容的支持。

有没有办法使用 Mercurial 自动执行此操作,还是我需要在构建过程中伪造它?

【问题讨论】:

  • 这个问题最好的 hg 扩展可能很有用。我非常明确地问它来解决这个 svn:externals 问题。 [什么是最好的和必备的 hg / mercurial 扩展?] (stackoverflow.com/questions/1869040/…)

标签: svn mercurial svn-externals externals


【解决方案1】:

Forest Extension 的功能似乎正在核心 Mercurial 中实现(从 1.3 开始):

https://www.mercurial-scm.org/wiki/Subrepository.

目前标记为“实验性”,但可能会成为处理 svn:external 类型功能的途径,从 v1.4 开始。

【讨论】:

    【解决方案2】:

    仅使用 mercurial 没有好办法。其他地方提到的森林扩展会导致现在修复的更多问题。大多数人只是使用一个大型 repo 并将其所有组件包含在 repo 中,然后让他们的构建脚本下载并使用 3rd 方库——如果他们是 Java-heads,则使用 maven。

    简短回答“在你的构建过程中伪造它”。

    更新:

    在 Mercurial 1.3 中,添加了新的子存储库功能。它就像旧的森林扩展,但以全新的代码开始。

    Subrepos 被视为“不得已的功能”。

    【讨论】:

    • 嗨。我不清楚“大多数人只是使用大型回购并将其所有组件包含在回购中”。这将如何工作?假设您有 project1 和 project2 都使用 component1 和 component2,您将如何使用 Mercurial 一次性“签出” project1?
    • 将 project1、project2、component1 和 component2 全部放在一个 repo 中,并一次将它们全部检查出来。也就是说,我正在编辑我的答案以显示 1.3 中的新 NestedRepositories 功能。
    • 我相信嵌套存储库功能在 1.5 中得到了进一步改进
    • 是的,他们甚至从 wiki 页面中删除了 beta 警告。
    【解决方案3】:

    你试过Deps Extension吗?

    它不是 Mercurial 的一部分,但似乎模仿了 svn:externals 功能

    【讨论】:

      【解决方案4】:

      试试 Mercurial 的 Forest Extension

      【讨论】:

      • 当心林扩展。它没有保持最新状态,仅适用于旧版本的 Mercurial。它已经失去了大多数 Mercurial 人的青睐,所以我认为它不会在未来被拉动。
      猜你喜欢
      • 1970-01-01
      • 2011-08-09
      • 2014-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 2011-02-05
      相关资源
      最近更新 更多