{"thread":{"id":"37885","subject":"smart http push setup/egit win7","startedAt":"2014-11-05T19:11:29Z","lastAt":"2014-11-06T05:40:35Z","messageCount":2,"participants":["Jonathan","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"251415","messageId":"1743053007.847058.1415214689002.JavaMail.yahoo@jws106105.mail.bf1.yahoo.com","threadId":"37885","inReplyTo":null,"subject":"smart http push setup/egit win7","fromName":"Jonathan","fromEmail":"xvakon@rocketmail.com","sentAt":"2014-11-05T19:11:29Z","receivedAt":"2014-11-05T19:11:29Z","isPatch":false,"sender":{"key":"xvakon@rocketmail.com","avatar":null},"body":"This is yet another smart http thread. I must have read dozens of threads and articles about setting this up but everyone seems to do it a little differently so I can't tell what's right and what's not. First up, the environment, which is the same for both server and test client...\n\nGit 1.9.4\nEclipse Kepler SR2 with Egit\nWindows 7\nServer running Apache 2.2 with a bare repo\n\nThe client can connect to and successfully fetch the repo from the server over https. However, when trying to push egit gives the error \"remote does not support http push.\" When attempting a push via bash, I get \"return code 22 - fatal: git-http-push failed.\"\n\nNote that this server is also serving other apps out via https, hence the other seemingly unrelated httpd entries. Eventually I will be implementing PKI authentication for read/write access but I will cross that bridge when I get to it. Also, ssh is not an option and neither is running it over plain text http so please don't bother trying to convice me to use them. Anyway, here is the httpd.conf. Forgive me for having to sanitize some of it.\n\nServerRoot \"C:/progroot/servers/myserver\"\nServerSignature Off\nServerTokens Prod\nPidFile logs/httpsd.pid\nTimeout 300\nKeepAlive On\nMaxKeepAliveRequests 100\nKeepAliveTimeout 15\nTraceEnable off\nLoadModule alias_module         \"C:/progroot/Apache2.2/modules/mod_alias.so\"\nLoadModule auth_basic_module  \"C:/progroot/Apache2.2/modules/mod_auth_basic.so\"\nLoadModule auth_digest_module \"C:/progroot/Apache2.2/modules/mod_auth_digest.so\"\nLoadModule authn_file_module \"C:/progroot/Apache2.2/modules/mod_authn_file.so\"\nLoadModule authz_host_module  \"C:/progroot/Apache2.2/modules/mod_authz_host.so\"\nLoadModule authz_user_module \"C:/progroot/Apache2.2/modules/mod_authz_user.so\"\nLoadModule autoindex_module     \"C:/progroot/Apache2.2/modules/mod_autoindex.so\"\nLoadModule dir_module           \"C:/progroot/Apache2.2/modules/mod_dir.so\"\nLoadModule expires_module       \"C:/progroot/Apache2.2/modules/mod_expires.so\"\nLoadModule headers_module       \"C:/progroot/Apache2.2/modules/mod_headers.so\"\nLoadModule include_module       \"C:/progroot/Apache2.2/modules/mod_include.so\"\nLoadModule log_config_module    \"C:/progroot/Apache2.2/modules/mod_log_config.so\"\nLoadModule mime_module          \"C:/progroot/Apache2.2/modules/mod_mime.so\"\nLoadModule negotiation_module   \"C:/progroot/Apache2.2/modules/mod_negotiation.so\"\nLoadModule setenvif_module      \"C:/progroot/Apache2.2/modules/mod_setenvif.so\"\nLoadModule jk_module            \"C:/progroot/Apache2.2/modules/mod_jk.so\"\nLoadModule ssl_module    \"C:/progroot/Apache2.2/modules/mod_ssl.so\"\nLoadModule cgi_module    \"C:/progroot/Apache2.2/modules/mod_cgi.so\"\nLoadModule env_module    \"C:/progroot/Apache2.2/modules/mod_env.so\"\nThreadsPerChild     300\nMaxRequestsPerChild 0\nMaxMemFree  512\nEnableSendfile   Off\nEnableMMAP   Off\nUseCanonicalName Off\nTypesConfig conf/mime.types\nDefaultType text/plain\nHostnameLookups Off\n##### Languages ######\nAddLanguage en .en\nLanguagePriority en \nAddDefaultCharset ISO-8859-1\nBrowserMatch \"Mozilla/2\" nokeepalive\nBrowserMatch \"MSIE 4\\.0b2;\" nokeepalive downgrade-1.0 force-response-1.0\nBrowserMatch \"RealPlayer 4\\.0\" force-response-1.0\nBrowserMatch \"Java/1\\.0\" force-response-1.0\nBrowserMatch \"JDK/1\\.0\" force-response-1.0\nListen 443\nSSLPassPhraseDialog builtin\nSSLSessionCache shm:logs/safe/ssl_cache(512000)\nSSLSessionCacheTimeout  300\nSSLOptions +StdEnvVars +ExportCertData +OptRenegotiate\nSSLProtocol +TLSv1\nSSLMutex  default\nSSLRandomSeed startup builtin\nSSLRandomSeed connect builtin\nSSLInsecureRenegotiation on\n<VirtualHost _default_:443>\nDocumentRoot \"C:/progroot/servers/myserver/webapps\" \nServerName localhost:443\nServerAdmin mail@domain.com\nErrorLog logs/error.log\nLogLevel error\nSSLEngine on\nSSLCertificateKeyFile ssl/mycert.key\nSSLCertificateFile ssl/mycert.cer\nSSLCipherSuite DHE-RSA-AES256-SHA:***\nSetEnvIf User-Agent \".*MSIE.*\" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0\nSetEnvIf Request_URI \\.gif$ dontlog\nSetEnvIf Request_URI \\.css$ dontlog\nSetEnvIf Request_URI \\.js$ dontlog\nLogFormat \"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \\\"%r\\\" %>s\" common\nCustomLog logs/access.log common env=!dontlog\n<Directory \"C:/progroot/servers/myserver/webapps/gitrepnewbare.git\">\nAllow from All\nOptions +ExecCGI\nAllowOverride All\n</Directory>\nSetEnv GIT_PROJECT_ROOT \"c:/progroot/servers/myserver/webapps\"\nSetEnv GIT_HTTP_EXPORT_ALL\nSetEnv REMOTE_USER=$REDIRECT_REMOTE_USER\nScriptAlias /git-core/ \"C:/devapps/Git/libexec/git-core/git-http-backend.exe\"\n</VirtualHost>\n\nAny help trying to fix this file is appreciated\n"},{"id":"251426","messageId":"20141106054035.GB22835@peff.net","threadId":"37885","inReplyTo":"1743053007.847058.1415214689002.JavaMail.yahoo@jws106105.mail.bf1.yahoo.com","subject":"Re: smart http push setup/egit win7","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2014-11-06T05:40:35Z","receivedAt":"2014-11-06T05:40:35Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Nov 05, 2014 at 07:11:29PM +0000, Jonathan wrote:\n\n> The client can connect to and successfully fetch the repo from the\n> server over https. However, when trying to push egit gives the error\n> \"remote does not support http push.\" When attempting a push via bash,\n> I get \"return code 22 - fatal: git-http-push failed.\"\n\nGit will not allow a push unless the client is authenticated (and the\ngit client may fallback to trying dumb-http push-over-DAV, which you\nlikely haven't configured; that would explain the second error message).\n\nThe authentication check in http-backend checks whether $REMOTE_USER is\nset. I see in your config that you set it from $REDIRECT_REMOTE_USER,\nbut I don't see any actual Auth directives. Do you need to add that\nsomewhere?\n\nThere are some Apache recipes in the git-http-backend manpage that might\nhelp.\n\n-Peff\n"}]}