在 git 中显示提交者日期而不是作者日期

Display commiter date in gitk instead of author date

我正在使用 gitk 浏览我的 git 存储库,我想在 gitk(在第三列)。

你能告诉我怎么做吗?

使用它来显示提交日期

git show -s --format=%ci <commit>

查看手册页了解其他格式的日期字符串

修改gitk。 (TCL脚本很大,修改方便。)

如果你查看最近版本的 gitk,你会发现:

proc drawcmittext {id row col} { 

6100行附近。大约72行左右你会发现:

    set date [lindex $commitinfo($id) 2]
    set date [formatdate $date]

没有进一步的代码可以更改 date,因此从这里开始,您只能使用 formatdatelindex 表达式(列表索引)的初始值所做的任何操作。

$commitinfo(基于查找提交 ID 的关联数组)字段是:

    set commitinfo($id) [list $headline $auname $audate \
                             $comname $comdate $comment $hasnote $diff]

([=17= 的最后两行],第 1730 行左右)。所以索引 2 是 $audate,这是解析的作者日期。提交者日期来自索引 4(索引 1 和 3 分别是作者和提交者)。

如果使用某些命令行开关,明显的变化将是 select 索引 4。 (制作一个动态更改值的 Tk 按钮也是可能的,但更难。)

torek 的解决方案作为 gitk 1.8.1.4-1.1.1 的补丁来显示提交者日期而不是作者日期:

--- /usr/bin/gitk       2013-02-26 15:44:18.000000000 +0100
+++ /usr/local/bin/gitk 2017-09-14 13:52:13.629947026 +0200
@@ -5963,7 +5963,7 @@
     }
     set headline [lindex $commitinfo($id) 0]
     set name [lindex $commitinfo($id) 1]
-    set date [lindex $commitinfo($id) 2]
+    set date [lindex $commitinfo($id) 4]
     set date [formatdate $date]
     set font mainfont
     set nfont mainfont

将此补丁保存在 gitk.patch 中并应用:

cp /usr/bin/gitk .
patch -p0 gitk gitk.patch
sudo mv gitk /usr/local/bin