<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/builtin/fetch-pack.c, branch v2.26.1</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.26.1</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.26.1'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2019-03-20T09:34:09Z</updated>
<entry>
<title>fetch_pack(): drop unused parameters</title>
<updated>2019-03-20T09:34:09Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2019-03-20T08:16:14Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0f804b0bac39fb696ea74b8dd59549935ec9ca00'/>
<id>urn:sha1:0f804b0bac39fb696ea74b8dd59549935ec9ca00</id>
<content type='text'>
We don't need the caller of fetch_pack() to pass in "dest", which is the
remote URL. Since ba227857d2 (Reduce the number of connects when
fetching, 2008-02-04), the caller is responsible for calling
git_connect() itself, and our "dest" parameter is unused.

That commit also started passing us the resulting "conn" child_process
from git_connect(). But likewise, we do not need do anything with it.
The descriptors in "fd" are enough for us, and the caller is responsible
for cleaning up "conn".

We can just drop both parameters.

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jt/fetch-v2-sideband'</title>
<updated>2019-02-05T22:26:11Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-02-05T22:26:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5f8b86db94e789bc07258f98cc5ba25d18273d83'/>
<id>urn:sha1:5f8b86db94e789bc07258f98cc5ba25d18273d83</id>
<content type='text'>
"git fetch" and "git upload-pack" learned to send all exchange over
the sideband channel while talking the v2 protocol.

* jt/fetch-v2-sideband:
  tests: define GIT_TEST_SIDEBAND_ALL
  {fetch,upload}-pack: sideband v2 fetch response
  sideband: reverse its dependency on pkt-line
  pkt-line: introduce struct packet_writer
  pack-protocol.txt: accept error packets in any context
  Use packet_reader instead of packet_read_line
</content>
</entry>
<entry>
<title>Merge branch 'jt/fetch-pack-v2'</title>
<updated>2019-01-29T20:47:54Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-01-29T20:47:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f33989464ecfc05a937328430b7e74819f7285dd'/>
<id>urn:sha1:f33989464ecfc05a937328430b7e74819f7285dd</id>
<content type='text'>
"git fetch-pack" now can talk the version 2 protocol.

* jt/fetch-pack-v2:
  fetch-pack: support protocol version 2
</content>
</entry>
<entry>
<title>fetch-pack: support protocol version 2</title>
<updated>2019-01-10T19:18:36Z</updated>
<author>
<name>Jonathan Tan</name>
<email>jonathantanmy@google.com</email>
</author>
<published>2018-12-17T22:40:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4316ff306812025385a71519f7f71abaa36b3c31'/>
<id>urn:sha1:4316ff306812025385a71519f7f71abaa36b3c31</id>
<content type='text'>
When the scaffolding for protocol version 2 was initially added in
8f6982b4e1 ("protocol: introduce enum protocol_version value
protocol_v2", 2018-03-14). As seen in:

    git log -p -G'support for protocol v2 not implemented yet' --full-diff --reverse v2.17.0..v2.20.0

Many of those scaffolding "die" placeholders were removed, but we
hadn't gotten around to fetch-pack yet.

The test here for "fetch refs from cmdline" is very minimal. There's
much better coverage when running the entire test suite under the WIP
GIT_TEST_PROTOCOL_VERSION=2 mode[1], we should ideally have better
coverage without needing to invoke a special test mode.

1. https://public-inbox.org/git/20181213155817.27666-1-avarab@gmail.com/

Signed-off-by: Jonathan Tan &lt;jonathantanmy@google.com&gt;
Signed-off-by: Ævar Arnfjörð Bjarmason &lt;avarab@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>pack-protocol.txt: accept error packets in any context</title>
<updated>2019-01-02T21:05:30Z</updated>
<author>
<name>Masaya Suzuki</name>
<email>masayasuzuki@google.com</email>
</author>
<published>2018-12-29T21:19:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2d103c31c2cfcf03ff1408d639043469b0c93f70'/>
<id>urn:sha1:2d103c31c2cfcf03ff1408d639043469b0c93f70</id>
<content type='text'>
In the Git pack protocol definition, an error packet may appear only in
a certain context. However, servers can face a runtime error (e.g. I/O
error) at an arbitrary timing. This patch changes the protocol to allow
an error packet to be sent instead of any packet.

Without this protocol spec change, when a server cannot process a
request, there's no way to tell that to a client. Since the server
cannot produce a valid response, it would be forced to cut a connection
without telling why. With this protocol spec change, the server can be
more gentle in this situation. An old client may see these error packets
as an unexpected packet, but this is not worse than having an unexpected
EOF.

Following this protocol spec change, the error packet handling code is
moved to pkt-line.c. Implementation wise, this implementation uses
pkt-line to communicate with a subprocess. Since this is not a part of
Git protocol, it's possible that a packet that is not supposed to be an
error packet is mistakenly parsed as an error packet. This error packet
handling is enabled only for the Git pack protocol parsing code
considering this.

Signed-off-by: Masaya Suzuki &lt;masayasuzuki@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>builtin/fetch-pack: remove constants with parse_oid_hex</title>
<updated>2018-10-15T03:53:15Z</updated>
<author>
<name>brian m. carlson</name>
<email>sandals@crustytoothpaste.net</email>
</author>
<published>2018-10-15T00:01:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=7b5e614e2acc2f4e6b2f1ea4eb93dd430d350abd'/>
<id>urn:sha1:7b5e614e2acc2f4e6b2f1ea4eb93dd430d350abd</id>
<content type='text'>
Instead of using GIT_SHA1_HEXSZ, use parse_oid_hex to compute a pointer
and use that in comparisons.  This is both simpler to read and works
independent of the hash length.  Update references to SHA-1 in the same
function to refer to object IDs instead.

Signed-off-by: brian m. carlson &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'bw/protocol-v2'</title>
<updated>2018-05-08T06:59:16Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-05-08T06:59:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9bfa0f9be3e718f701200a242ea04259a4dc4dfc'/>
<id>urn:sha1:9bfa0f9be3e718f701200a242ea04259a4dc4dfc</id>
<content type='text'>
The beginning of the next-gen transfer protocol.

* bw/protocol-v2: (35 commits)
  remote-curl: don't request v2 when pushing
  remote-curl: implement stateless-connect command
  http: eliminate "# service" line when using protocol v2
  http: don't always add Git-Protocol header
  http: allow providing extra headers for http requests
  remote-curl: store the protocol version the server responded with
  remote-curl: create copy of the service name
  pkt-line: add packet_buf_write_len function
  transport-helper: introduce stateless-connect
  transport-helper: refactor process_connect_service
  transport-helper: remove name parameter
  connect: don't request v2 when pushing
  connect: refactor git_connect to only get the protocol version once
  fetch-pack: support shallow requests
  fetch-pack: perform a fetch using v2
  upload-pack: introduce fetch server command
  push: pass ref prefixes when pushing
  fetch: pass ref prefixes when fetching
  ls-remote: pass ref prefixes when requesting a remote's refs
  transport: convert transport_get_remote_refs to take a list of ref prefixes
  ...
</content>
</entry>
<entry>
<title>fetch-pack: perform a fetch using v2</title>
<updated>2018-03-15T19:01:08Z</updated>
<author>
<name>Brandon Williams</name>
<email>bmwill@google.com</email>
</author>
<published>2018-03-15T17:31:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=685fbd32916f3e94bc89aa14e8fdce835b06f801'/>
<id>urn:sha1:685fbd32916f3e94bc89aa14e8fdce835b06f801</id>
<content type='text'>
When communicating with a v2 server, perform a fetch by requesting the
'fetch' command.

Signed-off-by: Brandon Williams &lt;bmwill@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>protocol: introduce enum protocol_version value protocol_v2</title>
<updated>2018-03-14T21:15:07Z</updated>
<author>
<name>Brandon Williams</name>
<email>bmwill@google.com</email>
</author>
<published>2018-03-14T18:31:47Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8f6982b4e16c60bba713a3b6592b2ff5c7476974'/>
<id>urn:sha1:8f6982b4e16c60bba713a3b6592b2ff5c7476974</id>
<content type='text'>
Introduce protocol_v2, a new value for 'enum protocol_version'.
Subsequent patches will fill in the implementation of protocol_v2.

Signed-off-by: Brandon Williams &lt;bmwill@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>connect: discover protocol version outside of get_remote_heads</title>
<updated>2018-03-14T21:15:06Z</updated>
<author>
<name>Brandon Williams</name>
<email>bmwill@google.com</email>
</author>
<published>2018-03-14T18:31:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ad6ac1244fd175d08bcee62060a9a0b7975930fb'/>
<id>urn:sha1:ad6ac1244fd175d08bcee62060a9a0b7975930fb</id>
<content type='text'>
In order to prepare for the addition of protocol_v2 push the protocol
version discovery outside of 'get_remote_heads()'.  This will allow for
keeping the logic for processing the reference advertisement for
protocol_v1 and protocol_v0 separate from the logic for protocol_v2.

Signed-off-by: Brandon Williams &lt;bmwill@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
