<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/http.h, branch v1.7.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v1.7.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v1.7.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2010-05-21T11:02:19Z</updated>
<entry>
<title>Merge branch 'sp/maint-dumb-http-pack-reidx'</title>
<updated>2010-05-21T11:02:19Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2010-05-21T11:02:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=035bf8d7c484b82e3e278af8c91584ae724cb5d4'/>
<id>urn:sha1:035bf8d7c484b82e3e278af8c91584ae724cb5d4</id>
<content type='text'>
* sp/maint-dumb-http-pack-reidx:
  http.c::new_http_pack_request: do away with the temp variable filename
  http-fetch: Use temporary files for pack-*.idx until verified
  http-fetch: Use index-pack rather than verify-pack to check packs
  Allow parse_pack_index on temporary files
  Extract verify_pack_index for reuse from verify_pack
  Introduce close_pack_index to permit replacement
  http.c: Remove unnecessary strdup of sha1_to_hex result
  http.c: Don't store destination name in request structures
  http.c: Drop useless != NULL test in finish_http_pack_request
  http.c: Tiny refactoring of finish_http_pack_request
  t5550-http-fetch: Use subshell for repository operations
  http.c: Remove bad free of static block
</content>
</entry>
<entry>
<title>Merge branch 'rc/maint-curl-helper'</title>
<updated>2010-05-09T05:37:24Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2010-05-09T05:37:24Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3cc9caadf738c3b2cf7aa46364be173751912a10'/>
<id>urn:sha1:3cc9caadf738c3b2cf7aa46364be173751912a10</id>
<content type='text'>
* rc/maint-curl-helper:
  remote-curl: ensure that URLs have a trailing slash
  http: make end_url_with_slash() public
  t5541-http-push: add test for URLs with trailing slash

Conflicts:
	remote-curl.c
</content>
</entry>
<entry>
<title>http.c: Don't store destination name in request structures</title>
<updated>2010-04-17T20:55:46Z</updated>
<author>
<name>Shawn O. Pearce</name>
<email>spearce@spearce.org</email>
</author>
<published>2010-04-17T20:07:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0da8b2e7c80a6dd9743e5233cdc5acd836c9a8d3'/>
<id>urn:sha1:0da8b2e7c80a6dd9743e5233cdc5acd836c9a8d3</id>
<content type='text'>
The destination name within the object store is easily computed
on demand, reusing a static buffer held by sha1_file.c.  We don't
need to copy the entire path into the request structure for safe
keeping, when it can be easily reformatted after the download has
been completed.

This reduces the size of the per-request structure, and removes
yet another PATH_MAX based limit.

Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>http: make end_url_with_slash() public</title>
<updated>2010-04-10T04:11:09Z</updated>
<author>
<name>Tay Ray Chuan</name>
<email>rctay89@gmail.com</email>
</author>
<published>2010-04-08T02:15:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=eb9d47cf9b1cb36876df1cfd48ab57278729be6d'/>
<id>urn:sha1:eb9d47cf9b1cb36876df1cfd48ab57278729be6d</id>
<content type='text'>
Signed-off-by: Tay Ray Chuan &lt;rctay89@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Prompt for a username when an HTTP request 401s</title>
<updated>2010-04-02T06:24:59Z</updated>
<author>
<name>Scott Chacon</name>
<email>schacon@gmail.com</email>
</author>
<published>2010-04-01T22:14:35Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=42653c09c85015addc6fa8dd4d49cb250253412e'/>
<id>urn:sha1:42653c09c85015addc6fa8dd4d49cb250253412e</id>
<content type='text'>
When an HTTP request returns a 401, Git will currently fail with a
confusing message saying that it got a 401, which is not very
descriptive.

Currently if a user wants to use Git over HTTP, they have to use one
URL with the username in the URL (e.g. "http://user@host.com/repo.git")
for write access and another without the username for unauthenticated
read access (unless they want to be prompted for the password each
time). However, since the HTTP servers will return a 401 if an action
requires authentication, we can prompt for username and password if we
see this, allowing us to use a single URL for both purposes.

This patch changes http_request to prompt for the username and password,
then return HTTP_REAUTH so http_get_strbuf can try again.  If it gets
a 401 even when a user/pass is supplied, http_request will now return
HTTP_NOAUTH which remote_curl can then use to display a more
intelligent error message that is less confusing.

Signed-off-by: Scott Chacon &lt;schacon@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>http.c: mark file-local functions static</title>
<updated>2010-01-12T09:06:08Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2010-01-12T06:26:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=83e41e2e61f535d5b432437d4e8ac89c710fc482'/>
<id>urn:sha1:83e41e2e61f535d5b432437d4e8ac89c710fc482</id>
<content type='text'>
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Smart push over HTTP: client side</title>
<updated>2009-11-05T01:58:15Z</updated>
<author>
<name>Shawn O. Pearce</name>
<email>spearce@spearce.org</email>
</author>
<published>2009-10-31T00:47:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=de1a2fdd38b138c4e4fed6412783dcb74d63d2da'/>
<id>urn:sha1:de1a2fdd38b138c4e4fed6412783dcb74d63d2da</id>
<content type='text'>
The git-remote-curl backend detects if the remote server supports
the git-receive-pack service, and if so, runs git-send-pack in a
pipe to dump the command and pack data as a single POST request.

The advertisements from the server that were obtained during the
discovery are passed into git-send-pack before the POST request
starts.  This permits git-send-pack to operate largely unmodified.

For smaller packs (those under 1 MiB) a HTTP/1.0 POST with a
Content-Length is used, permitting interaction with any server.
The 1 MiB limit is arbitrary, but is sufficent to fit most deltas
created by human authors against text sources with the occasional
small binary file (e.g. few KiB icon image).  The configuration
option http.postBuffer can be used to increase (or shink) this
buffer if the default is not sufficient.

For larger packs which cannot be spooled entirely into the helper's
memory space (due to http.postBuffer being too small), the POST
request requires HTTP/1.1 and sets "Transfer-Encoding: chunked".
This permits the client to upload an unknown amount of data in one
HTTP transaction without needing to pregenerate the entire pack
file locally.

Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;
CC: Daniel Barkalow &lt;barkalow@iabervon.org&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>http*: add helper methods for fetching objects (loose)</title>
<updated>2009-06-06T18:03:11Z</updated>
<author>
<name>Tay Ray Chuan</name>
<email>rctay89@gmail.com</email>
</author>
<published>2009-06-06T08:44:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5424bc557fc6414660830b470dd45774b8f5f281'/>
<id>urn:sha1:5424bc557fc6414660830b470dd45774b8f5f281</id>
<content type='text'>
The code handling the fetching of loose objects in http-push.c and
http-walker.c have been refactored into new methods and a new struct
(object_http_request) in http.c. They are not meant to be invoked
elsewhere.

The new methods in http.c are
 - new_http_object_request
 - process_http_object_request
 - finish_http_object_request
 - abort_http_object_request
 - release_http_object_request

and the new struct is http_object_request.

RANGER_HEADER_SIZE and no_pragma_header is no longer made available
outside of http.c, since after the above changes, there are no other
instances of usage outside of http.c.

Remove members of the transfer_request struct in http-push.c and
http-walker.c, including filename, real_sha1 and zret, as they are used
no longer used.

Move the methods append_remote_object_url() and get_remote_object_url()
from http-push.c to http.c. Additionally, get_remote_object_url() is no
longer defined only when USE_CURL_MULTI is defined, since
non-USE_CURL_MULTI code in http.c uses it (namely, in
new_http_object_request()).

Refactor code from http-push.c::start_fetch_loose() and
http-walker.c::start_object_fetch_request() that deals with the details
of coming up with the filename to store the retrieved object, resuming
a previously aborted request, and making a new curl request, into a new
function, new_http_object_request().

Refactor code from http-walker.c::process_object_request() into the
function, process_http_object_request().

Refactor code from http-push.c::finish_request() and
http-walker.c::finish_object_request() into a new function,
finish_http_object_request(). It returns the result of the
move_temp_to_file() invocation.

Add a function, release_http_object_request(), which cleans up object
request data. http-push.c and http-walker.c invoke this function
separately; http-push.c::release_request() and
http-walker.c::release_object_request() do not invoke this function.

Add a function, abort_http_object_request(), which unlink()s the object
file and invokes release_http_object_request(). Update
http-walker.c::abort_object_request() to use this.

Signed-off-by: Tay Ray Chuan &lt;rctay89@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>http*: add helper methods for fetching packs</title>
<updated>2009-06-06T18:03:11Z</updated>
<author>
<name>Tay Ray Chuan</name>
<email>rctay89@gmail.com</email>
</author>
<published>2009-06-06T08:44:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2264dfa5c4f11e2b0e2740072208186bee361afd'/>
<id>urn:sha1:2264dfa5c4f11e2b0e2740072208186bee361afd</id>
<content type='text'>
The code handling the fetching of packs in http-push.c and
http-walker.c have been refactored into new methods and a new struct
(http_pack_request) in http.c. They are not meant to be invoked
elsewhere.

The new methods in http.c are
 - new_http_pack_request
 - finish_http_pack_request
 - release_http_pack_request

and the new struct is http_pack_request.

Add a function, new_http_pack_request(), that deals with the details of
coming up with the filename to store the retrieved packfile, resuming a
previously aborted request, and making a new curl request. Update
http-push.c::start_fetch_packed() and http-walker.c::fetch_pack() to
use this.

Add a function, finish_http_pack_request(), that deals with renaming
the pack, advancing the pack list, and installing the pack. Update
http-push.c::finish_request() and http-walker.c::fetch_pack to use
this.

Update release_request() in http-push.c and http-walker.c to invoke
release_http_pack_request() to clean up pack request helper data.

The local_stream member of the transfer_request struct in http-push.c
has been removed, as the packfile pointer will be managed in the struct
http_pack_request.

Signed-off-by: Tay Ray Chuan &lt;rctay89@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>http*: add http_get_info_packs</title>
<updated>2009-06-06T18:03:11Z</updated>
<author>
<name>Tay Ray Chuan</name>
<email>rctay89@gmail.com</email>
</author>
<published>2009-06-06T08:43:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b8caac2b8ab6482e7ab59c8ec18f1c3d90e7387d'/>
<id>urn:sha1:b8caac2b8ab6482e7ab59c8ec18f1c3d90e7387d</id>
<content type='text'>
http-push.c and http-walker.c no longer have to use fetch_index or
setup_index; they simply need to use http_get_info_packs, a new http
method, in their fetch_indices implementations.

Move fetch_index() and rename to fetch_pack_index() in http.c; this
method is not meant to be used outside of http.c. It invokes
end_url_with_slash with base_url; apart from that change, the code is
identical.

Move setup_index() and rename to fetch_and_setup_pack_index() in
http.c; this method is not meant to be used outside of http.c.

Do not immediately set ret to 0 in http-walker.c::fetch_indices();
instead do it in the HTTP_MISSING_TARGET case, to make it clear that
the HTTP_OK and HTTP_MISSING_TARGET cases both return 0.

Signed-off-by: Tay Ray Chuan &lt;rctay89@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
