X-Git-Url: https://mattmccutchen.net/rsync/rsync-patches.git/blobdiff_plain/03ae01a2f48215e4ab7d09a7d89c08f2549ece62..ba50e96cb14f8432dbff5d6e2fb076838e25ac23:/atimes.diff diff --git a/atimes.diff b/atimes.diff index d212c27..e098d5d 100644 --- a/atimes.diff +++ b/atimes.diff @@ -15,7 +15,7 @@ command before "make": rprintf(FINFO, "flist->length=%.0f\n", (double) fptr[i]->length); rprintf(FINFO, "flist->mode=%#o\n", (int) fptr[i]->mode); ---- orig/flist.c 2005-01-01 21:11:00 +--- orig/flist.c 2005-01-21 00:35:26 +++ flist.c 2004-07-03 20:15:41 @@ -59,6 +59,7 @@ extern int relative_paths; extern int implied_dirs; @@ -53,7 +53,7 @@ command before "make": static time_t modtime; + static time_t atime; static mode_t mode; - static uint64 dev; + static int64 dev; static dev_t rdev; @@ -349,7 +351,7 @@ void send_file_entry(struct file_struct @@ -92,7 +92,7 @@ command before "make": static time_t modtime; + static time_t atime; static mode_t mode; - static uint64 dev; + static int64 dev; static dev_t rdev; @@ -542,7 +553,7 @@ void receive_file_entry(struct file_stru struct file_struct *file; @@ -114,7 +114,7 @@ command before "make": uid = (uid_t)read_int(f); @@ -647,6 +660,7 @@ void receive_file_entry(struct file_stru - file->flags = flags & XMIT_TOP_DIR ? FLAG_TOP_DIR : 0; + file->flags = flags & XMIT_DEL_START ? FLAG_DEL_START : 0; file->modtime = modtime; + file->atime = atime; file->length = file_length; @@ -128,7 +128,7 @@ command before "make": file->length = st.st_size; file->mode = st.st_mode; file->uid = st.st_uid; ---- orig/generator.c 2005-01-01 21:11:00 +--- orig/generator.c 2005-01-20 23:05:34 +++ generator.c 2004-11-03 23:02:12 @@ -96,7 +96,7 @@ static int unchanged_file(char *fn, stru if (ignore_times) @@ -139,7 +139,7 @@ command before "make": } -@@ -513,7 +513,7 @@ static void recv_generator(char *fname, +@@ -492,7 +492,7 @@ static void recv_generator(char *fname, } if (update_only && fnamecmp_type == FNAMECMP_FNAME @@ -148,7 +148,7 @@ command before "make": if (verbose > 1) rprintf(FINFO, "%s is newer\n", safe_fname(fname)); return; ---- orig/options.c 2005-01-01 21:11:00 +--- orig/options.c 2005-01-20 23:05:34 +++ options.c 2004-07-03 20:15:41 @@ -48,6 +48,7 @@ int preserve_devices = 0; int preserve_uid = 0; @@ -158,7 +158,7 @@ command before "make": int update_only = 0; int cvs_exclude = 0; int dry_run = 0; -@@ -260,6 +261,7 @@ void usage(enum logcode F) +@@ -261,6 +262,7 @@ void usage(enum logcode F) rprintf(F," -g, --group preserve group\n"); rprintf(F," -D, --devices preserve devices (root only)\n"); rprintf(F," -t, --times preserve times\n"); @@ -166,7 +166,7 @@ command before "make": rprintf(F," -S, --sparse handle sparse files efficiently\n"); rprintf(F," -n, --dry-run show what would have been transferred\n"); rprintf(F," -W, --whole-file copy whole files, no incremental checks\n"); -@@ -366,6 +368,7 @@ static struct poptOption long_options[] +@@ -367,6 +369,7 @@ static struct poptOption long_options[] {"group", 'g', POPT_ARG_NONE, &preserve_gid, 0, 0, 0 }, {"devices", 'D', POPT_ARG_NONE, &preserve_devices, 0, 0, 0 }, {"times", 't', POPT_ARG_NONE, &preserve_times, 0, 0, 0 }, @@ -174,7 +174,7 @@ command before "make": {"checksum", 'c', POPT_ARG_NONE, &always_checksum, 0, 0, 0 }, {"verbose", 'v', POPT_ARG_NONE, 0, 'v', 0, 0 }, {"quiet", 'q', POPT_ARG_NONE, 0, 'q', 0, 0 }, -@@ -1081,6 +1084,8 @@ void server_options(char **args,int *arg +@@ -1080,6 +1083,8 @@ void server_options(char **args,int *arg argstr[x++] = 'D'; if (preserve_times) argstr[x++] = 't'; @@ -183,7 +183,7 @@ command before "make": if (preserve_perms) argstr[x++] = 'p'; if (recurse) ---- orig/rsync.c 2004-09-07 21:45:30 +--- orig/rsync.c 2005-01-20 23:52:09 +++ rsync.c 2004-08-13 08:17:28 @@ -25,6 +25,7 @@ extern int verbose; @@ -193,7 +193,7 @@ command before "make": extern int am_root; extern int am_sender; extern int am_generator; -@@ -145,17 +146,32 @@ int set_perms(char *fname,struct file_st +@@ -167,17 +168,32 @@ int set_perms(char *fname,struct file_st if (!preserve_times || S_ISLNK(st->st_mode) || (make_backups && !backup_dir && S_ISDIR(st->st_mode))) flags |= PERMS_SKIP_MTIME; @@ -230,7 +230,7 @@ command before "make": } change_uid = am_root && preserve_uid && st->st_uid != file->uid; ---- orig/rsync.h 2005-01-01 21:11:01 +--- orig/rsync.h 2005-01-21 00:35:26 +++ rsync.h 2004-07-03 20:15:41 @@ -54,6 +54,7 @@ #define XMIT_HAS_IDEV_DATA (1<<9) @@ -240,7 +240,7 @@ command before "make": /* These flags are used in the live flist data. */ -@@ -114,6 +115,7 @@ +@@ -115,6 +116,7 @@ #define PERMS_REPORT (1<<0) #define PERMS_SKIP_MTIME (1<<1) @@ -248,7 +248,7 @@ command before "make": #define FULL_FLUSH 1 #define NORMAL_FLUSH 0 -@@ -436,6 +438,7 @@ struct file_struct { +@@ -433,6 +435,7 @@ struct file_struct { struct hlink *links; } link_u; time_t modtime; @@ -256,7 +256,7 @@ command before "make": uid_t uid; gid_t gid; mode_t mode; ---- orig/rsync.yo 2005-01-01 21:11:01 +--- orig/rsync.yo 2005-01-20 19:47:08 +++ rsync.yo 2004-07-03 20:15:41 @@ -330,6 +330,7 @@ verb( -g, --group preserve group @@ -266,7 +266,7 @@ command before "make": -S, --sparse handle sparse files efficiently -n, --dry-run show what would have been transferred -W, --whole-file copy whole files, no incremental checks -@@ -628,6 +629,11 @@ cause the next transfer to behave as if +@@ -630,6 +631,11 @@ cause the next transfer to behave as if updated (though the rsync algorithm will make the update fairly efficient if the files haven't actually changed, you're much better off using -t). @@ -346,7 +346,7 @@ command before "make": if [ -z "$failed" ] ; then return 0 else ---- orig/tls.c 2005-01-01 21:11:01 +--- orig/tls.c 2005-01-19 20:11:10 +++ tls.c 2004-07-03 20:15:41 @@ -39,6 +39,7 @@ @@ -394,9 +394,9 @@ command before "make": + char mtimebuf[50]; + char atimebuf[50]; char linkbuf[4096]; - int ret; -@@ -102,19 +119,8 @@ static void list_file(const char *fname) + if (do_lstat(fname, &buf) < 0) +@@ -96,19 +113,8 @@ static void list_file(const char *fname) permstring(permbuf, buf.st_mode); @@ -418,7 +418,7 @@ command before "make": /* TODO: Perhaps escape special characters in fname? */ -@@ -125,24 +131,55 @@ static void list_file(const char *fname) +@@ -119,24 +125,55 @@ static void list_file(const char *fname) (long)minor(buf.st_rdev)); } else /* NB: use double for size since it might not fit in a long. */ printf("%12.0f", (double)buf.st_size); @@ -483,18 +483,15 @@ command before "make": return 0; } ---- orig/util.c 2004-09-07 21:45:30 -+++ util.c 2004-07-03 20:15:41 -@@ -128,31 +128,39 @@ void overflow(char *str) +--- orig/util.c 2005-01-20 23:05:34 ++++ util.c 2005-01-21 18:56:05 +@@ -128,12 +128,20 @@ void overflow(char *str) -int set_modtime(char *fname, time_t modtime) +int set_times(char *fname, time_t modtime, time_t atime) { - if (dry_run) - return 0; - if (verbose > 2) { - rprintf(FINFO, "set modtime of %s to (%ld) %s", + char mtimebuf[200]; @@ -511,6 +508,8 @@ command before "make": + (long)atime, atimebuf); } + if (dry_run) +@@ -142,17 +150,17 @@ int set_modtime(char *fname, time_t modt { #ifdef HAVE_UTIMBUF struct utimbuf tbuf; @@ -531,7 +530,7 @@ command before "make": t[0].tv_usec = 0; t[1].tv_sec = modtime; t[1].tv_usec = 0; -@@ -1142,8 +1150,8 @@ int msleep(int t) +@@ -1138,8 +1146,8 @@ int msleep(int t) /** @@ -542,7 +541,7 @@ command before "make": * --modify-window). * * @retval 0 if the times should be treated as the same -@@ -1152,7 +1160,7 @@ int msleep(int t) +@@ -1148,7 +1156,7 @@ int msleep(int t) * * @retval -1 if the 2nd is later **/