summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2011-02-24 09:30:19 -0500
committerJunio C Hamano <gitster@pobox.com>2011-03-08 12:12:04 -0800
commitbbc30f996380eacd71ca061675d5d0c5f21c45d2 (patch)
treef4a2531496b943eb6339cffd71a251df3a83d6a7 /builtin
parent94b3b3746456949d834ec7bf454da3db4eb439cf (diff)
downloadgit-bbc30f996380eacd71ca061675d5d0c5f21c45d2.tar.gz
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>
Diffstat (limited to 'builtin')
-rw-r--r--builtin/clone.c1
-rw-r--r--builtin/fetch-pack.c2
-rw-r--r--builtin/fetch.c2
-rw-r--r--builtin/push.c1
-rw-r--r--builtin/receive-pack.c2
5 files changed, 8 insertions, 0 deletions
diff --git a/builtin/clone.c b/builtin/clone.c
index 60d9a64280..38b4b71cd2 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -383,6 +383,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
junk_pid = getpid();
+ packet_trace_identity("clone");
argc = parse_options(argc, argv, prefix, builtin_clone_options,
builtin_clone_usage, 0);
diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c
index b999413934..272bc383d6 100644
--- a/builtin/fetch-pack.c
+++ b/builtin/fetch-pack.c
@@ -804,6 +804,8 @@ int cmd_fetch_pack(int argc, const char **argv, const char *prefix)
char **pack_lockfile_ptr = NULL;
struct child_process *conn;
+ packet_trace_identity("fetch-pack");
+
nr_heads = 0;
heads = NULL;
for (i = 1; i < argc; i++) {
diff --git a/builtin/fetch.c b/builtin/fetch.c
index 357f3cdbbf..e94e0015c9 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -906,6 +906,8 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
struct remote *remote;
int result = 0;
+ packet_trace_identity("fetch");
+
/* Record the command line for the reflog */
strbuf_addstr(&default_rla, "fetch");
for (i = 1; i < argc; i++)
diff --git a/builtin/push.c b/builtin/push.c
index e655eb7695..26171ff50f 100644
--- a/builtin/push.c
+++ b/builtin/push.c
@@ -228,6 +228,7 @@ int cmd_push(int argc, const char **argv, const char *prefix)
OPT_END()
};
+ packet_trace_identity("push");
git_config(git_default_config, NULL);
argc = parse_options(argc, argv, prefix, options, push_usage, 0);
diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
index 760817dbd7..5fa4be8fb4 100644
--- a/builtin/receive-pack.c
+++ b/builtin/receive-pack.c
@@ -778,6 +778,8 @@ int cmd_receive_pack(int argc, const char **argv, const char *prefix)
char *dir = NULL;
struct command *commands;
+ packet_trace_identity("receive-pack");
+
argv++;
for (i = 1; i < argc; i++) {
const char *arg = *argv++;