# gitk "parent information" in commit window

6 messages from 2005-08-07 to 2005-08-08. Participants: Linus Torvalds, Junio C Hamano, Paul Mackerras, A Large Angry SCM.
Thread: https://gitlist.dev/t/1448

## Linus Torvalds, 2005-08-07 20:58

Subject: gitk "parent information" in commit window
Message-ID: <Pine.LNX.4.58.0508071351150.3258@g5.osdl.org>
URL: https://gitlist.dev/e/Pine.LNX.4.58.0508071351150.3258%40g5.osdl.org

```

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>
---
[ Btw, the patch was generated against a tree that had Paul's hovering 
  patches merged. Junio, I don't think you've merged that yet, so this may 
  apply better to Paul's tree than to standard git. But I _think_ it will 
  apply cleanly to either one ]

diff --git a/gitk b/gitk
--- 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"
 

```

## Junio C Hamano, 2005-08-07 21:17

Subject: Re: gitk "parent information" in commit window
Message-ID: <7v4qa1v44e.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7v4qa1v44e.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <Pine.LNX.4.58.0508071351150.3258@g5.osdl.org>

```
Linus Torvalds <torvalds@osdl.org> writes:

> [ Btw, the patch was generated against a tree that had Paul's hovering 
>   patches merged. Junio, I don't think you've merged that yet, so this may 
>   apply better to Paul's tree than to standard git. But I _think_ it will 
>   apply cleanly to either one ]

Thanks.  Since Paul seems to be quite responsive, I'd prefer to
keep pulling from his tree.  I just pulled the hovering patches
from his tree and was about to push things out.

```

## Paul Mackerras, 2005-08-07 22:52

Subject: Re: gitk "parent information" in commit window
Message-ID: <17142.37044.108962.189983@cargo.ozlabs.ibm.com>
URL: https://gitlist.dev/e/17142.37044.108962.189983%40cargo.ozlabs.ibm.com
In-Reply-To: <Pine.LNX.4.58.0508071351150.3258@g5.osdl.org>

```
Linus Torvalds writes:

> This adds a useful "Parent:" line to the git commit information window.

Cool!  Applied and pushed out.

I have been thinking about adding dialog windows to allow the user to
select which repository and which range of commits they want to look at.
Do you think that would be useful for you?

Regards,
Paul.

```

## A Large Angry SCM, 2005-08-08 00:03

Subject: Re: gitk "parent information" in commit window
Message-ID: <42F6A139.1060209@gmail.com>
URL: https://gitlist.dev/e/42F6A139.1060209%40gmail.com
In-Reply-To: <17142.37044.108962.189983@cargo.ozlabs.ibm.com>

```
Paul Mackerras wrote:
...
> I have been thinking about adding dialog windows to allow the user to
> select which repository and which range of commits they want to look at.
> Do you think that would be useful for you?

Yes!

```

## Junio C Hamano, 2005-08-08 00:29

Subject: Re: gitk "parent information" in commit window
Message-ID: <7vfytlnue7.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vfytlnue7.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <17142.37044.108962.189983@cargo.ozlabs.ibm.com>

```
Paul Mackerras <paulus@samba.org> writes:

> Linus Torvalds writes:
>
>> This adds a useful "Parent:" line to the git commit information window.
>
> Cool!  Applied and pushed out.

Thanks.  Merged and pushed out.

> I have been thinking about adding dialog windows to allow the user to
> select which repository and which range of commits they want to look at.
> Do you think that would be useful for you?

"Which repository to look at" would be like restarting if you
need to lose history information, in which case it would not be
so useful at least for me (an extra command line option to limit
the range with specifying GIT_DIR environment variable would
work equally well).  If you can do that without losing history
when the new repository to look at is the same as the old one,
or similar to the old one, then that would be useful.

After starting up, without losing history information, if I can
tell it to re-read the refs, because I made some changes to the
repository while gitk was not looking, that would be very
useful.  But I hope your "switching repository" logic would do
exactly that when I tell it to switch to the same repository.

If there was an option, either runtime configurable or command
line, to cause gitk slurp not just refs/heads and refs/tags but
everything under refs/* recursively, that would help visualizing
the bisect status.  bisect creates bunch of commit object names
in refs/bisect.

If you can pop-up a transient window that shows the tag object
comments when I hover over a tag icon for 2 seconds, and remove
that transient window when stepping outside, that would be a
useful addition.  I do not currently see any way to inspect the
tag itself, not the commit that is pointed at by the tag.

```

## A Large Angry SCM, 2005-08-08 03:19

Subject: Re: gitk "parent information" in commit window
Message-ID: <42F6CF2F.9010507@gmail.com>
URL: https://gitlist.dev/e/42F6CF2F.9010507%40gmail.com
In-Reply-To: <Pine.LNX.4.58.0508071351150.3258@g5.osdl.org>

```
Linus Torvalds wrote:
> 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.

This new functionality is great except when it truncates the commit 
description needlessly.

When running gitk full-screen on a large display, I have a commit 
information window that is much wider than needed for the truncated 
parent information. Leaving me with a lot of whitespace that should be 
used for the commit descriptions.

On a related nit: some of the diffs I'm viewing have lines longer than 
the width of the commit information window and it's annoying that gitk 
wraps the line rather than providing horizontal scrolling.

How about implementing horizontal scrolling in the commit information 
window when the commit text or the diffs are wider than the window and 
not truncating the commit descriptions?

```
