Skip to content

Commit

Permalink
Support 'push --dry-run' for rsync transport
Browse files Browse the repository at this point in the history
If the end-user requested a dry-run push we should pass that flag
though to rsync so that the rsync command can show what it would do
(or not do) if push was to be executed without the --dry-run flag.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  • Loading branch information
Shawn O. Pearce committed Oct 16, 2007
1 parent 18184f7 commit ee020f3
Showing 1 changed file with 19 additions and 10 deletions.
29 changes: 19 additions & 10 deletions transport.c
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ static int rsync_transport_push(struct transport *transport,
struct strbuf buf = STRBUF_INIT, temp_dir = STRBUF_INIT;
int result = 0, i;
struct child_process rsync;
const char *args[8];
const char *args[10];

/* first push the objects */

Expand All @@ -291,14 +291,19 @@ static int rsync_transport_push(struct transport *transport,
memset(&rsync, 0, sizeof(rsync));
rsync.argv = args;
rsync.stdout_to_stderr = 1;
args[0] = "rsync";
args[1] = (transport->verbose > 0) ? "-av" : "-a";
args[2] = "--ignore-existing";
args[3] = "--exclude";
args[4] = "info";
args[5] = get_object_directory();;
args[6] = buf.buf;
args[7] = NULL;
i = 0;
args[i++] = "rsync";
args[i++] = "-a";
if (flags & TRANSPORT_PUSH_DRY_RUN)
args[i++] = "--dry-run";
if (transport->verbose > 0)
args[i++] = "-v";
args[i++] = "--ignore-existing";
args[i++] = "--exclude";
args[i++] = "info";
args[i++] = get_object_directory();
args[i++] = buf.buf;
args[i++] = NULL;

if (run_command(&rsync))
return error("Could not push objects to %s", transport->url);
Expand All @@ -316,7 +321,11 @@ static int rsync_transport_push(struct transport *transport,
} else if (write_refs_to_temp_dir(&temp_dir, refspec_nr, refspec))
return -1;

i = (flags & TRANSPORT_PUSH_FORCE) ? 2 : 3;
i = 2;
if (flags & TRANSPORT_PUSH_DRY_RUN)
args[i++] = "--dry-run";
if (!(flags & TRANSPORT_PUSH_FORCE))
args[i++] = "--ignore-existing";
args[i++] = temp_dir.buf;
args[i++] = transport->url;
args[i++] = NULL;
Expand Down

0 comments on commit ee020f3

Please sign in to comment.