Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial hg命令列出子存储库_Mercurial - Fatal编程技术网

Mercurial hg命令列出子存储库

Mercurial hg命令列出子存储库,mercurial,Mercurial,是否有一个命令可以用来列出Mercurial存储库的所有子存储库?类似于git子模块命令的功能?(我正在尝试以编程方式处理它们。) 据我所知,目前最好的选择是编写一个处理.hgsub(处理各种可选部分,如[subpath])的解析器,这似乎比依赖hg解析文件要差得多。但是我找不到一个命令来做这件事 有吗?您可以使用onsub扩展名。数据库中链接的存储库不见了,但我找到了看起来保持不变的存储库 我创建了一个包含两个子回购的迷你回购,如下所示: $ find . -type d -name '.hg

是否有一个命令可以用来列出Mercurial存储库的所有子存储库?类似于
git子模块
命令的功能?(我正在尝试以编程方式处理它们。)

据我所知,目前最好的选择是编写一个处理.hgsub(处理各种可选部分,如
[subpath]
)的解析器,这似乎比依赖
hg
解析文件要差得多。但是我找不到一个命令来做这件事


有吗?

您可以使用
onsub
扩展名。数据库中链接的存储库不见了,但我找到了看起来保持不变的存储库

我创建了一个包含两个子回购的迷你回购,如下所示:

$ find . -type d -name '.hg'
.hg              <== outer repo
nested/.hg       <== subrepo
nested2/.hg      <== subrepo
例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:使用Sub提供的环境变量:

$ 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

而不是解析.hgsub我将解析.hgsubstate-保证每个子存储库有一行:

for i in $(cat .hgsubstate | cut -d\  -f2); do echo $i; done

您好,您检查了这两个答案了吗?
for i in $(cat .hgsubstate | cut -d\  -f2); do echo $i; done