http.receivepack==false && authenticated => Service not enabled
From: Robert <hidden>
Date: 2016-06-15 22:51:13
Even a authenticated user can not push when http.receivepack set to false. when git config http.receivepack false svc->enabled was set to 0 not -1 so we should initialize with 0 not -1
--- http-backend.c Thu May 5 01:16:14 2011
+++ http-backend.c Wed May 11 09:57:52 2011@@ -23,7 +23,7 @@ static struct rpc_service rpc_service[] = { { "upload-pack", "uploadpack", 1 }, - { "receive-pack", "receivepack", -1 }, + { "receive-pack", "receivepack", 0 }, }; static struct string_list *get_parameters(void)
@@ -260,8 +260,8 @@ if (!svc) forbidden("Unsupported service: '%s'", name); - if (svc->enabled < 0) { const char *user = getenv("REMOTE_USER"); + if (!svc->enabled) { svc->enabled = (user && *user) ? 1 : 0; } if (!svc->enabled)