[PATCH] gitk "parent information" in commit window
authorLinus Torvalds <torvalds@osdl.org>
Sun, 7 Aug 2005 20:58:56 +0000 (13:58 -0700)
committerPaul Mackerras <paulus@samba.org>
Sun, 7 Aug 2005 22:40:24 +0000 (08:40 +1000)
This adds a useful "Parent:" line to the git commit information window.

It looks something like this (from the infamous octopus merge):

Author: Junio C Hamano <junkio@cox.net>  2005-05-05 16:16:54
Committer: Junio C Hamano <junkio@cox.net>  2005-05-05 16:16:54
Parent: fc54a9c30ccad3fde5890d2c0ca2e2acc0848fbc  (Update git-apply-patch-script ...)
Parent: 9e30dd7c0ecc9f10372f31539d0122db97418353  (Make git-prune-script executa ...)
Parent: c4b83e618f1df7d8ecc9392fa40e5bebccbe6b5a  (Do not write out new index if ...)
Parent: 660265909fc178581ef327076716dfd3550e6e7b  (diff-cache shows differences  ...)
Parent: b28858bf65d4fd6d8bb070865518ec43817fe7f3  (Update diff engine for symlin ...)

    Octopus merge of the following five patches.

      Update git-apply-patch-script for symbolic links.
      Make git-prune-script executable again.
      Do not write out new index if nothing has changed.
      diff-cache shows differences for unmerged paths without --cache.
      Update diff engine for symlinks stored in the cache.

Signed-off-by: Junio C Hamano <junkio@cox.net>
where all the parent commit ID's are clickable, because the new lines are
added as part of the "comment" string, and thus the regular clickability
thing will match them automatically.

I think this is good. And my random-tcl-monkey-skills are clearly getting
better (although it's perfectly possible that somebody who actually knows
what he is doing would have done things differently).

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>

diff --git a/gitk b/gitk
index e21d7a2..7a0d766 100755 (executable)
--- a/gitk
+++ b/gitk
@@ -1799,9 +1799,21 @@ proc selectline {l isnew} {
        $ctext insert end "\n"
-    $ctext insert end "\n"
     set commentstart [$ctext index "end - 1c"]
-    set comment [lindex $info 5]
+    set comment {}
+    foreach p $parents($id) {
+       set l "..."
+       if {[info exists commitinfo($p)]} {
+           set l [lindex $commitinfo($p) 0]
+           if {[string length $l] > 32} {
+               set l "[string range $l 0 28] ..."
+           }
+       }
+       append comment "Parent: $p  ($l)\n"
+    }
+    append comment "\n"
+    append comment [lindex $info 5]
     $ctext insert end $comment
     $ctext insert end "\n"