我正在寻找TortoiseHg的方法(如果没有其他可能性,则使用普通的hg)来查找特定文件的所有更改。
我尝试过使用修订版集查询:
merge() and file("path/to/filename.cs")
但这并没有让我得到我正在寻找的东西。它返回一个空集。我假设这是因为merge()
仅返回合并,而file()
仅返回非合并,因此交集为空。
我也尝试了modifies(pattern)
,但与file(pattern)
看起来并不完全不同(我认为file()
是adds()
和{{1}的联合}})。 modifies()
根本不会返回任何元素。
那么,是否有可能获得一个特定文件以任何方式被修改的变更集列表?
答案 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