git/Documentation/technical
Masaya Suzuki 2d103c31c2 pack-protocol.txt: accept error packets in any context
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 <masayasuzuki@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-01-02 13:05:30 -08:00
..
.gitignore
api-allocation-growing.txt
api-argv-array.txt api-argv-array.txt: remove broken link to string-list API 2017-10-06 21:16:03 +09:00
api-config.txt doc: fix config API documentation about config_with_options 2018-05-11 10:26:33 +09:00
api-credentials.txt Documentation: fix linkgit references 2016-05-09 15:44:14 -07:00
api-diff.txt diff.c: remove implicit dependency on the_index 2018-09-21 09:48:10 -07:00
api-directory-listing.txt Documentation: spelling and grammar fixes 2018-06-22 14:26:23 -07:00
api-error-handling.txt
api-gitattributes.txt Documentation: spelling and grammar fixes 2018-06-22 14:26:23 -07:00
api-grep.txt
api-history-graph.txt docs: graph: remove unnecessary `graph_update()' call 2018-10-07 10:10:49 +09:00
api-index-skel.txt
api-index.sh
api-merge.txt
api-object-access.txt sha1_file.c: rename to use dash in file name 2018-04-11 18:11:00 +09:00
api-oid-array.txt get_short_oid: sort ambiguous objects by type, then SHA-1 2018-05-11 14:43:23 +09:00
api-parse-options.txt parse-options: drop OPT_DATE() 2018-11-06 12:56:14 +09:00
api-quote.txt
api-ref-iteration.txt refs: remove dead for_each_*_submodule() 2017-08-24 14:56:28 -07:00
api-remote.txt http: allow selection of proxy authentication method 2016-01-26 10:53:09 -08:00
api-revision-walking.txt revision.c: remove implicit dependency on the_index 2018-09-21 09:51:19 -07:00
api-run-command.txt run-command: factor out child_process_clear() 2015-11-02 15:01:00 -08:00
api-setup.txt pathspec: remove the deprecated get_pathspec function 2017-01-08 18:04:17 -08:00
api-sigchain.txt
api-submodule-config.txt Merge branch 'sb/submodule-move-nested' 2018-05-08 15:59:17 +09:00
api-trace.txt Merge branch 'ep/trace-doc-sample-fix' into maint 2016-04-29 14:16:00 -07:00
api-tree-walking.txt tree-walk: convert fill_tree_descriptor() to object_id 2017-08-14 12:38:54 -07:00
api-xdiff-interface.txt
bitmap-format.txt
commit-graph-format.txt Merge branch 'ds/commit-graph' 2018-07-18 12:20:34 -07:00
commit-graph.txt Merge branch 'ma/commit-graph-docs' 2018-10-16 16:16:05 +09:00
directory-rename-detection.txt git-rebase.txt: document behavioral differences between modes 2018-06-27 11:23:22 -07:00
hash-function-transition.txt doc hash-function-transition: pick SHA-256 as NewHash 2018-08-07 07:40:43 -07:00
http-protocol.txt doc: fix want-capability separator 2018-07-30 11:25:20 -07:00
index-format.txt ieot: add Index Entry Offset Table (IEOT) extension 2018-10-11 15:32:48 +09:00
long-running-process-protocol.txt Docs: split out long-running subprocess handshake 2018-01-25 11:24:32 -08:00
multi-pack-index.txt multi-pack-index: add design document 2018-07-12 13:55:02 -07:00
pack-format.txt midx: write object offsets 2018-07-20 11:27:28 -07:00
pack-heuristics.txt
pack-protocol.txt pack-protocol.txt: accept error packets in any context 2019-01-02 13:05:30 -08:00
partial-clone.txt partial-clone: render design doc using asciidoc 2018-08-15 09:22:54 -07:00
protocol-capabilities.txt upload-pack: add object filtering for partial clone 2017-12-08 09:58:51 -08:00
protocol-common.txt Merge branch 'ls/packet-line-protocol-doc-fix' 2016-08-31 10:03:51 -07:00
protocol-v2.txt Merge branch 'jt/connectivity-check-after-unshallow' 2018-07-24 14:50:44 -07:00
racy-git.txt
repository-version.txt doc: move extensions.worktreeConfig to the right place 2018-11-16 14:10:31 +09:00
rerere.txt rerere: mention caveat about unmatched conflict markers 2018-08-29 08:54:11 -07:00
send-pack-pipeline.txt
shallow.txt technical/shallow: describe why shallow cannot use replace refs 2018-04-30 11:12:31 +09:00
signature-format.txt Documentation/technical: signed merge tag format 2016-06-17 12:10:48 -07:00
trivial-merge.txt treewide: correct several "up-to-date" to "up to date" 2017-08-23 12:17:22 -07:00