threads / discuss / 1811

RE: getting a list of changes I commited

Subject: RE: getting a list of changes I commited

## tl;dr

2 messages between Sep 15, 2005 and Sep 15, 2005.

replies: 1people: 2as markdown or json

Luck, Tony· Sep 15, 2005, 19:21 UTC · lore
>Why not just _also_ limit it by what is already merged in my tree?

I can add the "^linus", but I think that with my workflow it will never make a difference. Any commits that got into your tree with a committer line by me will already be in my "oldhead" (how else did you get them?). So "^oldhead ^linus" should always be identical to "^oldhead".

>This is what "--header" (and it's zero termination) is 
>designed for:

Great ... I suspected that everything I needed was already there (after all, all GIT problems are solvable with the right arguments to git-rev-list!)

Show 6 quoted lines
>	git-rev-list --header --no-merges newhead ^oldhead |
>		grep -z "committer .*tony\.luck"
>
>and it will give a nice NUL-terminated output list of just 
>your commits. 
>No complex script necessary.

But "git-shortlog" doesn't like the output from this, so I need a script (or another tip on arguments to git commands).

>Also, the "grep the committer" approach fundamentally doesn't
>work if you ever plan on having sub-lieutenants that work with you and
>that you use git to merge with.
Oh happy day when I have sub-lieutenants :-)
-Tony
Linus Torvalds· Sep 15, 2005, 19:54 UTC · re: Luck, Tony · lore
On Thu, 15 Sep 2005, Luck, Tony wrote:
Show 6 quoted lines
> 
> I can add the "^linus", but I think that with my workflow it
> will never make a difference.  Any commits that got into your
> tree with a committer line by me will already be in my "oldhead"
> (how else did you get them?).  So "^oldhead ^linus" should always
> be identical to "^oldhead".
No. "oldhead" has to be the point where you did the last email thing.

So any time you merge from me, next time your email cron-job (or whatever) hits, ^linus _will_ make a difference. Without it, you'd email out all the stuff that came through my tree.

> Great ... I suspected that everything I needed was already there
> (after all, all GIT problems are solvable with the right arguments to
> git-rev-list!)
Good man.
> But "git-shortlog" doesn't like the output from this, so I need
> a script (or another tip on arguments to git commands).
Ehh. This is getting ugly, but hey, that's my middle name.
	git-rev-list --header newhead ^oldhead |
		grep -z "committer .*tony\.luck" |
		tr '\0' '\n' |
		git-shortlog

and btw, this depends on "git-shortlog" also understanding non-pretty log messages, with a patch like below.

Junio?
		Linus "ugly" Torvalds
---
Subject: Teach git-shortlog about raw log format too

This teaches "git-shortlog" to understand the non-prettified author format too, so you can use it with "--pretty=raw" or "--header" output too.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
---
diff --git a/git-shortlog.perl b/git-shortlog.perl
--- a/git-shortlog.perl
+++ b/git-shortlog.perl
@@ -108,7 +108,7 @@ sub changelog_input {
 		if ($pstate == 1) {
 			my ($email);
 
-			next unless /^Author: (.*)<(.*)>.*$/;
+			next unless /^Author: (.*)<(.*)>.*$/ || /^author (.*)<(.*)>.*$/;
 	
 			$n_records++;
 	

← back to recent threads