feat: basis-dir config/CLI for --compare-dest/--copy-dest/--link-dest
Replace the vestigial single compare_dest/copy_dest/link_dest Config fields with an ordered BasisDest list (type + path per entry) that is serialized to the receiver and interpreted relative to the destination root. Paths must be relative with no '.'/'..' components (confined like --backup-dir); trailing slashes are normalized. Wire layout changes, so PROTOCOL_VERSION -> 2.8.0. CLI: each flag is parsed in both --flag=DIR and --flag DIR forms, is repeatable, and keeps command-line order as basis priority. Supplying any basis dir implies --incremental (and therefore metadata) on the sender because the unchanged decision is receiver-side; combining basis dirs with -s chunk serialization is rejected in validate_config. Usage text updated.
This commit is contained in:
@@ -11,6 +11,12 @@ bool validate_config(const Config* config) {
|
||||
print_usage();
|
||||
return false;
|
||||
}
|
||||
if (config_has_basis(config) && config->use_chunk_serialization) {
|
||||
log_message(LOG_LEVEL_ERROR,
|
||||
"--compare-dest/--copy-dest/--link-dest require per-file incremental checks and "
|
||||
"cannot be combined with -s (chunk serialization)");
|
||||
return false;
|
||||
}
|
||||
if (config->use_sendfile && (config->use_chunk_serialization || config->use_compression)) {
|
||||
log_message(LOG_LEVEL_ERROR, "-f/--sendfile cannot be combined with -c (compression) or -s "
|
||||
"(chunk serialization)");
|
||||
|
||||
Reference in New Issue
Block a user