【问题标题】:Does anyone have a script to handle multiple hg repositories at once?有没有人有一个脚本可以一次处理多个 hg 存储库?
【发布时间】:2009-09-27 15:54:18
【问题描述】:

我有一个项目,它结合了多个 hg 存储库(不同的组件)来构建一个应用程序。我正在寻找一种跨平台工具来支持同时对多个存储库执行操作(例如标记、拉取、推送、提交等......)本质上,我正在寻找谷歌的“存储库”脚本为 Android 编写,但为 hg 而不是 git:

http://source.android.com/download/using-repo

我搜索了堆栈溢出,发现了这个:

mercurial windows batch file for pulling changes to multiple repositories

但它仍然有点手动和仅限 Windows。我知道编写脚本以将命令传递给存储库或尝试封装所有内容并不难,但我认为这可能是常见的事情,所以也许其他人已经有了解决方案。我想一种方法是将 repo 脚本移植到 hg(查找并用 hg 替换 git 对于简单的操作可能会走得很远)。

其他人在这种情况下会怎么做?

【问题讨论】:

    标签: mercurial repository


    【解决方案1】:

    一定要看看 Mercurial 中新的(在 1.3 版中)子存储库功能。它允许您拥有一个包含其他存储库的总体存储库。顶级状态包含一个文件,该文件指定子存储库的尖端哈希,因此您可以有效地指定包含所有从属存储库状态的单个哈希节点 ID。

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

    【讨论】:

    • 谢谢,我一定会留意的。不要认为我能够重组我们的存储库以使用“实验性”功能,所以我可能会花 10 分钟来编写一个快速脚本。
    • FWIW,subrepos 现在是非常标准的用法。
    【解决方案2】:

    在过去的一年里,我一直处于类似的情况,每天都在处理一个分布在 6 个存储库中的项目,并且负责大多数分支/合并等内容。

    在某个时候,我发现了一个简单的 bash 脚本,用于检查多个 SVN 存储库。我采用 Mercurial 并随着时间的推移对其进行了扩展。现在我无法回忆或 google 脚本的原始来源,所以很遗憾,我无法注明原作者(如果我稍后找到信息,我会在我的脚本中注明)。

    我的“hgall”脚本发布在 GitHub 上https://github.com/JKrag/hgall

    它是供我自己使用的,因此直接引用了我一直在使用的一些扩展,但这很容易被编辑掉。 (或者只是不要使用调用您尚未安装的扩展程序的命令)。

    该脚本记录在 README 中,包括我个人的“调整”,即让它(默认情况下)忽略以下划线开头的 repo,因为我将它们用作临时克隆来测试混乱的操作(例如大型合并)。

    我希望这个脚本对你们中的一些人有用 - 在过去的一年里它对我有很大的帮助。我们公司刚刚迁移到 Git,所以我可能不会在不久的将来进行很多更新,但可能有一天会移植到 Git....

    【讨论】:

      【解决方案3】:

      此外,Iain Lowe 有一个扩展程序 https://bitbucket.org/ilowe/multirepo/src,它可以管理多个存储库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-03
        • 2020-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多