Mercurial 有人有一个脚本可以同时处理多个hg存储库吗?

Mercurial 有人有一个脚本可以同时处理多个hg存储库吗?,mercurial,repository,Mercurial,Repository,我有一个项目,它将多个hg存储库(不同的组件)结合起来,以构建一个应用程序。我正在寻找一个跨平台的工具来支持在多个回购协议上同时执行操作(例如,标记、拉动、推送、提交等)。本质上,我正在寻找谷歌为Android编写的“回购”脚本,但针对hg而非git: 我搜索了堆栈溢出,发现了以下内容: 但它仍然是一个有点手动和windows的唯一。我知道编写脚本向repo传递命令或尝试封装所有内容并不难,但我认为这可能是一件常见的事情,因此其他人可能已经有了解决方案。我认为一种方法是将repo脚本移植到h

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

我搜索了堆栈溢出,发现了以下内容:

但它仍然是一个有点手动和windows的唯一。我知道编写脚本向repo传递命令或尝试封装所有内容并不难,但我认为这可能是一件常见的事情,因此其他人可能已经有了解决方案。我认为一种方法是将repo脚本移植到hg(对于简单的操作来说,用hg查找并替换git可能会有很大帮助)


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

请务必查看Mercurial中的新(1.3版)子存储库功能。它允许您拥有一个包含其他存储库的总体存储库。顶层的状态包括一个文件,该文件指定子repo的顶端的散列,因此您可以有效地指定一个散列节点id,该id包含所有下级repo的状态


此外,Iain Lowe有一个可以管理多个存储库的扩展。

过去一年中,我一直处于类似的场景中,每天处理一个分布在6个存储库中的项目,并且负责大多数分支/合并工作等

在某个时候,我发现了一个简单的bash脚本,用于检查多个SVN repo。我将其应用于Mercurial,并随着时间的推移进行了扩展。现在我无法回忆或用谷歌搜索脚本的原始来源,所以很遗憾,我不能相信原始作者(如果我以后找到信息,我会相信我的脚本)

我的“hgall”脚本发布在GitHub上的

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

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


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

谢谢,我一定会关注它的。我想我还不能重新构造我们的回购协议来使用“实验性”功能,所以我可能会花10分钟来编写一个快速脚本。FWIW,subrepo现在是非常标准的用法。