有没有人有一个脚本一次处理多个hg存储库?

时间:2009-09-27 15:54:18

标签: mercurial repository

我有一个项目,它结合了多个hg存储库(不同的组件)来构建单个应用程序。我正在寻找一个跨平台的工具来支持同时对多个repos执行操作(例如标签,拉,推,提交等......)基本上,我正在寻找Google的'repo'脚本为Android写的,但对于hg而不是git:

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

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

mercurial windows batch file for pulling changes to multiple repositories

但它仍然只是手动和Windows。我知道 难以编写脚本来将命令传递给repos或尝试封装所有内容,但认为这可能是常见的事情,因此其他人已经有了解决方案。我想一种方法是将repo脚本移植到hg(使用hg查找和替换git对于简单操作来说可能会相当远)。

其他人在这种情况下做了什么?

3 个答案:

答案 0 :(得分:5)

绝对查看Mercurial中的新(在版本1.3中)子存储库功能。它允许您拥有包含其他存储库的总体存储库。顶级的状态包括指定子回购提示的散列的文件,因此您可以有效地指定包含所有从属回购的状态的单个散列节点ID。

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

答案 1 :(得分:1)

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

在某些时候,我找到了一个简单的bash脚本来检查多个SVN repo。我将它采用给Mercurial并随着时间的推移而延长。现在我不记得或谷歌脚本的原始来源,所以我不幸不能归功于原作者(如果我以后找到信息,将在我的脚本中归功于。)

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

它是为我自己使用的,因此直接引用了我一直使用的一些扩展,但这可以很容易地编辑出来。 (或者只是不要使用调用你尚未安装的扩展名的命令。)

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

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

答案 2 :(得分:0)

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