git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] provide better committer information to commit-tree.c
@ 2005-04-19  0:11 Greg KH
  2005-04-19  0:31 ` Linus Torvalds
  0 siblings, 1 reply; 10+ messages in thread
From: Greg KH @ 2005-04-19  0:11 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Git Mailing List

Here's a small patch to commit-tree.c that does two things:
	- allows the committer email address and name to be overridden
	  by environment variables (if you don't like the environment
	  variable names I've used (COMMIT_AUTHOR_NAME,
	  COMMIT_AUTHOR_EMAIL), feel free to change them.)
	- provide the proper domainname to the author/committer email
	  address (otherwise, my address was only showing up as from the
	  hostname.)

This allows people to set sane values for the commit names and email
addresses, preventing odd, private hostnames and domains from being
exposed to the world.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

--- a/commit-tree.c.orig	2005-04-18 17:02:50.000000000 -0700
+++ b/commit-tree.c	2005-04-18 17:03:19.000000000 -0700
@@ -284,8 +284,8 @@
 	unsigned char tree_sha1[20];
 	unsigned char parent_sha1[MAXPARENT][20];
 	unsigned char commit_sha1[20];
-	char *gecos, *realgecos;
-	char *email, realemail[1000];
+	char *gecos, *realgecos, *commitgecos;
+	char *email, *commitemail, realemail[1000];
 	char date[20], realdate[20];
 	char *audate;
 	char comment[1000];
@@ -317,20 +317,24 @@
 	memcpy(realemail, pw->pw_name, len);
 	realemail[len] = '@';
 	gethostname(realemail+len+1, sizeof(realemail)-len-1);
+	strcat(realemail, ".");
+	getdomainname(realemail+strlen(realemail), sizeof(realemail)-strlen(realemail)-1);
 	time(&now);
 	tm = localtime(&now);
 
 	strftime(realdate, sizeof(realdate), "%s %z", tm);
 	strcpy(date, realdate);
 
+	commitgecos = getenv("COMMIT_AUTHOR_NAME") ? : realgecos;
+	commitemail = getenv("COMMIT_AUTHOR_EMAIL") ? : realemail;
 	gecos = getenv("AUTHOR_NAME") ? : realgecos;
 	email = getenv("AUTHOR_EMAIL") ? : realemail;
 	audate = getenv("AUTHOR_DATE");
 	if (audate)
 		parse_rfc2822_date(audate, date, sizeof(date));
 
-	remove_special(gecos); remove_special(realgecos);
-	remove_special(email); remove_special(realemail);
+	remove_special(gecos); remove_special(realgecos); remove_special(commitgecos);
+	remove_special(email); remove_special(realemail); remove_special(commitemail);
 
 	init_buffer(&buffer, &size);
 	add_buffer(&buffer, &size, "tree %s\n", sha1_to_hex(tree_sha1));
@@ -345,7 +349,7 @@
 
 	/* Person/date information */
 	add_buffer(&buffer, &size, "author %s <%s> %s\n", gecos, email, date);
-	add_buffer(&buffer, &size, "committer %s <%s> %s\n\n", realgecos, realemail, realdate);
+	add_buffer(&buffer, &size, "committer %s <%s> %s\n\n", commitgecos, commitemail, realdate);
 
 	/* And add the comment */
 	while (fgets(comment, sizeof(comment), stdin) != NULL)

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2005-04-19  8:14 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-04-19  0:11 [PATCH] provide better committer information to commit-tree.c Greg KH
2005-04-19  0:31 ` Linus Torvalds
2005-04-19  0:45   ` Greg KH
2005-04-19  0:52     ` David Woodhouse
2005-04-19  1:12       ` Greg KH
2005-04-19  1:15         ` Petr Baudis
2005-04-19  1:20         ` David Woodhouse
2005-04-19  1:47     ` Chris Wedgwood
2005-04-19  2:51       ` Linus Torvalds
2005-04-19  8:18     ` Russell King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).