The new --report-status flag forces the status report feature of the push protocol to be enabled. This can be useful in a CGI program that implements the server side of a "smart" Git-aware HTTP transport. The CGI code can perform the selection of the feature and ask receive-pack to enable it automatically. The new --no-advertise-heads causes receive-pack to bypass its usual display of known refs to the client, and instead immediately start reading the commands and pack from stdin. This is useful in a CGI situation where we want to hand off all input to receive-pack. Signed-off-by: Shawn O. Pearce <spearce@xxxxxxxxxxx> --- receive-pack.c | 19 ++++++++++++++----- 1 files changed, 14 insertions(+), 5 deletions(-) diff --git a/receive-pack.c b/receive-pack.c index d44c19e..512eae6 100644 --- a/receive-pack.c +++ b/receive-pack.c @@ -464,6 +464,7 @@ static int delete_only(struct command *cmd) int main(int argc, char **argv) { + int advertise_heads = 1; int i; char *dir = NULL; @@ -472,7 +473,15 @@ int main(int argc, char **argv) char *arg = *argv++; if (*arg == '-') { - /* Do flag handling here */ + if (!strcmp(arg, "--report-status")) { + report_status = 1; + continue; + } + if (!strcmp(arg, "--no-advertise-heads")) { + advertise_heads = 0; + continue; + } + usage(receive_pack_usage); } if (dir) @@ -497,10 +506,10 @@ int main(int argc, char **argv) else if (0 <= receive_unpack_limit) unpack_limit = receive_unpack_limit; - write_head_info(); - - /* EOF */ - packet_flush(1); + if (advertise_heads) { + write_head_info(); + packet_flush(1); + } read_head_info(); if (commands) { -- 1.6.0.rc1.221.g9ae23 -- 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