Mercurial - hg 命令行列出特定版本的所有文件

Mercurial - hg command line to list all files from a specific rev

我是 mercurial 的新用户,我对我的项目有特定的需求。

我想知道是否有一种简单的方法来列出项目版本中的每个文件,并为每个文件获取还原版本。

例如:

rev 100
-toto.c rev 3
-toto.h rev 50
-tata.c rev 100

如果有人有想法,请提前致谢:)

Hg 中的文件没有关联的特定修订号 ("the most recent revision in which this file was changed") 一个文件在不同的分支中可以有多个"most recent versions"。

此命令列出特定修订版中的所有文件:

hg Manifest

hg 清单 [-r REV]

输出项目清单的当前或给定修订

manifest 和 log 是我在批处理文件中使用的两个命令,但我必须做一些测试,因为根据我的理解有一个问题:

rev 是 10,在此 rev 中有一个文件 test.c,它已在 rev 5 和 10 中更改。如果我在其上应用清单和日志命令,我将在 test.c我的文件列表和 test.c 的 rev 将为 10。 问题是,如果我理解得足够好,当我向清单询问 rev5 时,我的文件列表中也会有 test.c,但是当我对其应用日志时,它只会给我最新版本那个文件...所以rev10。 即使在第 5 版我的文件有一个最旧的版本...... 我今天会花点时间做一些测试:)

感谢您的建议

您可以结合清单和日志来获取您声明的列表:

for i in `hg ma`; do hg log -l1 $i --template="$i: {rev}\n"; done

它将列出在当前签出的修订版中找到的每个文件的最新更改。如果您想要在存储库中找到的所有文件(即使它们不再存在),您可以为清单提供 --all 标志。也许添加 --follow 和 --removed 到日志。