【发布时间】:2013-03-05 19:53:33
【问题描述】:
从 emacs 中,我如何查看上次更改该行的提交的详细信息(例如提交消息)?
我已经安装了 magit。
【问题讨论】:
从 emacs 中,我如何查看上次更改该行的提交的详细信息(例如提交消息)?
我已经安装了 magit。
【问题讨论】:
这个特定的操作不需要使用 magit - vanilla emacs 可以做到。
(另外,因为它使用了 vc,所以它应该在 vc 支持的任何版本控制系统中都可以正常工作。)
首先,使用vc-annotate命令,绑定键序列C-x v g。
现在,重点应该是您感兴趣的提交 id。(如果没有,您可能需要使用 Cx 1 和/或 v 以便您可以看到哪一行是哪一行,以便导航到正确的行。)您现在可以使用 = 查看该文件的差异 - 如果您得到以“cannot diff from any revision previous...”开头的错误,这可能意味着此版本创建了文件(这可能是 emacs 中的错误)。
作者和日期已经在 vc-annotate 生成的 Annotate 缓冲区中可见。
要查看提交消息,请在 Annotate 缓冲区中按 l(字母,而不是数字 1)。要查看该版本的文件是什么样子,请在 Annotate 缓冲区或 vc-change-log 缓冲区中按 f。 p>
【讨论】:
a 是金钱行动——在改变之前表现出责备。节省了我很多时间。
vc-annotate 的输出对我来说比 magit-blame-mode 更有意义。
vc-annotate 的输出格式在很多方面都比magit-blame 的要好,但后者要快得多,这对我来说是一种摇摆不定的方式。
我建议使用magit-blame-mode (M-x magit-blame-mode)。与vc-annotate 相比,它以更好的方式提供信息,并且是标准 magit 发行版的一部分。您可能希望将其绑定到某个键盘组合以快速切换它。
在magit-blame-mode 中,使用 p 和 n 在上一个和下一个更改之间导航,并使用 RET 查看特定的差异提交。
【讨论】:
vc-annotate 输出(或任何传统的责备输出)远比这更具可读性;但有替代品总是好的。
vc-annotate的输出中浪费了太多的空间。
v 隐藏细节,你还有年龄颜色编码的责任。
magit-blame-mode 的输出在混合/交错代码和提交历史的方式上几乎不可读。有没有办法让它显示像vc-annotate(或git blame,或者实际上代码与注释分开的任何其他可读格式)这样的输出?
magit-blame-mode没有vc-annotate的主要有用特性,它的'A'(注释在当前行之前的修订)。所以这是另一个在这一点上更喜欢 vc-annotate 的原因,就像 magit 一样棒。