hg传入显示存储库根路径

时间:2016-03-30 08:57:24

标签: mercurial

执行Mercurial命令: hg in -q

生成如下列表。 123:b64543 124:ef312a

此命令将在多个repo上执行。我们如何将存储库路径附加到上面的输出以识别回购?执行命令'hg root'为我们提供了这些信息,但我们只想知道repo有新变更集的路径。我们查看了模板,但找不到能给我们正确信息的变量。

提供任何帮助。

2 个答案:

答案 0 :(得分:1)

追加 hg incoming根路径的最简单方法是将两个命令与&&连接起来(假设您使用的是Unix):

hg in -q && hg root

这是有效的,因为如果有传入的更改,hg incoming将返回0,否则返回1(如果有错误,则返回非零值)。

对于更复杂的输出操作,sed通常可以这样做。例如,以下命令根目录添加到输出:

hg in -q | sed -e "1i$(hg root)"

答案 1 :(得分:0)

我会使用一点bash并在模板中调用hg root。假设所有目录都是当前目录的子目录(否则以不同的方式给出目录列表):

for i in *; do [ -d $i/.hg ] && hg incoming -R$i --template "$(hg root -R$i) {rev}:{node|short}\n"; done