X-Git-Url: https://mattmccutchen.net/rsync/rsync-patches.git/blobdiff_plain/59d64e0ba3e9b104bed3cb7c99e23066676be9d5..c2f699cc6bfb241c97cc53dfe6bfd0ea0385456c:/omit-dir-changes.diff diff --git a/omit-dir-changes.diff b/omit-dir-changes.diff index 83fe03b..e012c3c 100644 --- a/omit-dir-changes.diff +++ b/omit-dir-changes.diff @@ -1,6 +1,12 @@ This patch from Antti Tapaninen added the --omit-dir-changes option, which tells rsync to not affect any attributes on the directories in the transfer. +To use this patch, run these commands for a successful build: + + patch -p1 mode & CHMOD_BITS) != (st->st_mode & CHMOD_BITS)) iflags |= ITEM_REPORT_PERMS; @@ -26,7 +32,7 @@ tells rsync to not affect any attributes on the directories in the transfer. iflags |= ITEM_REPORT_GROUP; } else iflags |= ITEM_IS_NEW; -@@ -895,7 +897,7 @@ static void recv_generator(char *fname, +@@ -892,7 +894,7 @@ static void recv_generator(char *fname, /* If we're not preserving permissions, change the file-list's * mode based on the local permissions and some heuristics. */ @@ -45,7 +51,7 @@ tells rsync to not affect any attributes on the directories in the transfer. int update_only = 0; int cvs_exclude = 0; int dry_run = 0; -@@ -311,6 +312,7 @@ void usage(enum logcode F) +@@ -313,6 +314,7 @@ void usage(enum logcode F) rprintf(F," -D same as --devices --specials\n"); rprintf(F," -t, --times preserve times\n"); rprintf(F," -O, --omit-dir-times omit directories when preserving times\n"); @@ -53,7 +59,7 @@ tells rsync to not affect any attributes on the directories in the transfer. rprintf(F," --super receiver attempts super-user activities\n"); rprintf(F," -S, --sparse handle sparse files efficiently\n"); rprintf(F," -n, --dry-run show what would have been transferred\n"); -@@ -425,6 +427,7 @@ static struct poptOption long_options[] +@@ -429,6 +431,7 @@ static struct poptOption long_options[] {"no-times", 0, POPT_ARG_VAL, &preserve_times, 0, 0, 0 }, {"no-t", 0, POPT_ARG_VAL, &preserve_times, 0, 0, 0 }, {"omit-dir-times", 'O', POPT_ARG_VAL, &omit_dir_times, 2, 0, 0 }, @@ -61,7 +67,7 @@ tells rsync to not affect any attributes on the directories in the transfer. {"modify-window", 0, POPT_ARG_INT, &modify_window, OPT_MODIFY_WINDOW, 0, 0 }, {"super", 0, POPT_ARG_VAL, &am_root, 2, 0, 0 }, {"no-super", 0, POPT_ARG_VAL, &am_root, 0, 0, 0 }, -@@ -1285,6 +1288,9 @@ int parse_arguments(int *argc, const cha +@@ -1287,6 +1290,9 @@ int parse_arguments(int *argc, const cha "P *%s", backup_suffix); parse_rule(&filter_list, backup_dir_buf, 0, 0); } @@ -71,7 +77,7 @@ tells rsync to not affect any attributes on the directories in the transfer. if (make_backups && !backup_dir) omit_dir_times = 1; -@@ -1513,6 +1519,8 @@ void server_options(char **args,int *arg +@@ -1515,6 +1521,8 @@ void server_options(char **args,int *arg argstr[x++] = 'm'; if (omit_dir_times == 2) argstr[x++] = 'O'; @@ -90,7 +96,7 @@ tells rsync to not affect any attributes on the directories in the transfer. extern int basis_dir_cnt; extern int make_backups; extern int cleanup_got_literal; -@@ -541,7 +542,7 @@ int recv_files(int f_in, struct file_lis +@@ -551,7 +552,7 @@ int recv_files(int f_in, struct file_lis /* If we're not preserving permissions, change the file-list's * mode based on the local permissions and some heuristics. */ @@ -109,7 +115,7 @@ tells rsync to not affect any attributes on the directories in the transfer. extern int am_root; extern int am_server; extern int am_sender; -@@ -159,9 +160,11 @@ int set_file_attrs(char *fname, struct f +@@ -162,9 +163,11 @@ int set_file_attrs(char *fname, struct f updated = 1; }