git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Shawn O. Pearce" <spearce@spearce.org>
To: git@vger.kernel.org
Subject: [PATCH v5 00/28] interdiff to v4
Date: Fri, 30 Oct 2009 17:47:19 -0700	[thread overview]
Message-ID: <1256950067-27938-2-git-send-email-spearce@spearce.org> (raw)
In-Reply-To: <1256950067-27938-1-git-send-email-spearce@spearce.org>

diff --git a/pkt-line.c b/pkt-line.c
index 893dd3c..295ba2b 100644
--- a/pkt-line.c
+++ b/pkt-line.c
@@ -124,14 +124,12 @@ static int packet_length(const char *linelen)
 int packet_read_line(int fd, char *buffer, unsigned size)
 {
 	int len;
-	char linelen[5];
+	char linelen[4];
 
 	safe_read(fd, linelen, 4);
 	len = packet_length(linelen);
-	if (len < 0) {
-		linelen[4] = '\0';
-		die("protocol error: bad line length character: %s", linelen);
-	}
+	if (len < 0)
+		die("protocol error: bad line length character: %.4s", linelen);
 	if (!len)
 		return 0;
 	len -= 4;
diff --git a/t/lib-httpd/apache.conf b/t/lib-httpd/apache.conf
index 2098ce0..0fe3fd0 100644
--- a/t/lib-httpd/apache.conf
+++ b/t/lib-httpd/apache.conf
@@ -8,20 +8,22 @@ ErrorLog error.log
 <IfModule !mod_log_config.c>
 	LoadModule log_config_module modules/mod_log_config.so
 </IfModule>
-<IfModule !mod_cgi.c>
-	LoadModule cgi_module modules/mod_cgi.so
-</IfModule>
 <IfModule !mod_alias.c>
 	LoadModule alias_module modules/mod_alias.so
 </IfModule>
+<IfModule !mod_cgi.c>
+	LoadModule cgi_module modules/mod_cgi.so
+</IfModule>
 <IfModule !mod_env.c>
 	LoadModule env_module modules/mod_env.so
 </IfModule>
 
-<Location /git/>
+Alias /dumb/ www/
+
+<Location /smart/>
 	SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH}
 </Location>
-ScriptAlias /git/ ${GIT_EXEC_PATH}/git-http-backend/
+ScriptAlias /smart/ ${GIT_EXEC_PATH}/git-http-backend/
 <Directory ${GIT_EXEC_PATH}>
 	Options None
 </Directory>
@@ -46,7 +48,7 @@ SSLEngine On
 	LoadModule dav_fs_module modules/mod_dav_fs.so
 
 	DAVLockDB DAVLock
-	<Location />
+	<Location /dumb/>
 		Dav on
 	</Location>
 </IfDefine>
diff --git a/t/t5540-http-push.sh b/t/t5540-http-push.sh
index 5c0f4d7..bb18f8b 100755
--- a/t/t5540-http-push.sh
+++ b/t/t5540-http-push.sh
@@ -9,17 +9,16 @@ This test runs various sanity checks on http-push.'
 
 . ./test-lib.sh
 
-ROOT_PATH="$PWD"
-LIB_HTTPD_DAV=t
-LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'5540'}
-
 if git http-push > /dev/null 2>&1 || [ $? -eq 128 ]
 then
 	say "skipping test, USE_CURL_MULTI is not defined"
 	test_done
 fi
 
+LIB_HTTPD_DAV=t
+LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'5540'}
 . "$TEST_DIRECTORY"/lib-httpd.sh
+ROOT_PATH="$PWD"
 start_httpd
 
 test_expect_success 'setup remote repository' '
@@ -43,7 +42,7 @@ test_expect_success 'setup remote repository' '
 
 test_expect_success 'clone remote repository' '
 	cd "$ROOT_PATH" &&
-	git clone $HTTPD_URL/test_repo.git test_repo_clone
+	git clone $HTTPD_URL/dumb/test_repo.git test_repo_clone
 '
 
 test_expect_success 'push to remote repository with packed refs' '
@@ -76,7 +75,7 @@ test_expect_success 'http-push fetches unpacked objects' '
 	cp -R "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git \
 		"$HTTPD_DOCUMENT_ROOT_PATH"/test_repo_unpacked.git &&
 
-	git clone $HTTPD_URL/test_repo_unpacked.git \
+	git clone $HTTPD_URL/dumb/test_repo_unpacked.git \
 		"$ROOT_PATH"/fetch_unpacked &&
 
 	# By reset, we force git to retrieve the object
@@ -85,14 +84,14 @@ test_expect_success 'http-push fetches unpacked objects' '
 	 git remote rm origin &&
 	 git reflog expire --expire=0 --all &&
 	 git prune &&
-	 git push -f -v $HTTPD_URL/test_repo_unpacked.git master)
+	 git push -f -v $HTTPD_URL/dumb/test_repo_unpacked.git master)
 '
 
 test_expect_success 'http-push fetches packed objects' '
 	cp -R "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git \
 		"$HTTPD_DOCUMENT_ROOT_PATH"/test_repo_packed.git &&
 
-	git clone $HTTPD_URL/test_repo_packed.git \
+	git clone $HTTPD_URL/dumb/test_repo_packed.git \
 		"$ROOT_PATH"/test_repo_clone_packed &&
 
 	(cd "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo_packed.git &&
@@ -105,7 +104,7 @@ test_expect_success 'http-push fetches packed objects' '
 	 git remote rm origin &&
 	 git reflog expire --expire=0 --all &&
 	 git prune &&
-	 git push -f -v $HTTPD_URL/test_repo_packed.git master)
+	 git push -f -v $HTTPD_URL/dumb/test_repo_packed.git master)
 '
 
 test_expect_success 'create and delete remote branch' '
diff --git a/t/t5541-http-push.sh b/t/t5541-http-push.sh
index 690c466..2a58d0c 100755
--- a/t/t5541-http-push.sh
+++ b/t/t5541-http-push.sh
@@ -12,7 +12,7 @@ if test -n "$NO_CURL"; then
 fi
 
 ROOT_PATH="$PWD"
-LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'5550'}
+LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'5541'}
 . "$TEST_DIRECTORY"/lib-httpd.sh
 start_httpd
 
@@ -36,10 +36,10 @@ test_expect_success 'setup remote repository' '
 
 test_expect_success 'clone remote repository' '
 	cd "$ROOT_PATH" &&
-	git clone $HTTPD_URL/git/test_repo.git test_repo_clone
+	git clone $HTTPD_URL/smart/test_repo.git test_repo_clone
 '
 
-test_expect_success 'push to remote repository with packed refs' '
+test_expect_success 'push to remote repository' '
 	cd "$ROOT_PATH"/test_repo_clone &&
 	: >path2 &&
 	git add path2 &&
@@ -55,15 +55,6 @@ test_expect_success 'push already up-to-date' '
 	git push
 '
 
-test_expect_success 'push to remote repository with unpacked refs' '
-	(cd "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git &&
-	 rm packed-refs &&
-	 git update-ref refs/heads/master $ORIG_HEAD) &&
-	git push &&
-	(cd "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git &&
-	 test $HEAD = $(git rev-parse --verify HEAD))
-'
-
 test_expect_success 'create and delete remote branch' '
 	cd "$ROOT_PATH"/test_repo_clone &&
 	git checkout -b dev &&
@@ -77,17 +68,15 @@ test_expect_success 'create and delete remote branch' '
 '
 
 cat >exp <<EOF
-GET  /git/test_repo.git/info/refs?service=git-upload-pack HTTP/1.1 200
-POST /git/test_repo.git/git-upload-pack HTTP/1.1 200
-GET  /git/test_repo.git/info/refs?service=git-receive-pack HTTP/1.1 200
-POST /git/test_repo.git/git-receive-pack HTTP/1.1 200
-GET  /git/test_repo.git/info/refs?service=git-receive-pack HTTP/1.1 200
-GET  /git/test_repo.git/info/refs?service=git-receive-pack HTTP/1.1 200
-POST /git/test_repo.git/git-receive-pack HTTP/1.1 200
-GET  /git/test_repo.git/info/refs?service=git-receive-pack HTTP/1.1 200
-POST /git/test_repo.git/git-receive-pack HTTP/1.1 200
-GET  /git/test_repo.git/info/refs?service=git-receive-pack HTTP/1.1 200
-POST /git/test_repo.git/git-receive-pack HTTP/1.1 200
+GET  /smart/test_repo.git/info/refs?service=git-upload-pack HTTP/1.1 200
+POST /smart/test_repo.git/git-upload-pack HTTP/1.1 200
+GET  /smart/test_repo.git/info/refs?service=git-receive-pack HTTP/1.1 200
+POST /smart/test_repo.git/git-receive-pack HTTP/1.1 200
+GET  /smart/test_repo.git/info/refs?service=git-receive-pack HTTP/1.1 200
+GET  /smart/test_repo.git/info/refs?service=git-receive-pack HTTP/1.1 200
+POST /smart/test_repo.git/git-receive-pack HTTP/1.1 200
+GET  /smart/test_repo.git/info/refs?service=git-receive-pack HTTP/1.1 200
+POST /smart/test_repo.git/git-receive-pack HTTP/1.1 200
 EOF
 test_expect_success 'used receive-pack service' '
 	sed -e "
diff --git a/t/t5550-http-fetch.sh b/t/t5550-http-fetch.sh
index 8d6443f..8cfce96 100755
--- a/t/t5550-http-fetch.sh
+++ b/t/t5550-http-fetch.sh
@@ -30,7 +30,7 @@ test_expect_success 'create http-accessible bare repository' '
 '
 
 test_expect_success 'clone http repository' '
-	git clone $HTTPD_URL/repo.git clone &&
+	git clone $HTTPD_URL/dumb/repo.git clone &&
 	test_cmp file clone/file
 '
 
@@ -58,7 +58,7 @@ test_expect_success 'fetch packed objects' '
 	cd "$HTTPD_DOCUMENT_ROOT_PATH"/repo_pack.git &&
 	git --bare repack &&
 	git --bare prune-packed &&
-	git clone $HTTPD_URL/repo_pack.git
+	git clone $HTTPD_URL/dumb/repo_pack.git
 '
 
 test_expect_success 'did not use upload-pack service' '
diff --git a/t/t5551-http-fetch.sh b/t/t5551-http-fetch.sh
index afddc2c..eb0c039 100755
--- a/t/t5551-http-fetch.sh
+++ b/t/t5551-http-fetch.sh
@@ -8,7 +8,7 @@ if test -n "$NO_CURL"; then
 	test_done
 fi
 
-LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'5550'}
+LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'5551'}
 . "$TEST_DIRECTORY"/lib-httpd.sh
 start_httpd
 
@@ -28,19 +28,21 @@ test_expect_success 'create http-accessible bare repository' '
 '
 
 cat >exp <<EOF
-> GET /git/repo.git/info/refs?service=git-upload-pack HTTP/1.1
-Accept: */*
-Pragma: no-cache
+> GET /smart/repo.git/info/refs?service=git-upload-pack HTTP/1.1
+> Accept: */*
+> Pragma: no-cache
+
 < HTTP/1.1 200 OK
 < Pragma: no-cache
 < Cache-Control: no-cache, max-age=0, must-revalidate
 < Content-Type: application/x-git-upload-pack-advertisement
 < 
-> POST /git/repo.git/git-upload-pack HTTP/1.1
-Accept-Encoding: deflate, gzip
-Content-Type: application/x-git-upload-pack-request
-Accept: application/x-git-upload-pack-response
-Content-Length: xxxx
+> POST /smart/repo.git/git-upload-pack HTTP/1.1
+> Accept-Encoding: deflate, gzip
+> Content-Type: application/x-git-upload-pack-request
+> Accept: application/x-git-upload-pack-response
+> Content-Length: xxx
+
 < HTTP/1.1 200 OK
 < Pragma: no-cache
 < Cache-Control: no-cache, max-age=0, must-revalidate
@@ -48,13 +50,26 @@ Content-Length: xxxx
 < 
 EOF
 test_expect_success 'clone http repository' '
-	GIT_CURL_VERBOSE=1 git clone $HTTPD_URL/git/repo.git clone 2>err &&
+	GIT_CURL_VERBOSE=1 git clone --quiet $HTTPD_URL/smart/repo.git clone 2>err &&
 	test_cmp file clone/file &&
-	egrep "^([<>]|Pragma|Accept|Content-|Transfer-)" err |
-	egrep -v "^< (Server|Expires|Date|Content-Length:|Transfer-Encoding: chunked)" |
+	tr '\''\015'\'' Q <err |
 	sed -e "
-		s/
//
-		s/^Content-Length: .*$/Content-Length: xxxx/
+		s/Q\$//
+		/^[*] /d
+
+		/^[^><]/{
+			s/^/> /
+		}
+
+		/^> User-Agent: /d
+		/^> Host: /d
+		s/^> Content-Length: .*/> Content-Length: xxx/
+
+		/^< Server: /d
+		/^< Expires: /d
+		/^< Date: /d
+		/^< Content-Length: /d
+		/^< Transfer-Encoding: /d
 	" >act &&
 	test_cmp exp act
 '
@@ -68,10 +83,10 @@ test_expect_success 'fetch changes via http' '
 '
 
 cat >exp <<EOF
-GET  /git/repo.git/info/refs?service=git-upload-pack HTTP/1.1 200
-POST /git/repo.git/git-upload-pack HTTP/1.1 200
-GET  /git/repo.git/info/refs?service=git-upload-pack HTTP/1.1 200
-POST /git/repo.git/git-upload-pack HTTP/1.1 200
+GET  /smart/repo.git/info/refs?service=git-upload-pack HTTP/1.1 200
+POST /smart/repo.git/git-upload-pack HTTP/1.1 200
+GET  /smart/repo.git/info/refs?service=git-upload-pack HTTP/1.1 200
+POST /smart/repo.git/git-upload-pack HTTP/1.1 200
 EOF
 test_expect_success 'used upload-pack service' '
 	sed -e "

  reply	other threads:[~2009-10-31  0:48 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-31  0:47 [PATCH v5 00/28] Return of smart HTTP Shawn O. Pearce
2009-10-31  0:47 ` Shawn O. Pearce [this message]
2009-10-31  0:47 ` [PATCH v5 01/28] http-push: fix check condition on http.c::finish_http_pack_request() Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 02/28] pkt-line: Add strbuf based functions Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 03/28] pkt-line: Make packet_read_line easier to debug Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 04/28] fetch-pack: Use a strbuf to compose the want list Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 05/28] Move "get_ack()" back to fetch-pack Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 06/28] Add multi_ack_detailed capability to fetch-pack/upload-pack Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 07/28] remote-curl: Refactor walker initialization Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 08/28] fetch: Allow transport -v -v -v to set verbosity to 3 Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 09/28] remote-helpers: Fetch more than one ref in a batch Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 10/28] remote-helpers: Support custom transport options Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 11/28] Move WebDAV HTTP push under remote-curl Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 12/28] remote-helpers: return successfully if everything up-to-date Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 13/28] Git-aware CGI to provide dumb HTTP transport Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 14/28] Add stateless RPC options to upload-pack, receive-pack Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 15/28] Smart fetch and push over HTTP: server side Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 16/28] http-backend: add GIT_PROJECT_ROOT environment var Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 17/28] http-backend: reword some documentation Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 18/28] http-backend: use mod_alias instead of mod_rewrite Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 19/28] http-backend: add example for gitweb on same URL Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 20/28] http-backend: more explict LocationMatch Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 21/28] Discover refs via smart HTTP server when available Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 22/28] Smart push over HTTP: client side Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 23/28] Smart fetch " Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 24/28] Smart HTTP fetch: gzip requests Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 25/28] t5540-http-push: remove redundant fetches Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 26/28] set httpd port before sourcing lib-httpd Shawn O. Pearce
2009-10-31  0:47 ` [PATCH v5 27/28] http tests: use /dumb/ URL prefix Shawn O. Pearce
2009-11-01 14:50   ` Tay Ray Chuan
2009-10-31  0:47 ` [PATCH v5 28/28] test smart http fetch and push Shawn O. Pearce

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1256950067-27938-2-git-send-email-spearce@spearce.org \
    --to=spearce@spearce.org \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).