On Sun, Apr 01, 2012 at 09:45:36PM +0200, Clemens Buchacher wrote: > On Sun, Apr 01, 2012 at 08:48:04PM +0200, Artur R. Czechowski wrote: > > > > arturcz@szczaw:/tmp$ git clone http://blabluga.hell.pl/git/test.git > > Cloning into 'test'... > > error: The requested URL returned error: 401 (curl_result = 22, http_code = 401, sha1 = e884293079beab9f2583b59b4e05479fc84fc588) > > error: Unable to find e884293079beab9f2583b59b4e05479fc84fc588 under http://blabluga.hell.pl/git/test.git > > Cannot obtain needed commit e884293079beab9f2583b59b4e05479fc84fc588 > > while processing commit c64bcf957545f61436d405326d985521dc45058f. > > error: Fetch failed. This is the minimal test case I could find to reproduce this reliably on in our test suite. It seems that a certain number of loose objects is also required to trigger the issue. diff --git a/t/lib-httpd/apache.conf b/t/lib-httpd/apache.conf index 3c12b05..d31c083 100644 --- a/t/lib-httpd/apache.conf +++ b/t/lib-httpd/apache.conf @@ -77,6 +77,13 @@ SSLMutex file:ssl_mutex SSLEngine On </IfDefine> +<Location /dumb/auth/> + AuthType Basic + AuthName "git-auth" + AuthUserFile passwd + Require valid-user +</Location> + <Location /auth/> AuthType Basic AuthName "git-auth" diff --git a/t/t5550-http-fetch.sh b/t/t5550-http-fetch.sh index e5e6b8f..3eb8753 100755 --- a/t/t5550-http-fetch.sh +++ b/t/t5550-http-fetch.sh @@ -13,17 +13,22 @@ LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'5550'} start_httpd test_expect_success 'setup repository' ' - echo content >file && + echo content1 >file && git add file && git commit -m one + echo content2 >file && + git add file && + git commit -m two ' test_expect_success 'create http-accessible bare repository' ' - mkdir "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" && + cp -r .git "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" && (cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" && - git --bare init && + git config core.bare true && + mv hooks-disabled hooks && echo "exec git update-server-info" >hooks/post-update && - chmod +x hooks/post-update + chmod +x hooks/post-update && + hooks/post-update ) && git remote add public "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" && git push public master:master @@ -73,6 +78,13 @@ expect_askpass() { test_cmp askpass-expect askpass-query } +test_expect_success 'clone password-protected repository with dumb http' ' + >askpass-query && + echo user@host >askpass-response && + GIT_CURL_VERBOSE=1 git clone "$HTTPD_URL/dumb/auth/repo.git" repo-dumb-auth && + expect_askpass both user@host +' + test_expect_success 'cloning password-protected repository can fail' ' >askpass-query && echo wrong >askpass-response && -- 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