在 Mercurial 中查找代码行的作者

我如何找出谁对特定的代码行负责?我知道行号和文件名,但是我希望 Mercurial 能够告诉我那一行代码的作者。有命令吗?

42106 次浏览

如果您正在使用 TortoiseHG

hgtk annotate <filename>

或者在日志中找到该文件,右键单击它并选择“ Annotate file”

在命令行上,您希望使用 hg annotate -u(-u可以与 -n组合以获得本地修订号,这可能会很有用)。有关更多选项,请检查 hg help anno

我是 "svn blame"的粉丝,所以我在我的 ~/.hgrc中加入了:

[alias]
blame = annotate --user --number

所以我可以输入 "hg blame"; -)

我在 Tortoise Workbench 中找了很久; 感谢@artemb 和@Steve Pitchers 为我指明了正确的方向。我还是花了点时间才发现。

enter image description here

在 tortoisehg 注释窗口中,有一个新的上下文菜单来启用此功能。

请参阅 href = “ https://bitbucket. org/tortoisehg/thg/questions/1861/annotate-window-annotate-with-author”rel = “ noReferrer”> https://bitbucket.org/tortoisehg/thg/issues/1861/annotate-window-annotate-with-authors enter image description here

在命令行上,您可以使用 hg fault 或 hg 注释。

$ hg blame -u -c -l Filename


-u --user                list the author (long with -v)
-c --changeset           list the changeset
-l --line-number         show line number at the first appearance

你也可以试试:

hg blame <file name> | grep -A10 -B10 "<piece of code from the line of interest>"

It will show who made the change to the line, including 10 lines above and 10 lines below the line you are interested in.