生成 hg 版本之间更改了哪些文件的列表

我希望生成一个列表,列出在 Mercurial 的给定目录中的两个修订版本之间更改了哪些文件。

特别是,我对 什么改变不感兴趣,但是 哪些文件在那个目录中改变了。

例如,假设在 thenotherthen之间,只有2个文件发生了变化:

>hg hypothetical-command -r then:otherthen
foo.baz
bar.baz
>

假设的命令是什么?我试过 diff 和 log,但我不知道如何说服他们这样做: 要么我得到补丁(diff) ,要么我得到整个 repo (log)。

35730 次浏览
hg status --rev x:y

其中 xy是所需的修订号(或标记或分支名称)。

如果您在 Windows 中使用终端,请添加 hg status --rev x:y> your-file.txt以将列表保存到文件中。

Status 是您需要的。

但是,根据你所说的“两次修订之间”的意思,你也可以考虑使用“ X: : y”(DAG-有向无环图)范围。

给定并行变更集,

1--2---4 ——3

hg status --rev 1:4将返回(1,2,3,4) , 也就是说,根据本地的数字 牧师,在端点之间的任何内容。这可能(而且很可能)在其他(尽管相关)存储库中返回不同的结果!

hg status --rev 1::4将返回(1,2,4) , 即端点,以及所有变更集,它们是“1”的 后代和“4”的 祖先

后一种情况 x: : y 在实际应用程序中通常更有用,这是通过 TortoiseHg Visual Diff 得到的结果。


> 汞帮助重置:

“ x: : y” DAG 范围,意味着所有作为 x 和 Y 的祖先,包括 x 和 y 本身。如果第一个端点是 如果把第二个留下,这相当于“祖先(y)” 等同「后代(x)」。