diff options
| author | Junio C Hamano <junkio@cox.net> | 2006-09-17 02:46:00 -0700 |
|---|---|---|
| committer | Junio C Hamano <junkio@cox.net> | 2006-09-17 02:46:00 -0700 |
| commit | 4d69065d3adad480b79831ca9f08536aaf563dba (patch) | |
| tree | 69e1589c497f80c23cb90ec7648faad8e14c3c6b /fetch-clone.c | |
| parent | 32f4aaccaa45fcd79bacd424c7d69051156bb766 (diff) | |
| parent | 87af29f09f119c4a4fa7fdf308483ae1abb74b49 (diff) | |
| download | git-4d69065d3adad480b79831ca9f08536aaf563dba.tar.gz | |
Merge branch 'jc/archive'
* jc/archive:
git-tar-tree: devolve git-tar-tree into a wrapper for git-archive
git-archive: inline default_parse_extra()
builtin-archive.c: rename remote_request() to extract_remote_arg()
upload-archive: monitor child communication more carefully.
Add sideband status report to git-archive protocol
Prepare larger packet buffer for upload-pack protocol.
Teach --exec to git-archive --remote
Add --verbose to git-archive
archive: force line buffered output to stderr
Use xstrdup instead of strdup in builtin-{tar,zip}-tree.c
Move sideband server side support into reusable form.
Move sideband client side support into reusable form.
archive: allow remote to have more formats than we understand.
git-archive: make compression level of ZIP archives configurable
Add git-upload-archive
git-archive: wire up ZIP format.
git-archive: wire up TAR format.
Add git-archive
Diffstat (limited to 'fetch-clone.c')
| -rw-r--r-- | fetch-clone.c | 32 |
1 files changed, 5 insertions, 27 deletions
diff --git a/fetch-clone.c b/fetch-clone.c index c5cf4776fa..b632ca0438 100644 --- a/fetch-clone.c +++ b/fetch-clone.c @@ -1,6 +1,7 @@ #include "cache.h" #include "exec_cmd.h" #include "pkt-line.h" +#include "sideband.h" #include <sys/wait.h> #include <sys/time.h> @@ -114,36 +115,13 @@ static pid_t setup_sideband(int sideband, const char *me, int fd[2], int xd[2]) die("%s: unable to fork off sideband demultiplexer", me); if (!side_pid) { /* subprocess */ + char buf[LARGE_PACKET_MAX]; + close(fd[0]); if (xd[0] != xd[1]) close(xd[1]); - while (1) { - char buf[1024]; - int len = packet_read_line(xd[0], buf, sizeof(buf)); - if (len == 0) - break; - if (len < 1) - die("%s: protocol error: no band designator", - me); - len--; - switch (buf[0] & 0xFF) { - case 3: - safe_write(2, "remote: ", 8); - safe_write(2, buf+1, len); - safe_write(2, "\n", 1); - exit(1); - case 2: - safe_write(2, "remote: ", 8); - safe_write(2, buf+1, len); - continue; - case 1: - safe_write(fd[1], buf+1, len); - continue; - default: - die("%s: protocol error: bad band #%d", - me, (buf[0] & 0xFF)); - } - } + if (recv_sideband(me, xd[0], fd[1], 2, buf, sizeof(buf))) + exit(1); exit(0); } close(xd[0]); |
