Warning: This document is for an old version of zrepl. The main version is master.


The changelog summarized bugfixes that are deemed relevant for users. Developers should consult the git commit log or GitHub issue tracker.


  • [BREAK] [FEATURE] issue #34: automatic bookmarking of snapshots
  • [BREAK] commit ccd062e: ssh+stdinserver transport: changed protocol requires daemon restart on both sides
    • The delicate procedure of talking to the serving-side zrepl daemon via the stdinserver proxy command now has better error handling.
    • This includes handshakes between client+proxy and client + remote daemo, which is not implemented in previous versions of zrepl.
    • The connecting side will therefore time out, with the message dial_timeout of 10s exceeded.
    • Both sides of a replication setup must be updated and restarted. Otherwise the connecting side will hang and not time out.
  • [BREAK] commit 2bfcfa5: first outlet in global.logging is now used for logging meta-errors, for example problems encountered when writing to other outlets.
  • [FEATURE] issue #10: zrepl control status subcommand
    • Allows inspection of job activity per task and their log output at runtime.
    • Supports --format raw option for JSON output, usable for monitoring from scripts.
  • [FEATURE] commit d7f3fb9: subcommand bash completions
    • Package maintainers should install this as appropriate.
  • [BUG] issue #61: fix excessive memory usage
  • [BUG] issue #8 and issue #56: ssh+stdinserver transport properly reaps SSH child processes
  • [BUG] commit cef63ac: human format now prints non-string values correctly
  • [BUG] issue #26: slow TCP outlets no longer block the daemon
  • [DOCS] issue #64: tutorial: document known_host file entry


  • [BREAK] commit b95260f: global.logging is no longer a dictionary but a list
  • [BREAK] commit 3e647c1: source job field datasets renamed to filesystems
    • NOTE: zrepl will parse missing filesystems field as an empty filter, i.e. no filesystems are presented to the other side.
  • [BUG] commit 72d2885 fix aliasing bug with root < subtree wildcard
    • Filesystems paths with final match at blank s subtree wildcard are now appended to the target path
    • Non-root subtree wildcards, e.g. zroot/foo/bar< still map directrly onto the target path
  • Support days (d) and weeks (w) in durations
  • Docs
    • Ditch Hugo, move to Python Sphinx
    • Improve & simplify tutorial (single SSH key per installation)
    • Document pruning policies
    • Document job types
    • Document logging
    • Start updating implementation overview


  • Initial release