btrbk-0.24.0

  * MIGRATION
    - update ssh_filter_btrbk.sh on remote hosts if "stream_compress"
      is enabled. Also add "--compress" option to ssh_filter_btrbk.sh
      invocation if "stream_compress" is enabled.
  * Add "stream_compress" configuration option.
  * Perform extra metadata check on target subvolume after "btrfs
    receive" (adds an additional call to "btrfs subvolume show").
  * Bugfix: Replace "realpath" with "readlink" in ssh_filter_btrbk.sh
  * Add "raw_target_block_size" configuration option (close #105).
  * Add "backend" configuration option (experimental).
  * Bugfix: fix "list latest" with no snapshots (close #111).
  * Support for btrfs-progs v4.8.3: fix parsing of "btrfs sub show"
    output, which has changed for toplevel subvolume.

btrbk-0.23.3

  * Replace "realpath -e" with "readlink -e" for mountpoint discovery
    (close #92).
  * Dynamically set BINDIR in btrbk.service by Makefile.
  * Add ChangeLog to DOCDIR in Makefile.

btrbk-0.23.2

  * Added "lockfile" configuration option and --lockfile command line
    option (close: #81).
  * Bugfix: raw targets: correctly handle multiple backups in same
    target directory (close: #87).
  * Use relative instead of absolute binary calls in btrbk-mail.

btrbk-0.23.1

  * Bugfix: set correct parent section when propagating targets
    (close: #85).
  * Add syslog output of transaction log (close #82).
  * Do not print headers to transaction log anymore.
  * Explain "orphaned" status in "stats" command, and suppress it on
    "list backups" command (close: #76).

btrbk-0.23.0

  * INCOMPATIBLE CONFIGURATION:
    * Please read "doc/upgrade_to_v0.23.0.md" for details on updating
      the configuration file (/etc/btrbk/btrbk.conf).
    * Dropped "btrfs_progs_compat" option. Need btrfs-progs >= v3.18.
    * Removed "resume_missing" configuration option.
  * Create backups only if needed to satisfy retention policy.
  * Preserve FIRST backup of hour/day/week/month instead of LAST.
  * Replaced "{snapshot,target}_preserve_{daily,weekly,monthly}"
    configuration options with "{snapshot,target}_preserve_min" and
    "{snapshot,target}_preserve NNh NNd NNw NNm NNy" options.
  * Added hourly/yearly retention policies (close: #36, #69).
  * Allow regular directories for send-receive targets (close: #77).
  * Allow wildcards in subvolume section (close: #71).
  * Propagate targets defined in "volume" or "root" context to all
    "subvolume" sections (close: #78).
  * Added "archive" command (close: #79).
  * Changed output format of "origin" command, add table formats.
  * Added configuration option "rate_limit" (close: #72).
  * Added new timestamp_format "long-iso", having a timezone postfix.
  * Added "--print-schedule" command line option.
  * Detect interrupted transfers of raw targets (close: #75).
  * Always read "readonly" flag (additional call to btrfs-progs).
  * Warn on receive targets at unexpected location (instead of abort).
  * On incremental send/receive, use all snapshots sharing same
    parent_uuid as candidates for "-p <parent>" instead of only older
    snapshots. As last resort, use subvolumes in snapshot_dir matching
    btrbk file name scheme as candidates (which allows incremental
    backups after the parent vanished, e.g. after backup restore).
  * Use perl built-in Time::Local instead of Date::Calc.
  * Improvements of internal data structures.

btrbk-0.22.2

  * Bugfix: fix checks on "btrfs sub show" output, which resulted in
    breakage on btrfs-progs < 4.1 (close: #68).

btrbk-0.22.1

  * Support for btrfs-progs v4.4 (close: #66).

btrbk-0.22.0

  * Bugfix: fix monthly schedule if older than 10 weeks (close: #59).
  * Bugfix: fix sprintf used by config option "timestamp_format long"
    when using perl-5.22.0 (close: #57).
  * Bugfix: fix "--progress" option (close: #64).
  * Added "clean" command (close: #61).
  * Added "-n, --dry-run" option.
  * Added configuration options "raw_target_compress_level",
    "raw_target_compress_threads" (close: #60).
  * Added "stats" command (close: #54).
  * Print "$hostname:$path" instead of "{$hostname}$path" in summary
    and logs.

btrbk-0.21.0

  * Added transaction log (configuration option "transaction_log").
  * Added configuration option "group".
  * Allow filtering of all commands by group as well as targets.
  * Added "list backups|snapshots|latest|config|source|volume|target"
    commands (while removing "tree" command).
  * Added "config print" command.
  * Added "--format=table|long|raw" and "-t,--table" command line
    options, producing tabular and raw (machine-readable) output for
    "(dry)run", "tree" and "list" commands.
  * Print scheduler details if -v option is set on action run/dryrun.
  * Added configuration option "ssh_cipher_spec" (close: #47).
  * Added "target raw", with GnuPG and compression support
    (experimental).
  * Added configuration option "timestamp_format short|long".
  * Replaced "info" command with "usage", with tabular output.
  * Bugfix: correctly handle "incremental no" option.
  * Bugfix: return exit status 10 instead of 0 if one or more backup
    tasks aborted.
  * Better error handling for send/receive commands (close: #33).
  * Hardened ssh_filter_btrbk.sh script: fine-grained access control,
    restrict-path option, sudo option (close: #45).
  * Added example cron script.

btrbk-0.20.0

  * Added configuration option "ssh_port" (close: #39).
  * Added configuration option "ssh_compression" (close: #44).
  * Added command line option "--progress" (close: #42).
  * Bugfix: correct handling of empty "snapshot_dir" (close: #43).
  * Accept long options on command line.
  * Documentation: added FAQ.

btrbk-0.19.3

  * Bugfix: fix sorting of dates in schedule().
  * Bugfix: correct parsing of btrfs subvolume list (close: #28).
  * Support for btrfs-progs v4.1-rc1.

btrbk-0.19.2

  * Bugfix: fix crash when using btrfs-progs < 3.17.3 (close: #24).

btrbk-0.19.1

  * Use "cgen" for snapshot comparison.
  * Bugfix: fix crash in summary display (close: #22).

btrbk-0.19.0

  * Added "snapshot_create onchange", which skips snapshot creation if
    the latest snapshot is up-to-date (i.e. has same generation as the
    source subvolume).
  * Improved handling of command line subvolume filter for "run",
    "dryrun" and "tree" actions (close: #21).
  * Bugfix: fixed crash in action "diff".

btrbk-0.18.0

  * MIGRATION
    - update ssh_filter_btrbk.sh on all remote hosts
    - update configuration file (/etc/btrbk/btrbk.conf):
      - "snapshot_create_always yes" -> "snapshot_create always"
      - "snapshot_create_always no"  -> "snapshot_create ondemand"
  * Set PATH variable instead of using absolute "/sbin/btrfs" for
    compatibility with all linux distros out there, which all install
    'btrfs' in different locations (close: #20).
  * Added configuration option "snapshot_create", replacing option
    "snapshot_create_always". This allows setups with multiple btrbk
    instances on several hosts (close: #18).
  * Added command line option -r (resume only).
  * Catch and display errors from "btrfs subvolume show".
  * Include systemd service and timer unit for daily backups.

btrbk-0.17.1

  * Bugfix: send/receive: delete possibly left-behind garbled
    subvolume on failure. Fail with unrecoverable error if stray
    target subvolume is in the way (close: #17).
  * Bugfix: assume unreachable target as clean on snapshot creation if
    snapshot_create_always is set (close: #19).

btrbk-0.17.0

  * New versioning scheme using more common three-level versions.
  * Code refactoring: cleanup of data structures and handling of btrfs
    subvolume tree, as well as security related code parts.
  * Correct handling of symlinks to btrfs subvolumes (close: #12).
  * Added configuration option "snapshot_name" (close: #5).
  * Log messages now go to stderr, only the summary is printed on
    stdout.
  * Bugfix: allow "0" as subvolume name (close: #10).
  * Bugfix: allow "/" as volume name (close: #15).
  * Bugfix: check source AND targets for determining snapshot postfix
    (close: #11).
  * Bugfix: fixed "diff" action (colses: #14).
  * Allow '+' character for subvolume names.
  * Filesystems on remote hosts are now printed as
    "{my.remote-host.com}" in summary and logs.

btrbk-0.16

  * Bugfix: correctly check retention policy for missing backups.

btrbk-0.15

  * Added configuration option "btrfs_progs_compat", to be enabled if
    using btrfs-progs < 3.17 (close: #6).
  * Added configuration option "resume_missing", for automatic resume
    of missing backups (close: #8).
  * Removed configuration option "receive_log" in favor of printing
    errors from "btrfs receive".
  * Bugfix: show correct exit code on external command failure.
  * Bugfix: no crash if "commit_delete" option is set to "no"

btrbk-0.14

  * Bugfix: correctly handle empty target subvolumes (blocker for all
    new users; close: #4).

btrbk-0.13

  * Bugfix: allow '@' character for subvolume names (blocker for
    ubuntu users, since ubuntu prefixes all subvolumes with '@' in its
    subvolume layout; close: #3).

btrbk-0.12

  * Cleaner and more generic parsing of btrfs subvolume list.
  * Bugfix: subvolumes are also allowed for "snapshot_dir" (close:
    #1, #2).

btrbk-0.11

  * Added option -p (preserve backups).
  * Added optional subvolume argument for run/dryrun actions, for
    explicit selection of subvolumes to be processed.
  * Bugfixes

btrbk-0.10

  * Initial revision.
