diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-05-04 14:58:13 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-05-04 14:58:13 -0700 |
commit | 476e42422d3a62a6aa301e41ba3def6882d37e9e (patch) | |
tree | 0b1f6148056e5c5017995549df7a1ed45f339ad5 | |
parent | e9f1878da7be816042c915cdf0542f9325c36209 (diff) | |
parent | b9612197798dbfc622c766e83b1fe4c20bffae5c (diff) | |
download | git-476e42422d3a62a6aa301e41ba3def6882d37e9e.tar.gz git-476e42422d3a62a6aa301e41ba3def6882d37e9e.tar.xz |
Merge branch 'jk/maint-upload-pack-shallow' into maint
* jk/maint-upload-pack-shallow:
upload-pack: start pack-objects before async rev-list
-rw-r--r-- | upload-pack.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/upload-pack.c b/upload-pack.c index bba053f0a..ce5cbbea6 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -157,15 +157,8 @@ static void create_pack_file(void) const char *argv[10]; int arg = 0; - if (shallow_nr) { - memset(&rev_list, 0, sizeof(rev_list)); - rev_list.proc = do_rev_list; - rev_list.out = -1; - if (start_async(&rev_list)) - die("git upload-pack: unable to fork git-rev-list"); - argv[arg++] = "pack-objects"; - } else { - argv[arg++] = "pack-objects"; + argv[arg++] = "pack-objects"; + if (!shallow_nr) { argv[arg++] = "--revs"; if (create_full_pack) argv[arg++] = "--all"; @@ -183,7 +176,7 @@ static void create_pack_file(void) argv[arg++] = NULL; memset(&pack_objects, 0, sizeof(pack_objects)); - pack_objects.in = shallow_nr ? rev_list.out : -1; + pack_objects.in = -1; pack_objects.out = -1; pack_objects.err = -1; pack_objects.git_cmd = 1; @@ -192,8 +185,14 @@ static void create_pack_file(void) if (start_command(&pack_objects)) die("git upload-pack: unable to fork git-pack-objects"); - /* pass on revisions we (don't) want */ - if (!shallow_nr) { + if (shallow_nr) { + memset(&rev_list, 0, sizeof(rev_list)); + rev_list.proc = do_rev_list; + rev_list.out = pack_objects.in; + if (start_async(&rev_list)) + die("git upload-pack: unable to fork git-rev-list"); + } + else { FILE *pipe_fd = xfdopen(pack_objects.in, "w"); if (!create_full_pack) { int i; |