..wayne..
---- orig/clientserver.c 2004-11-27 18:27:35
+--- orig/clientserver.c 2005-01-01 21:11:00
+++ clientserver.c 2004-08-10 15:44:15
-@@ -48,12 +48,14 @@ extern int no_detach;
+@@ -49,12 +49,14 @@ extern int no_detach;
extern int default_af_hint;
extern char *bind_address;
extern struct exclude_list_struct server_exclude_list;
/**
* Run a client connected to an rsyncd. The alternative to this
* function for remote-shell connections is do_cmd().
-@@ -300,26 +302,28 @@ static int rsync_module(int f_in, int f_
+@@ -304,26 +306,28 @@ static int rsync_module(int f_in, int f_
/* TODO: Perhaps take a list of gids, and make them into the
* supplementary groups. */
add_exclude(&exclude_list, default_cvsignore,
XFLG_WORD_SPLIT | XFLG_WORDS_ONLY);
---- orig/flist.c 2004-09-21 09:40:27
+--- orig/flist.c 2005-01-01 21:11:00
+++ flist.c 2004-08-12 18:59:28
@@ -40,10 +40,9 @@ extern int module_id;
extern int ignore_errors;
return 1;
return 0;
}
-@@ -978,15 +971,7 @@ void send_file_name(int f, struct file_l
+@@ -983,15 +976,7 @@ void send_file_name(int f, struct file_l
if (recursive && S_ISDIR(file->mode)
&& !(file->flags & FLAG_MOUNT_POINT)) {
}
}
-@@ -997,6 +982,7 @@ static void send_directory(int f, struct
+@@ -1002,6 +987,7 @@ static void send_directory(int f, struct
struct dirent *di;
char fname[MAXPATHLEN];
unsigned int offset;
char *p;
d = opendir(dir);
-@@ -1020,18 +1006,7 @@ static void send_directory(int f, struct
+@@ -1025,18 +1011,7 @@ static void send_directory(int f, struct
offset++;
}
for (errno = 0, di = readdir(d); di; errno = 0, di = readdir(d)) {
char *dname = d_name(di);
-@@ -1052,6 +1027,8 @@ static void send_directory(int f, struct
+@@ -1057,6 +1032,8 @@ static void send_directory(int f, struct
rsyserr(FERROR, errno, "readdir(%s)", dir);
}
closedir(d);
}
-@@ -1071,6 +1048,7 @@ struct file_list *send_file_list(int f,
+@@ -1076,6 +1053,7 @@ struct file_list *send_file_list(int f,
char *p, *dir, olddir[sizeof curr_dir];
char lastpath[MAXPATHLEN] = "";
struct file_list *flist;
int64 start_write;
int use_ff_fd = 0;
-@@ -1091,6 +1069,10 @@ struct file_list *send_file_list(int f,
+@@ -1096,6 +1074,10 @@ struct file_list *send_file_list(int f,
exit_cleanup(RERR_FILESELECT);
}
use_ff_fd = 1;
}
}
-@@ -1121,6 +1103,15 @@ struct file_list *send_file_list(int f,
+@@ -1126,6 +1108,15 @@ struct file_list *send_file_list(int f,
}
}
if (link_stat(fname, &st, keep_dirlinks) != 0) {
if (f != -1) {
io_error |= IOERR_GENERAL;
---- orig/options.c 2004-11-27 18:27:35
+--- orig/options.c 2005-01-01 21:11:00
+++ options.c 2004-10-14 17:26:10
@@ -296,6 +296,7 @@ void usage(enum logcode F)
rprintf(F," --include=PATTERN don't exclude files matching PATTERN\n");
+ rprintf(F," -E same as --exclude='. -p /.rsync-excludes'\n");
rprintf(F," -0, --from0 all *-from file lists are delimited by nulls\n");
rprintf(F," --version print version number\n");
- rprintf(F," --blocking-io use blocking I/O for the remote shell\n");
-@@ -392,6 +393,7 @@ static struct poptOption long_options[]
+ rprintf(F," --port=PORT specify double-colon alternate port number\n");
+@@ -393,6 +394,7 @@ static struct poptOption long_options[]
{"ignore-errors", 0, POPT_ARG_NONE, &ignore_errors, 0, 0, 0 },
{"blocking-io", 0, POPT_ARG_VAL, &blocking_io, 1, 0, 0 },
{"no-blocking-io", 0, POPT_ARG_VAL, &blocking_io, 0, 0, 0 },
+ {0, 'E', POPT_ARG_NONE, 0, 'E', 0, 0 },
{0, 'P', POPT_ARG_NONE, 0, 'P', 0, 0 },
+ {"port", 0, POPT_ARG_INT, &rsync_port, 0, 0, 0 },
{"log-format", 0, POPT_ARG_STRING, &log_format, 0, 0, 0 },
- {"bwlimit", 0, POPT_ARG_INT, &bwlimit, 0, 0, 0 },
-@@ -667,6 +669,11 @@ int parse_arguments(int *argc, const cha
+@@ -668,6 +670,11 @@ int parse_arguments(int *argc, const cha
am_sender = 1;
break;
case 'P':
do_progress = 1;
keep_partial = 1;
---- orig/rsync.h 2004-11-27 17:53:24
+--- orig/rsync.h 2005-01-01 21:11:01
+++ rsync.h 2004-09-22 08:48:53
@@ -111,6 +111,7 @@
#define XFLG_WORDS_ONLY (1<<2)
};
struct exclude_list_struct {
---- orig/rsync.yo 2004-11-27 17:53:24
+--- orig/rsync.yo 2005-01-01 21:11:01
+++ rsync.yo 2004-08-13 00:43:31
@@ -366,6 +366,7 @@ verb(
--include=PATTERN don't exclude files matching PATTERN
+ -E same as --exclude='. -p /.rsync-excludes'
-0 --from0 all file lists are delimited by nulls
--version print version number
- --blocking-io use blocking I/O for the remote shell
-@@ -1076,24 +1077,32 @@ The exclude and include patterns specifi
+ --port=PORT specify double-colon alternate port number
+@@ -1105,24 +1106,32 @@ The exclude and include patterns specifi
selection of which files to transfer and which files to skip.
Rsync builds an ordered list of include/exclude options as specified on
Let's say that we want to match two source files, one with an absolute
path of "/home/me/foo/bar", and one with a path of "/home/you/bar/baz".
-@@ -1140,23 +1149,27 @@ because rsync did not descend through th
+@@ -1169,23 +1178,27 @@ because rsync did not descend through th
hierarchy.
Note also that the --include and --exclude options take one pattern
it() if the pattern ends with a / then it will only match a
directory, not a file, link, or device.
-@@ -1169,22 +1182,31 @@ itemize(
+@@ -1198,22 +1211,31 @@ itemize(
single asterisk pattern "*" will stop at slashes.
it() if the pattern contains a / (not counting a trailing /) or a "**"
)
The +/- rules are most useful in a list that was read from a file, allowing
-@@ -1231,8 +1253,160 @@ itemize(
+@@ -1260,8 +1282,160 @@ itemize(
it() --include "*/" --include "*.c" --exclude "*" would include all
directories and C source files
it() --include "foo/" --include "foo/bar.c" --exclude "*" would include