./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/acls.c b/acls.c
--- a/acls.c
+++ b/acls.c
Fix a bug that could lose some bits when stripping some (supposedly)
superfluous ACL info.
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/lib/sysacls.c b/lib/sysacls.c
--- a/lib/sysacls.c
+++ b/lib/sysacls.c
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/compat.c b/compat.c
--- a/compat.c
+++ b/compat.c
f_name(f, NULL));
}
}
-@@ -2119,7 +2128,7 @@ static void touch_up_dirs(struct file_list *flist, int ndx)
+@@ -2120,7 +2129,7 @@ static void touch_up_dirs(struct file_list *flist, int ndx)
STRUCT_STAT st;
if (link_stat(fname, &st, 0) == 0
&& cmp_time(st.st_mtime, file->modtime) != 0)
--super receiver attempts super-user activities
--fake-super store/recover privileged attrs using xattrs
-S, --sparse handle sparse files efficiently
-@@ -1057,6 +1058,12 @@ it is preserving modification times (see bf(--times)). If NFS is sharing
+@@ -1058,6 +1059,12 @@ it is preserving modification times (see bf(--times)). If NFS is sharing
the directories on the receiving side, it is a good idea to use bf(-O).
This option is inferred if you use bf(--backup) without bf(--backup-dir).
dit(bf(--super)) This tells the receiving side to attempt super-user
activities even if the receiving rsync wasn't run by the super-user. These
activities include: preserving users via the bf(--owner) option, preserving
-@@ -1812,7 +1819,10 @@ quote(itemization(
+@@ -1809,7 +1816,10 @@ quote(itemization(
sender's value (requires bf(--owner) and super-user privileges).
it() A bf(g) means the group is different and is being updated to the
sender's value (requires bf(--group) and the authority to set the group).
diff --git a/testsuite/rsync.fns b/testsuite/rsync.fns
--- a/testsuite/rsync.fns
+++ b/testsuite/rsync.fns
-@@ -219,6 +219,10 @@ checkit() {
+@@ -220,6 +220,10 @@ checkit() {
# We can just write everything to stdout/stderr, because the
# wrapper hides it unless there is a problem.
echo "Running: \"$1\""
eval "$1"
status=$?
-@@ -226,10 +230,13 @@ checkit() {
+@@ -227,10 +231,13 @@ checkit() {
failed="$failed status=$status"
fi
diff --git a/util.c b/util.c
--- a/util.c
+++ b/util.c
-@@ -126,20 +126,24 @@ NORETURN void overflow_exit(const char *str)
+@@ -125,20 +125,24 @@ NORETURN void overflow_exit(const char *str)
/* This returns 0 for success, 1 for a symlink if symlink time-setting
* is not possible, or -1 for any other error. */
break;
if (errno != ENOSYS)
return -1;
-@@ -149,7 +153,7 @@ int set_modtime(const char *fname, time_t modtime, mode_t mode)
+@@ -148,7 +152,7 @@ int set_modtime(const char *fname, time_t modtime, mode_t mode)
#ifdef HAVE_LUTIMES
#include "case_N.h"
break;
if (errno != ENOSYS)
return -1;
-@@ -168,10 +172,10 @@ int set_modtime(const char *fname, time_t modtime, mode_t mode)
+@@ -167,10 +171,10 @@ int set_modtime(const char *fname, time_t modtime, mode_t mode)
#include "case_N.h"
#ifdef HAVE_UTIMES
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/backup.c b/backup.c
--- a/backup.c
+++ b/backup.c
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/errcode.h b/errcode.h
--- a/errcode.h
+++ b/errcode.h
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/checksum.c b/checksum.c
--- a/checksum.c
+++ b/checksum.c
}
statret = link_stat(fname, &sx.st, keep_dirlinks && is_dir);
-@@ -1853,7 +1862,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1854,7 +1863,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
;
else if (fnamecmp_type == FNAMECMP_FUZZY)
;
}
need_new_dirscan = 0;
}
-@@ -1570,6 +1572,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1571,6 +1573,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
else
change_local_filter_dir(fname, strlen(fname), F_DEPTH(file));
}
goto cleanup;
}
-@@ -1868,6 +1871,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1869,6 +1872,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
handle_partial_dir(partialptr, PDIR_DELETE);
}
set_file_attrs(fname, file, &sx, NULL, maybe_ATTRS_REPORT);
if (itemizing)
itemize(fnamecmp, file, ndx, statret, &sx, 0, 0, NULL);
#ifdef SUPPORT_HARD_LINKS
-@@ -2311,6 +2316,7 @@ void generate_files(int f_out, const char *local_name)
+@@ -2312,6 +2317,7 @@ void generate_files(int f_out, const char *local_name)
} else
change_local_filter_dir(fbuf, strlen(fbuf), F_DEPTH(fp));
}
}
for (i = cur_flist->low; i <= cur_flist->high; i++) {
struct file_struct *file = cur_flist->sorted[i];
-@@ -2395,6 +2401,9 @@ void generate_files(int f_out, const char *local_name)
+@@ -2396,6 +2402,9 @@ void generate_files(int f_out, const char *local_name)
wait_for_receiver();
}
|| (preserve_hard_links && F_IS_HLINKED(file)))
send_msg_int(MSG_SUCCESS, ndx);
handle_partial_dir(partialptr, PDIR_DELETE);
-@@ -789,7 +790,7 @@ int recv_files(int f_in, char *local_name)
+@@ -790,7 +791,7 @@ int recv_files(int f_in, char *local_name)
case 2:
break;
case 1:
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
extern int preserve_specials;
extern int preserve_hard_links;
extern int preserve_executability;
-@@ -1749,7 +1750,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1750,7 +1751,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
goto cleanup;
}
extern int verbose;
extern int dry_run;
-@@ -40,6 +41,7 @@ extern int preserve_xattrs;
+@@ -41,6 +42,7 @@ extern int preserve_xattrs;
extern int preserve_links;
extern int preserve_devices;
extern int preserve_specials;
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/exclude.c b/exclude.c
--- a/exclude.c
+++ b/exclude.c
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/access.c b/access.c
--- a/access.c
+++ b/access.c
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
AC_HEADER_MAJOR
AC_CACHE_CHECK([if makedev takes 3 args],rsync_cv_MAKEDEV_TAKES_3_ARGS,[
-@@ -999,6 +999,29 @@ if test x"$enable_acl_support" = x"no" -o x"$enable_xattr_support" = x"no" -o x"
+@@ -1001,6 +1001,29 @@ if test x"$enable_acl_support" = x"no" -o x"$enable_xattr_support" = x"no" -o x"
fi
fi
return memcmp(sum, F_SUM(file), checksum_len) == 0;
}
-@@ -2271,6 +2273,9 @@ void generate_files(int f_out, const char *local_name)
+@@ -2272,6 +2274,9 @@ void generate_files(int f_out, const char *local_name)
* notice that and let us know via the message pipe (or its closing). */
ignore_timeout = 1;
if (!fbuf) {
change_local_filter_dir(NULL, 0, 0);
-@@ -2046,6 +2047,21 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -2047,6 +2048,21 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
fnamecmp = partialptr;
fnamecmp_type = FNAMECMP_PARTIAL_DIR;
statret = 0;
--compare-dest=DIR also compare received files relative to DIR
--copy-dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-@@ -1580,6 +1582,17 @@ the bf(--partial-dir) option, that directory will be used instead. These
+@@ -1577,6 +1579,17 @@ the bf(--partial-dir) option, that directory will be used instead. These
potential alternate-basis files will be removed as the transfer progresses.
This option conflicts with bf(--inplace) and bf(--append).
a file that can't use it, while missing out on giving it to a file
that could use it.
-based-on: e71130fd7739562cd190a92d3f8bcbda02168892
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/compat.c b/compat.c
--- a/compat.c
+++ b/compat.c
static int phase = 0;
static int dflt_perms;
-@@ -1556,9 +1706,12 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1557,9 +1707,12 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
}
else if (delete_during && f_out != -1 && !phase
&& !(file->flags & FLAG_MISSING_DIR)) {
change_local_filter_dir(fname, strlen(fname), F_DEPTH(file));
}
goto cleanup;
-@@ -1842,8 +1995,14 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1843,8 +1996,14 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
goto cleanup;
}
#endif
rsyserr(FERROR_XFER, stat_errno, "recv_generator: failed to stat %s",
full_fname(fname));
goto cleanup;
-@@ -2246,6 +2405,12 @@ void generate_files(int f_out, const char *local_name)
+@@ -2247,6 +2406,12 @@ void generate_files(int f_out, const char *local_name)
if (verbose > 2)
rprintf(FINFO, "generator starting pid=%ld\n", (long)getpid());
if (delete_before && !solo_file && cur_flist->used > 0)
do_delete_pass();
if (delete_during == 2) {
-@@ -2256,7 +2421,7 @@ void generate_files(int f_out, const char *local_name)
+@@ -2257,7 +2422,7 @@ void generate_files(int f_out, const char *local_name)
}
do_progress = 0;
whole_file = 0;
if (verbose >= 2) {
rprintf(FINFO, "delta-transmission %s\n",
-@@ -2298,7 +2463,7 @@ void generate_files(int f_out, const char *local_name)
+@@ -2299,7 +2464,7 @@ void generate_files(int f_out, const char *local_name)
dirdev = MAKEDEV(DEV_MAJOR(devp), DEV_MINOR(devp));
} else
dirdev = MAKEDEV(0, 0);
} else
change_local_filter_dir(fbuf, strlen(fbuf), F_DEPTH(fp));
}
-@@ -2345,7 +2510,21 @@ void generate_files(int f_out, const char *local_name)
+@@ -2346,7 +2511,21 @@ void generate_files(int f_out, const char *local_name)
} while ((cur_flist = cur_flist->next) != NULL);
if (delete_during)
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
extern int ignore_existing;
extern int ignore_non_existing;
extern int inplace;
-@@ -1784,6 +1785,12 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1785,6 +1786,12 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
goto cleanup;
}
fnamecmp_type = FNAMECMP_FNAME;
if (statret == 0 && !S_ISREG(sx.st.st_mode)) {
-@@ -2157,6 +2164,7 @@ void check_for_finished_files(int itemizing, enum logcode code, int check_redo)
+@@ -2158,6 +2165,7 @@ void check_for_finished_files(int itemizing, enum logcode code, int check_redo)
ignore_existing = -ignore_existing;
ignore_non_existing = -ignore_non_existing;
update_only = -update_only;
always_checksum = -always_checksum;
size_only = -size_only;
append_mode = -append_mode;
-@@ -2182,6 +2190,7 @@ void check_for_finished_files(int itemizing, enum logcode code, int check_redo)
+@@ -2183,6 +2191,7 @@ void check_for_finished_files(int itemizing, enum logcode code, int check_redo)
ignore_existing = -ignore_existing;
ignore_non_existing = -ignore_non_existing;
update_only = -update_only;
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/clientserver.c b/clientserver.c
--- a/clientserver.c
+++ b/clientserver.c
--no-detach do not detach from the parent
--port=PORT listen on alternate port number
--log-file=FILE override the "log file" setting
-@@ -2245,6 +2246,14 @@ The default is /etc/rsyncd.conf unless the daemon is running over
+@@ -2242,6 +2243,14 @@ The default is /etc/rsyncd.conf unless the daemon is running over
a remote shell program and the remote user is not the super-user; in that case
the default is rsyncd.conf in the current directory (typically $HOME).
* pass --drop-cache on to the remote server
* make test works now
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/checksum.c b/checksum.c
--- a/checksum.c
+++ b/checksum.c
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
-@@ -568,6 +568,7 @@ AC_FUNC_ALLOCA
+@@ -570,6 +570,7 @@ AC_FUNC_ALLOCA
AC_CHECK_FUNCS(waitpid wait4 getcwd strdup chown chmod lchmod mknod mkfifo \
fchmod fstat ftruncate strchr readlink link utime utimes lutimes strftime \
memmove lchown vsnprintf snprintf vasprintf asprintf setsid strpbrk \
-n, --dry-run perform a trial run with no changes made
-W, --whole-file copy files whole (w/o delta-xfer algorithm)
-x, --one-file-system don't cross filesystem boundaries
-@@ -1106,6 +1107,10 @@ NOTE: Don't use this option when the destination is a Solaris "tmpfs"
- filesystem. It seems to have problems seeking over null regions,
- and ends up corrupting the files.
+@@ -1103,6 +1104,10 @@ dit(bf(-S, --sparse)) Try to handle sparse files efficiently so they take
+ up less space on the destination. Conflicts with bf(--inplace) because it's
+ not possible to overwrite data in a sparse fashion.
+dit(bf(--drop-cache)) Tell the OS to drop the caching of the file data. This
+prevents rsync from filling up the filesystem cache. This can sometimes help
diff --git a/util.c b/util.c
--- a/util.c
+++ b/util.c
-@@ -26,6 +26,7 @@
+@@ -25,6 +25,7 @@
+
extern int verbose;
- extern int dry_run;
extern int module_id;
+extern int drop_cache;
extern int modify_window;
extern int relative_paths;
extern int preserve_times;
-@@ -43,6 +44,131 @@ char curr_dir[MAXPATHLEN];
+@@ -42,6 +43,131 @@ char curr_dir[MAXPATHLEN];
unsigned int curr_dir_len;
int curr_dir_depth; /* This is only set for a sanitizing daemon. */
./configure
make
-based-on: 959bd708209d6cbb9c9c7aa34de7b8f9423da0de
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
diff --git a/util.c b/util.c
--- a/util.c
+++ b/util.c
-@@ -26,6 +26,7 @@
+@@ -25,6 +25,7 @@
+
extern int verbose;
- extern int dry_run;
extern int module_id;
+extern int do_fsync;
extern int modify_window;
extern int relative_paths;
extern int preserve_times;
-@@ -345,6 +346,13 @@ int copy_file(const char *source, const char *dest, int ofd,
+@@ -344,6 +345,13 @@ int copy_file(const char *source, const char *dest, int ofd,
full_fname(source));
}
- Make this code handle multibyte character encodings, and honor the
--iconv setting when converting case.
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/exclude.c b/exclude.c
--- a/exclude.c
+++ b/exclude.c
--address=ADDRESS bind address for outgoing socket to daemon
--port=PORT specify double-colon alternate port number
--sockopts=OPTIONS specify custom TCP options
-@@ -1522,6 +1523,10 @@ side will also be translated
+@@ -1519,6 +1520,10 @@ side will also be translated
from the local to the remote character-set. The translation happens before
wild-cards are expanded. See also the bf(--files-from) option.
./configure
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
}
static void handle_delayed_updates(char *local_name)
-@@ -739,7 +750,7 @@ int recv_files(int f_in, char *local_name)
+@@ -740,7 +751,7 @@ int recv_files(int f_in, char *local_name)
/* recv file data */
recv_ok = receive_data(f_in, fnamecmp, fd1, st.st_size,
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/clientserver.c b/clientserver.c
--- a/clientserver.c
+++ b/clientserver.c
diff --git a/util.c b/util.c
--- a/util.c
+++ b/util.c
-@@ -32,9 +32,10 @@ extern int preserve_times;
+@@ -31,9 +31,10 @@ extern int preserve_times;
extern int human_readable;
extern int preserve_xattrs;
extern char *module_dir;
extern struct filter_list_struct daemon_filter_list;
int sanitize_paths = 0;
-@@ -508,24 +509,44 @@ void kill_all(int sig)
+@@ -507,24 +508,44 @@ void kill_all(int sig)
/** Turn a user name into a uid */
int name_to_uid(const char *name, uid_t *uid_p)
{
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/access.c b/access.c
--- a/access.c
+++ b/access.c
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
--super receiver attempts super-user activities
--fake-super store/recover privileged attrs using xattrs
-S, --sparse handle sparse files efficiently
-@@ -1057,6 +1058,10 @@ it is preserving modification times (see bf(--times)). If NFS is sharing
+@@ -1058,6 +1059,10 @@ it is preserving modification times (see bf(--times)). If NFS is sharing
the directories on the receiving side, it is a good idea to use bf(-O).
This option is inferred if you use bf(--backup) without bf(--backup-dir).
./configure
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
./configure
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/compat.c b/compat.c
--- a/compat.c
+++ b/compat.c
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
-@@ -570,6 +570,7 @@ AC_CHECK_FUNCS(waitpid wait4 getcwd strdup chown chmod lchmod mknod mkfifo \
+@@ -572,6 +572,7 @@ AC_CHECK_FUNCS(waitpid wait4 getcwd strdup chown chmod lchmod mknod mkfifo \
memmove lchown vsnprintf snprintf vasprintf asprintf setsid strpbrk \
strlcat strlcpy strtol mallinfo getgroups setgroups geteuid getegid \
setlocale setmode open64 lseek64 mkstemp64 mtrace va_copy __va_copy \
seteuid strerror putenv iconv_open locale_charset nl_langinfo getxattr \
extattr_get_link sigaction sigprocmask setattrlist \
utimensat)
-@@ -579,6 +580,42 @@ if test x"$ac_cv_func_iconv_open" != x"yes"; then
+@@ -581,6 +582,42 @@ if test x"$ac_cv_func_iconv_open" != x"yes"; then
AC_CHECK_FUNC(libiconv_open, [ac_cv_func_iconv_open=yes; AC_DEFINE(HAVE_ICONV_OPEN, 1)])
fi
-n, --dry-run perform a trial run with no changes made
-W, --whole-file copy files whole (w/o delta-xfer algorithm)
-x, --one-file-system don't cross filesystem boundaries
-@@ -1106,6 +1107,17 @@ NOTE: Don't use this option when the destination is a Solaris "tmpfs"
- filesystem. It seems to have problems seeking over null regions,
- and ends up corrupting the files.
+@@ -1103,6 +1104,17 @@ dit(bf(-S, --sparse)) Try to handle sparse files efficiently so they take
+ up less space on the destination. Conflicts with bf(--inplace) because it's
+ not possible to overwrite data in a sparse fashion.
+dit(bf(--preallocate)) This tells the receiver to allocate each destination
+file to its eventual size before writing data to the file. Rsync will only use
diff --git a/util.c b/util.c
--- a/util.c
+++ b/util.c
-@@ -25,6 +25,7 @@
+@@ -24,6 +24,7 @@
+ #include "ifuncs.h"
extern int verbose;
- extern int dry_run;
+extern int preallocate_files;
extern int module_id;
extern int modify_window;
extern int relative_paths;
-@@ -287,6 +288,9 @@ int copy_file(const char *source, const char *dest, int ofd,
+@@ -286,6 +287,9 @@ int copy_file(const char *source, const char *dest, int ofd,
int ifd;
char buf[1024 * 8];
int len; /* Number of bytes read into `buf'. */
if ((ifd = do_open(source, O_RDONLY, 0)) < 0) {
int save_errno = errno;
-@@ -320,6 +324,25 @@ int copy_file(const char *source, const char *dest, int ofd,
+@@ -319,6 +323,25 @@ int copy_file(const char *source, const char *dest, int ofd,
}
}
while ((len = safe_read(ifd, buf, sizeof buf)) > 0) {
if (full_write(ofd, buf, len) < 0) {
int save_errno = errno;
-@@ -329,6 +352,9 @@ int copy_file(const char *source, const char *dest, int ofd,
+@@ -328,6 +351,9 @@ int copy_file(const char *source, const char *dest, int ofd,
errno = save_errno;
return -1;
}
}
if (len < 0) {
-@@ -345,6 +371,16 @@ int copy_file(const char *source, const char *dest, int ofd,
+@@ -344,6 +370,16 @@ int copy_file(const char *source, const char *dest, int ofd,
full_fname(source));
}
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
--out-format=FORMAT output updates using the specified FORMAT
--log-file=FILE log what we're doing to the specified FILE
--log-file-format=FMT log updates using the specified FMT
-@@ -1083,16 +1084,16 @@ This is a good way to backup data without using a super-user, and to store
+@@ -1084,16 +1085,16 @@ This is a good way to backup data without using a super-user, and to store
ACLs from incompatible systems.
The bf(--fake-super) option only affects the side where the option is used.
This option is overridden by both bf(--super) and bf(--no-super).
-@@ -1358,6 +1359,36 @@ machine for use with the bf(--relative) option. For instance:
+@@ -1355,6 +1356,36 @@ machine for use with the bf(--relative) option. For instance:
quote(tt( rsync -avR --rsync-path="cd /a/b && rsync" host:c/d /e/))
dit(bf(-C, --cvs-exclude)) This is a useful shorthand for excluding a
broad range of files that you often don't want to transfer between
systems. It uses a similar algorithm to CVS to determine if
-@@ -1857,7 +1888,7 @@ option if you wish to override this.
+@@ -1854,7 +1885,7 @@ option if you wish to override this.
Here's a example command that requests the remote side to log what is
happening:
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
TODO: the configure changes should abort if the user requests --enable-slp
and we can't honor that request.
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
-@@ -666,6 +666,29 @@ if test $rsync_cv_can_hardlink_special = yes; then
+@@ -668,6 +668,29 @@ if test $rsync_cv_can_hardlink_special = yes; then
AC_DEFINE(CAN_HARDLINK_SPECIAL, 1, [Define to 1 if link() can hard-link special files.])
fi
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/syscall.c b/syscall.c
--- a/syscall.c
+++ b/syscall.c
-- Matt McCutchen <hashproduct@gmail.com>
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
--del an alias for --delete-during
--delete delete extraneous files from dest dirs
--delete-before receiver deletes before transfer (default)
-@@ -1177,6 +1178,14 @@ dit(bf(--remove-source-files)) This tells rsync to remove from the sending
+@@ -1174,6 +1175,14 @@ dit(bf(--remove-source-files)) This tells rsync to remove from the sending
side the files (meaning non-directories) that are a part of the transfer
and have been successfully duplicated on the receiving side.
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
while (1) {
cleanup_disable();
-@@ -737,6 +757,9 @@ int recv_files(int f_in, char *local_name)
+@@ -738,6 +758,9 @@ int recv_files(int f_in, char *local_name)
else if (!am_server && verbose && do_progress)
rprintf(FINFO, "%s\n", fname);
/* recv file data */
recv_ok = receive_data(f_in, fnamecmp, fd1, st.st_size,
fname, fd2, F_LENGTH(file));
-@@ -751,6 +774,16 @@ int recv_files(int f_in, char *local_name)
+@@ -752,6 +775,16 @@ int recv_files(int f_in, char *local_name)
exit_cleanup(RERR_FILEIO);
}
--protocol=NUM force an older protocol version to be used
--iconv=CONVERT_SPEC request charset conversion of filenames
--checksum-seed=NUM set block/file checksum seed (advanced)
-@@ -2153,6 +2156,33 @@ file previously generated by bf(--write-batch).
+@@ -2150,6 +2153,33 @@ file previously generated by bf(--write-batch).
If em(FILE) is bf(-), the batch data will be read from standard input.
See the "BATCH MODE" section for details.
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/fileio.c b/fileio.c
--- a/fileio.c
+++ b/fileio.c
-n, --dry-run perform a trial run with no changes made
-W, --whole-file copy files whole (w/o delta-xfer algorithm)
-x, --one-file-system don't cross filesystem boundaries
-@@ -1106,6 +1107,15 @@ NOTE: Don't use this option when the destination is a Solaris "tmpfs"
- filesystem. It seems to have problems seeking over null regions,
- and ends up corrupting the files.
+@@ -1103,6 +1104,15 @@ dit(bf(-S, --sparse)) Try to handle sparse files efficiently so they take
+ up less space on the destination. Conflicts with bf(--inplace) because it's
+ not possible to overwrite data in a sparse fashion.
+dit(bf(--sparse-block=SIZE)) Change the block size used to handle sparse files
+to SIZE bytes. This option only has an effect if the bf(--sparse) (bf(-S))
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/io.c b/io.c
--- a/io.c
+++ b/io.c
--write-batch=FILE write a batched update to FILE
--only-write-batch=FILE like --write-batch but w/o updating dest
--read-batch=FILE read a batched update from FILE
-@@ -2127,6 +2129,19 @@ transfer was too fast, it will wait before sending the next data block. The
+@@ -2124,6 +2126,19 @@ transfer was too fast, it will wait before sending the next data block. The
result is an average transfer rate equaling the specified limit. A value
of zero specifies no limit.
diff --git a/util.c b/util.c
--- a/util.c
+++ b/util.c
-@@ -124,6 +124,133 @@ NORETURN void overflow_exit(const char *str)
+@@ -123,6 +123,133 @@ NORETURN void overflow_exit(const char *str)
exit_cleanup(RERR_MALLOC);
}
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
--checksum-seed=NUM set block/file checksum seed (advanced)
-4, --ipv4 prefer IPv4
-6, --ipv6 prefer IPv6
-@@ -2191,6 +2192,22 @@ daemon uses the charset specified in its "charset" configuration parameter
+@@ -2188,6 +2189,22 @@ daemon uses the charset specified in its "charset" configuration parameter
regardless of the remote charset you actually pass. Thus, you may feel free to
specify just the local charset for a daemon transfer (e.g. bf(--iconv=utf8)).
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/syscall.c b/syscall.c
--- a/syscall.c
+++ b/syscall.c
./configure (optional if already run)
make
-based-on: 8750f64ec7893c263b51e538895af3092bce9f4c
+based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
--timeout=SECONDS set I/O timeout in seconds
--contimeout=SECONDS set daemon connection timeout in seconds
-I, --ignore-times don't skip files that match size and time
-@@ -1713,6 +1716,57 @@ from the source system is used instead. See also the comments on the
+@@ -1710,6 +1713,57 @@ from the source system is used instead. See also the comments on the
the chroot setting affects rsync's ability to look up the names of the
users and groups and what you can do about it.