X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=send-pack.c;h=c1807f07946ca204bc1e8307eed04150e62c551d;hb=e076a0e71f25430205d0437c177fd12a7018e5ad;hp=f74e66a8babd427ecd715c901d3d1680f1c5f13a;hpb=88b7dd4597b11db4a99537519df91265fc7533e0;p=git.git diff --git a/send-pack.c b/send-pack.c index f74e66a8b..c1807f079 100644 --- a/send-pack.c +++ b/send-pack.c @@ -7,13 +7,14 @@ #include "remote.h" static const char send_pack_usage[] = -"git-send-pack [--all] [--force] [--receive-pack=] [--verbose] [--thin] [:] [...]\n" +"git-send-pack [--all] [--dry-run] [--force] [--receive-pack=] [--verbose] [--thin] [:] [...]\n" " --all and explicit specification are mutually exclusive."; static const char *receivepack = "git-receive-pack"; static int verbose; static int send_all; static int force_update; static int use_thin_pack; +static int dry_run; /* * Make a pack stream and spit it out into file descriptor fd @@ -204,7 +205,8 @@ static int send_pack(int in, int out, struct remote *remote, int nr_refspec, cha return -1; if (!remote_refs) { - fprintf(stderr, "No refs in common and none specified; doing nothing.\n"); + fprintf(stderr, "No refs in common and none specified; doing nothing.\n" + "Perhaps you should specify a branch such as 'master'.\n"); return 0; } @@ -282,16 +284,18 @@ static int send_pack(int in, int out, struct remote *remote, int nr_refspec, cha strcpy(old_hex, sha1_to_hex(ref->old_sha1)); new_hex = sha1_to_hex(ref->new_sha1); - if (ask_for_status_report) { - packet_write(out, "%s %s %s%c%s", - old_hex, new_hex, ref->name, 0, - "report-status"); - ask_for_status_report = 0; - expect_status_report = 1; + if (!dry_run) { + if (ask_for_status_report) { + packet_write(out, "%s %s %s%c%s", + old_hex, new_hex, ref->name, 0, + "report-status"); + ask_for_status_report = 0; + expect_status_report = 1; + } + else + packet_write(out, "%s %s %s", + old_hex, new_hex, ref->name); } - else - packet_write(out, "%s %s %s", - old_hex, new_hex, ref->name); if (will_delete_ref) fprintf(stderr, "deleting '%s'\n", ref->name); else { @@ -302,7 +306,7 @@ static int send_pack(int in, int out, struct remote *remote, int nr_refspec, cha fprintf(stderr, "\n from %s\n to %s\n", old_hex, new_hex); } - if (remote) { + if (remote && !dry_run) { struct refspec rs; rs.src = ref->name; rs.dst = NULL; @@ -321,7 +325,7 @@ static int send_pack(int in, int out, struct remote *remote, int nr_refspec, cha } packet_flush(out); - if (new_refs) + if (new_refs && !dry_run) ret = pack_objects(out, remote_refs); close(out); @@ -390,6 +394,10 @@ int main(int argc, char **argv) send_all = 1; continue; } + if (!strcmp(arg, "--dry-run")) { + dry_run = 1; + continue; + } if (!strcmp(arg, "--force")) { force_update = 1; continue;