如何确定更改文件 X 的最后一次 Mercurial 提交?

How to determine the last Mercurial commit that changed file X?

给定 Mercurial 存储库的检出和文件名。如何确定更改该文件的最后一次提交?与 git 不同,必须小心处理分支。这里的预期语义是遵循分支的历史。分支从其他分支分支的地方,跟随父分支。

非解决方案:

可以说,这个问题突出了分支的误用,应该改用书签。不管怎样,现有的历史需要考虑分支。

-f 标志告诉 hg log 跟踪当前或选定变更集的历史记录,因此这应该找到文件的第一个变更而不查看不是直接祖先的变更集:

hg log -f -l 1 filename