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

rei*_*den 5 mercurial tortoisehg

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

我尝试过使用修订版集查询: merge() and file("path/to/filename.cs") 但这并没有让我得到我想要的东西.它返回一个空集.我假设这是因为merge()只返回合并,并且file()只有(看起来)返回非合并,因此交集是空的.

我也试过modifies(pattern),但不会出现从足够不同file(pattern)(在我看来就像file()是联盟adds()modifies()).contains(pattern)根本不会返回任何元素.

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

Aar*_*sen 4

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

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

 hg log -r "file('<PATTERN>')
Run Code Online (Sandbox Code Playgroud)

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

hg log -r "first(branch(<BRANCH>) and descendants(<REVISION>))"
Run Code Online (Sandbox Code Playgroud)