transport-helper: check if the dry-run is supported
authorFelipe Contreras <felipe.contreras@gmail.com>
Tue, 21 May 2013 01:32:04 +0000 (20:32 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 21 May 2013 16:54:05 +0000 (09:54 -0700)
Certain remote-helpers (the ones with 'export') would try to push
regardless.

Obviously this is not what the user wants.

Also, add a check for the 'dry-run' option, so remote-helpers can
implement it.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
transport-helper.c

index a782a9bd71695210aeec271da60120ef69141d00..f08eff0ab6172e36ed6b3e4dafe73c776f5868d9 100644 (file)
@@ -789,6 +789,11 @@ static int push_refs_with_export(struct transport *transport,
        struct string_list revlist_args = STRING_LIST_INIT_NODUP;
        struct strbuf buf = STRBUF_INIT;
 
+       if (flags & TRANSPORT_PUSH_DRY_RUN) {
+               if (set_helper_option(transport, "dry-run", "true") != 0)
+                       die("helper %s does not support dry-run", data->name);
+       }
+
        helper = get_helper(transport);
 
        write_constant(helper->in, "export\n");