threads / discuss / 1448

gitk "parent information" in commit window

Subject: gitk "parent information" in commit window

## tl;dr

6 messages between Aug 7, 2005 and Aug 8, 2005.

replies: 5people: 4as markdown or json

Linus Torvalds· Aug 7, 2005, 20:58 UTC · lore
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· Aug 7, 2005, 21:17 UTC · re: Linus Torvalds · lore

Re: gitk "parent information" in commit window

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· Aug 7, 2005, 22:52 UTC · re: Linus Torvalds · lore

Re: gitk "parent information" in commit window

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· Aug 8, 2005, 00:03 UTC · re: Paul Mackerras · lore

Re: gitk "parent information" in commit window

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· Aug 8, 2005, 00:29 UTC · re: Paul Mackerras · lore

Re: gitk "parent information" in commit window

Paul Mackerras <paulus@samba.org> writes:
Show 5 quoted lines
> 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· Aug 8, 2005, 03:19 UTC · re: Linus Torvalds · lore

Re: gitk "parent information" in commit window

Linus Torvalds wrote:
Show 25 quoted lines
> 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?

← back to recent threads