如何确定更改文件 X 的最后一次 Mercurial 提交?
How to determine the last Mercurial commit that changed file X?
给定 Mercurial 存储库的检出和文件名。如何确定更改该文件的最后一次提交?与 git 不同,必须小心处理分支。这里的预期语义是遵循分支的历史。分支从其他分支分支的地方,跟随父分支。
非解决方案:
显示来自未合并分支的提交
hg log -l 1 filename
如果创建分支后文件保持不变,则输出为空
hg log -l 1 -b . filename
可以说,这个问题突出了分支的误用,应该改用书签。不管怎样,现有的历史需要考虑分支。
-f
标志告诉 hg log
跟踪当前或选定变更集的历史记录,因此这应该找到文件的第一个变更而不查看不是直接祖先的变更集:
hg log -f -l 1 filename
给定 Mercurial 存储库的检出和文件名。如何确定更改该文件的最后一次提交?与 git 不同,必须小心处理分支。这里的预期语义是遵循分支的历史。分支从其他分支分支的地方,跟随父分支。
非解决方案:
显示来自未合并分支的提交
hg log -l 1 filename
如果创建分支后文件保持不变,则输出为空
hg log -l 1 -b . filename
可以说,这个问题突出了分支的误用,应该改用书签。不管怎样,现有的历史需要考虑分支。
-f
标志告诉 hg log
跟踪当前或选定变更集的历史记录,因此这应该找到文件的第一个变更而不查看不是直接祖先的变更集:
hg log -f -l 1 filename