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

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 <[EMAIL PROTECTED]>

--- 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), 
        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(email); remove_special(realemail); 
        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)
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to