Changes for version 0.001.2 - 2026-10-24
- Bug Fixes
- filesync-admin repo create names the server root and the directory that blocks it when the root cannot be written, and says to chown it to the running account or use --root elsewhere. It used to report only "Permission denied" against a path below the root.
- That advice is given only when a directory really is unwritable, so a full disk or a root that is a file keeps its own error.
- Documentation
- The examples are split by machine - what to run on the server, on each client, and from cron - and keep the master in a home directory, so nothing needs sudo.
- What a /srv/filesync root needs instead, the wrapper that adds --root to filesync-server, and the ssh key the first sync requires.
- The backup and restore commands follow the example's master layout, and make the backup directory before cron mirrors into it.
- The synopsis creates the repo first, so it runs as printed.
Documentation
keep a directory in step with a master copy
administer a filesync server root
serve one sync session (the forced command in authorized_keys)
Modules
cron-driven file synchronisation without a daemon
server-side repo, client and recovery administration
validated arguments for App::FileSync's public routines
shared i18n behaviour for App::FileSync objects
the filesync, filesync-admin and filesync-server commands
sync one repo, and the client-side repo commands
client and repo configuration files
shared constants for App::FileSync
rsync-style block deltas in pure Perl
message catalogue and error raising for App::FileSync
the English message catalogue
filesystem primitives for App::FileSync
.gitignore-style path exclusion
advisory lock files
three-way merge of base, client and master manifests
choose platform workarounds before other modules load
the line-delimited JSON wire protocol
describe a directory tree as a manifest
serve one sync session against a repo's master
process-wide settings and logging for App::FileSync
daily snapshots of a replica
the server-side files of one repo
run the server as a local child process
run the server over ssh
dated trash with retention
check a tree against its recorded manifest