查找已修改文件“X”的命名分支中的所有更改集(包括合并)

时间:2013-07-03 15:50:45

标签: mercurial tortoisehg

我正在寻找TortoiseHg的方法(如果没有其他可能性,则使用普通的hg)来查找特定文件的所有更改。

我尝试过使用修订版集查询: merge() and file("path/to/filename.cs") 但这并没有让我得到我正在寻找的东西。它返回一个空集。我假设这是因为merge()仅返回合并,而file()仅返回非合并,因此交集为空。

我也尝试了modifies(pattern),但与file(pattern)看起来并不完全不同(我认为file()adds()和{{1}的联合}})。 modifies()根本不会返回任何元素。

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

3 个答案:

答案 0 :(得分:4)

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

查找合并将变更集带入分支的步骤是一个两步过程。首先,您必须找到您感兴趣的更改所在的变更集。

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

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

hg log -r "first(branch(<BRANCH>) and descendants(<REVISION>))"

答案 1 :(得分:0)

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

也可以使用Revset并将其输入THG Workbench中的过滤器工具栏

答案 2 :(得分:0)

hg log grep name_of_your_file

对于我来说,找到导致对给定文件进行更改的所有更改集的方法。当然,如果你想要一些漂亮的东西:

thg log name_of_your_file