有没有办法查看目录中每个文件的最新Mercurial修订版?

时间:2011-12-01 17:51:37

标签: mercurial

对文件执行hg log时,仅列出经历更改的修订。我想看看目录中所有文件的最新版本是什么。 (在文件级别而不是行级别考虑hg blame。)

我原以为hg log -l 1 *可能会有效,但它只会显示所有文件的最新版本。

这是我想看到的那种输出:

> hg blame --files
foo: 15
bar: 2
baz: 15
README: 1

2 个答案:

答案 0 :(得分:2)

另一种方法是使用hg statushg log的组合,如下所示:

for FILE in $(hg status -nA); do
    hg log -l1 --template '{rev}\t' "$FILE"
    echo $FILE
done

答案 1 :(得分:1)

怀疑如果您想直接使用hg来执行此操作,则需要编写扩展程序(但我不是专家)。但如果您愿意使用脚本,那么这样的工作会不会起作用?

for x in *; do
    highest=`hg blame "$x" 2>/dev/null | cut -d : -f 1 | sort -nr | head -n1`
    if [ "$highest" ]; then echo "$x: $highest" ; fi
done

这里明显的缺点是这很慢。