From: Junio C Hamano Date: Mon, 15 Mar 2010 07:58:24 +0000 (-0700) Subject: Merge branch 'ld/push-porcelain' X-Git-Tag: v1.7.1-rc0~67 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=66bce02ec459123d07c3f0230906cc2f8e36504c;p=git.git Merge branch 'ld/push-porcelain' * ld/push-porcelain: t5516: Use test_cmp when appropriate git-push: add tests for git push --porcelain git-push: make git push --porcelain print "Done" git-push: send "To " messages to the standard output in --porcelain mode git-push: fix an advice message so it goes to stderr Conflicts: transport.c --- 66bce02ec459123d07c3f0230906cc2f8e36504c diff --cc builtin/send-pack.c index 6019eac91,078bc3e8e..481602d8a --- a/builtin/send-pack.c +++ b/builtin/send-pack.c @@@ -351,16 -474,12 +351,20 @@@ int send_pack(struct send_pack_args *ar if (args->stateless_rpc) packet_flush(out); + if (use_sideband && cmds_sent) { + if (finish_async(&demux)) { + error("error in sideband demultiplexer"); + ret = -1; + } + close(demux.out); + } + if (ret < 0) return ret; + + if (args->porcelain) + return 0; + for (ref = remote_refs; ref; ref = ref->next) { switch (ref->status) { case REF_STATUS_NONE: diff --cc transport.c index f07bd33e8,260350b5a..825be9456 --- a/transport.c +++ b/transport.c @@@ -1065,13 -1052,12 +1066,12 @@@ int transport_push(struct transport *tr flags & TRANSPORT_PUSH_MIRROR, flags & TRANSPORT_PUSH_FORCE); - ret = transport->push_refs(transport, remote_refs, flags); + push_ret = transport->push_refs(transport, remote_refs, flags); err = push_had_errors(remote_refs); - - ret |= err; + ret = push_ret | err; if (!quiet || err) - print_push_status(transport->url, remote_refs, + transport_print_push_status(transport->url, remote_refs, verbose | porcelain, porcelain, nonfastforward); @@@ -1081,11 -1067,14 +1081,14 @@@ if (!(flags & TRANSPORT_PUSH_DRY_RUN)) { struct ref *ref; for (ref = remote_refs; ref; ref = ref->next) - update_tracking_ref(transport->remote, ref, verbose); + transport_update_tracking_ref(transport->remote, ref, verbose); } - if (!quiet && !ret && !transport_refs_pushed(remote_refs)) + if (porcelain && !push_ret) + puts("Done"); - else if (!quiet && !ret && !refs_pushed(remote_refs)) ++ else if (!quiet && !ret && !transport_refs_pushed(remote_refs)) fprintf(stderr, "Everything up-to-date\n"); + return ret; } return 1;