On Thu, Mar 29, 2012 at 06:22:30PM -0400, Jeff King wrote: > I think an even better thing would be for http-backend to leave > GIT_COMMITTER_* alone if it exists; that is the usual well-known > interface for setting such things. And then you could specify a > detailed committer name and email if you want, or leave them blank to > pull from $REMOTE_USER as we do now. As it is now, even if you specify > GIT_COMMITTER_EMAIL, it gets overwritten with > "$REMOTE_USER@http.$REMOTE_ADDR". That patch would look something like this: --- diff --git a/http-backend.c b/http-backend.c index 869d515..aa892e6 100644 --- a/http-backend.c +++ b/http-backend.c @@ -318,7 +318,7 @@ static void run_service(const char **argv) const char *user = getenv("REMOTE_USER"); const char *host = getenv("REMOTE_ADDR"); char *env[3]; - struct strbuf buf = STRBUF_INIT; + int num_env = 0; int gzipped_request = 0; struct child_process cld; @@ -332,13 +332,17 @@ static void run_service(const char **argv) if (!host || !*host) host = "(none)"; - memset(&env, 0, sizeof(env)); - strbuf_addf(&buf, "GIT_COMMITTER_NAME=%s", user); - env[0] = strbuf_detach(&buf, NULL); - - strbuf_addf(&buf, "GIT_COMMITTER_EMAIL=%s@http.%s", user, host); - env[1] = strbuf_detach(&buf, NULL); - env[2] = NULL; + if (!getenv("GIT_COMMITTER_NAME")) { + struct strbuf buf = STRBUF_INIT; + strbuf_addf(&buf, "GIT_COMMITTER_NAME=%s", user); + env[num_env++] = strbuf_detach(&buf, NULL); + } + if (!getenv("GIT_COMMITTER_EMAIL")) { + struct strbuf buf = STRBUF_INIT; + strbuf_addf(&buf, "GIT_COMMITTER_EMAIL=%s@http.%s", user, host); + env[num_env++] = strbuf_detach(&buf, NULL); + } + env[num_env] = NULL; memset(&cld, 0, sizeof(cld)); cld.argv = argv; @@ -359,7 +363,6 @@ static void run_service(const char **argv) exit(1); free(env[0]); free(env[1]); - strbuf_release(&buf); } static int show_text_ref(const char *name, const unsigned char *sha1, -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html