in each dir's CVS/Entries file as per-dir includes before the dir's list
of excludes taken from the .cvsignore file.
---- orig/exclude.c 2005-04-28 15:56:50
+--- orig/exclude.c 2005-10-14 18:45:50
+++ exclude.c 2005-04-07 18:06:34
-@@ -442,6 +442,14 @@ void *push_local_filters(const char *dir
+@@ -446,6 +446,14 @@ void *push_local_filters(const char *dir
set_filter_dir(dir, dirlen);
}
if (strlcpy(dirbuf + dirbuf_len, ex->pattern,
MAXPATHLEN - dirbuf_len) < MAXPATHLEN - dirbuf_len) {
parse_filter_file(lp, dirbuf, ex->match_flags,
-@@ -957,6 +965,7 @@ void parse_filter_file(struct filter_lis
- char line[MAXPATHLEN+MAX_RULE_PREFIX+1]; /* +1 for trailing slash. */
+@@ -962,6 +970,7 @@ void parse_filter_file(struct filter_lis
+ char line[BIGPATHBUFLEN];
char *eob = line + sizeof line - 1;
int word_split = mflags & MATCHFLG_WORD_SPLIT;
+ int slash_parse = xflags & XFLG_CVS_ENTRIES ? 1 : 0;
if (!fname || !*fname)
return;
-@@ -1001,6 +1010,29 @@ void parse_filter_file(struct filter_lis
+@@ -1006,6 +1015,29 @@ void parse_filter_file(struct filter_lis
continue;
break;
}
if (word_split && isspace(ch))
break;
if (eol_nulls? !ch : (ch == '\n' || ch == '\r'))
-@@ -1010,6 +1042,7 @@ void parse_filter_file(struct filter_lis
+@@ -1015,6 +1047,7 @@ void parse_filter_file(struct filter_lis
else
overflow = 1;
}
if (overflow) {
rprintf(FERROR, "discarding over-long filter: %s...\n", line);
s = line;
---- orig/rsync.h 2005-05-03 17:11:01
-+++ rsync.h 2005-04-07 18:06:34
-@@ -115,6 +115,7 @@
- #define XFLG_FATAL_ERRORS (1<<0)
+--- orig/rsync.h 2005-10-14 18:45:50
++++ rsync.h 2005-10-14 19:17:51
+@@ -116,6 +116,7 @@
#define XFLG_OLD_PREFIXES (1<<1)
#define XFLG_ANCHORED2ABS (1<<2)
-+#define XFLG_CVS_ENTRIES (1<<3)
+ #define XFLG_ABS_IF_SLASH (1<<3)
++#define XFLG_CVS_ENTRIES (1<<4)
#define PERMS_REPORT (1<<0)
#define PERMS_SKIP_MTIME (1<<1)
case '?':
/* Match anything but '/'. */
if (*text == '/')
---- orig/options.c 2005-09-29 18:06:38
-+++ options.c 2005-09-29 18:08:37
+--- orig/options.c 2005-10-14 18:50:49
++++ options.c 2005-10-14 19:19:18
@@ -101,6 +101,7 @@ int max_delete = 0;
OFF_T max_size = 0;
int ignore_errors = 0;
rprintf(F," --address=ADDRESS bind address for outgoing socket to daemon\n");
rprintf(F," --port=PORT specify double-colon alternate port number\n");
rprintf(F," --blocking-io use blocking I/O for the remote shell\n");
-@@ -418,6 +420,7 @@ static struct poptOption long_options[]
- {"existing", 0, POPT_ARG_NONE, &ignore_non_existing, 0, 0, 0 },
- {"ignore-existing", 0, POPT_ARG_NONE, &ignore_existing, 0, 0, 0 },
- {"ignore-non-existing",0,POPT_ARG_NONE, &ignore_non_existing, 0, 0, 0 },
+@@ -468,6 +470,7 @@ static struct poptOption long_options[]
+ {"only-write-batch", 0, POPT_ARG_STRING, &batch_name, OPT_ONLY_WRITE_BATCH, 0, 0 },
+ {"files-from", 0, POPT_ARG_STRING, &files_from, 0, 0, 0 },
+ {"from0", '0', POPT_ARG_NONE, &eol_nulls, 0, 0, 0},
+ {"ignore-case", 0, POPT_ARG_NONE, &ignore_case, 0, 0, 0 },
- {"max-size", 0, POPT_ARG_STRING, &max_size_arg, OPT_MAX_SIZE, 0, 0 },
- {"sparse", 'S', POPT_ARG_NONE, &sparse_files, 0, 0, 0 },
- {"inplace", 0, POPT_ARG_NONE, &inplace, 0, 0, 0 },
-@@ -1477,6 +1480,9 @@ void server_options(char **args,int *arg
+ {"numeric-ids", 0, POPT_ARG_NONE, &numeric_ids, 0, 0, 0 },
+ {"timeout", 0, POPT_ARG_INT, &io_timeout, 0, 0, 0 },
+ {"rsh", 'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 },
+@@ -1501,6 +1504,9 @@ void server_options(char **args,int *arg
args[ac++] = arg;
}