Changes for version 0.001.4 - 2026-10-25

  • Bug Fixes
    • t/ssh.t: the stand-in for ssh now names the perl running the tests on its first line instead of "#!/usr/bin/env perl". The transport starts that file as a program, so the kernel picked whichever perl came first on PATH - on a smoke tester the system perl, which cannot see the modules the build installed - and the filesync-server it then ran died with "Can't locate Params/Validate/Strict.pm" against a build that never lacked it (GitHub issue #4). The Windows wrapper already named $^X.
  • Tests
    • t/ssh.t checks the interpreter line of the stand-in it writes, so the PATH-dependent first line cannot come back unnoticed.

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