6

我正在寻找一种使用 TortoiseHg(或纯 hg,如果没有其他可能性)来定位对特定文件的所有更改的方法。

我试过使用修订集查询: merge() and file("path/to/filename.cs") 但这并没有让我得到我想要的东西。它返回一个空集。我认为这是因为merge()仅返回合并,并且file()仅(似乎)返回非合并,因此交集为空。

我也尝试过modifies(pattern),但这似乎与file(pattern)(在我看来file()是 and 的adds()并集modifies())并没有太大的不同。contains(pattern)根本不返回任何元素。

那么,是否有可能获得以任何方式修改了特定文件的变更集列表?

4

3 回答 3

4

看起来您遇到了“我的更改如何进入此分支”的问题。当您将变更集合并到分支中时,Mercurial 不会将其记录为变更。相反,它注意到合并的变更集现在是目标分支的一部分。合并将显示文件已修改的唯一时间是是否存在合并冲突,这会导致新的变更集。

查找是什么合并将变更集带入分支是一个两步过程。首先,您必须找到您感兴趣的变更发生的变更集。

 hg log -r "file('<PATTERN>')

获得该修订后,在目标分支中找到第一个后代变更集:

hg log -r "first(branch(<BRANCH>) and descendants(<REVISION>))"
于 2013-07-04T04:05:57.310 回答
0

hg log -r "branch(BRANCH) and file('PATTERN')"

Revset 也可以使用并输入到 THG Workbench 的 Filter Toolbar 中

于 2013-07-03T21:35:34.090 回答
0
hg log grep name_of_your_file

在查找导致给定文件更改的所有更改集方面对我有用吗?当然,如果你想要漂亮的东西:

thg log name_of_your_file
于 2013-07-04T09:12:25.940 回答