add packet tracing debug code
authorJeff King <peff@peff.net>
Thu, 24 Feb 2011 14:30:19 +0000 (09:30 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 8 Mar 2011 20:12:04 +0000 (12:12 -0800)
commitbbc30f996380eacd71ca061675d5d0c5f21c45d2
treef4a2531496b943eb6339cffd71a251df3a83d6a7
parent94b3b3746456949d834ec7bf454da3db4eb439cf
add packet tracing debug code

This shows a trace of all packets coming in or out of a given
program. This can help with debugging object negotiation or
other protocol issues.

To keep the code changes simple, we operate at the lowest
level, meaning we don't necessarily understand what's in the
packets. The one exception is a packet starting with "PACK",
which causes us to skip that packet and turn off tracing
(since the gigantic pack data will not be interesting to
read, at least not in the trace format).

We show both written and read packets. In the local case,
this may mean you will see packets twice (written by the
sender and read by the receiver). However, for cases where
the other end is remote, this allows you to see the full
conversation.

Packet tracing can be enabled with GIT_TRACE_PACKET=<foo>,
where <foo> takes the same arguments as GIT_TRACE.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/clone.c
builtin/fetch-pack.c
builtin/fetch.c
builtin/push.c
builtin/receive-pack.c
cache.h
pkt-line.c
upload-pack.c