No functional change intended. Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx> --- bundle.c | 57 +++++++++++++++++++++++++++++++-------------------------- 1 files changed, 31 insertions(+), 26 deletions(-) diff --git a/bundle.c b/bundle.c index 0dd2acb..e90b5c5 100644 --- a/bundle.c +++ b/bundle.c @@ -193,6 +193,33 @@ static int is_tag_in_date_range(struct object *tag, struct rev_info *revs) (revs->min_age == -1 || revs->min_age > date); } +static void list_prerequisite(int bundle_fd, struct rev_info *revs, + struct commit *rev) +{ + struct strbuf buf = STRBUF_INIT; + struct pretty_print_context ctx = {0}; + enum object_type type; + unsigned long size; + + /* + * The commit buffer is needed + * to pretty-print boundary commits. + */ + rev->buffer = read_sha1_file(rev->object.sha1, &type, &size); + + strbuf_addch(&buf, '-'); + strbuf_add(&buf, sha1_to_hex(rev->object.sha1), 40); + strbuf_addch(&buf, ' '); + pretty_print_commit(CMIT_FMT_ONELINE, rev, &buf, &ctx); + strbuf_addch(&buf, '\n'); + + write_or_die(bundle_fd, buf.buf, buf.len); + + rev->object.flags |= UNINTERESTING; + add_pending_object(revs, &rev->object, buf.buf); + strbuf_release(&buf); +} + static int list_prerequisites(int bundle_fd, struct rev_info *revs, int argc, const char * const *argv) { @@ -209,33 +236,11 @@ static int list_prerequisites(int bundle_fd, struct rev_info *revs, if (prepare_revision_walk(&boundary_revs)) return error("revision walk setup failed"); - while ((rev = get_revision(&boundary_revs))) { - if (rev->object.flags & BOUNDARY) { - struct strbuf buf = STRBUF_INIT; - struct pretty_print_context ctx = {0}; - enum object_type type; - unsigned long size; - - /* - * The commit buffer is needed - * to pretty-print boundary commits. - */ - rev->buffer = read_sha1_file(rev->object.sha1, - &type, &size); - - strbuf_addch(&buf, '-'); - strbuf_add(&buf, sha1_to_hex(rev->object.sha1), 40); - strbuf_addch(&buf, ' '); - pretty_print_commit(CMIT_FMT_ONELINE, rev, &buf, &ctx); - strbuf_addch(&buf, '\n'); - write_or_die(bundle_fd, buf.buf, buf.len); - - rev->object.flags |= UNINTERESTING; - add_pending_object(revs, &rev->object, buf.buf); - strbuf_release(&buf); - } else { + while ((rev = get_revision(revs))) { + if (rev->object.flags & BOUNDARY) + list_prerequisite(bundle_fd, revs, rev); + else rev->object.flags |= SHOWN; - } } return 0; } -- 1.7.1.198.g8d802 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html