Mercurial 查找自修订后未修改的文件

Mercurial find files that have not been modified since a revision

我正在尝试查找过去几年修改过的源文件列表。

这是我试图衡量的一个方面,试图帮助我们了解给定项目随时间的稳定性和变化量。

在 mercurial 中有什么方法可以识别自给定修订后未修改的文件吗?

张贴我自己的答案。

我将存储库两次克隆到新目录中。

然后将一个更新为当前版本,将一个更新为原始基线版本

hg update <rev>

然后使用 diff 命令查找相同的文件(不包括空格更改)

 diff -sqrbwB original current | grep "identical"

差异标志如下:

-s reports identical files (facilitating the grep for "identical")
-q brief report (don't need a detailed report of differences)
-r recursively follow directories
-b ignore space changes
-w ignore all space
-B ignore Blank lines

不确定 -b -w 和 -B 是否都是必需的,但它可以工作并输出尚未更改的文件列表。

问题中有些歧义,但可以使用 status (st) 命令来回答。例如,要根据版本 R 中的文件与 pwd 中的文件的比较来获得列表,您可以 运行:

hg st --rev R -cn

-c 选项等同于“--clean”(实际上意味着 "no change")。

将版本 R 中的文件与最近提交的文件进行比较:

hg st --rev R:-1 -cn

有很多方法可以指定 "R",例如初始提交为 0。