是否有可以构建的命令列出Mercurial存储库的所有子存储库?像git submodule
命令那样的东西? (我试图以编程方式处理它们。)
据我所知,当前最好的选择是编写一个处理.hgsub的解析器(处理各种可选部分,如[subpaths]
),这似乎不如依赖{{1}解析文件。但我找不到一个能做到这一点的命令。
有吗?
答案 0 :(得分:1)
您可以使用onsub
扩展程序。 Mercurial wiki中链接的存储库消失了,但我发现https://bitbucket.org/kvaster/onsub看起来很难维护。
我创建了一个带有两个子版本的迷你仓库,如下所示:
$ find . -type d -name '.hg'
.hg <== outer repo
nested/.hg <== subrepo
nested2/.hg <== subrepo
相应的.hgsub
非常简单:
nested = nested
nested2 = nested2
示例1:
$ hg --config extensions.onsub=~/src/onsub/onsub.py onsub --verbose "hg status"
executing 'hg status' in nested
executing 'hg status' in nested2
示例2:
$ hg --config extensions.onsub=~/src/onsub/onsub.py onsub "hg root"
/Users/hello/tmp/foo/nested
/Users/hello/tmp/foo/nested2
示例3:使用onsub
提供的环境变量:
$ hg --config extensions.onsub=~/src/onsub/onsub.py onsub "echo; set | grep HG_"
HG_REPO=/Users/hello/tmp/foo
HG_SUBPATH=nested
HG_SUBURL=nested
HG_REPO=/Users/hello/tmp/foo
HG_SUBPATH=nested2
HG_SUBURL=nested2
像往常一样,您可以获得以下帮助:
hg --config extensions.onsub=~/src/onsub/onsub.py help onsub
命令行上的--config ...
显示如何在不修改$HOME/.hgrc
的情况下启用扩展程序。
答案 1 :(得分:0)
而不是解析.hgsub而不是解析.hgsubstate - 它保证每个子存储库有一行:
for i in $(cat .hgsubstate | cut -d\ -f2); do echo $i; done