Skip to content

Borg 1.1

enkore edited this page Jun 16, 2017 · 36 revisions

Note: This page could be outdated. Look at the page history to see when it was last updated.

Status: ongoing, beta
Time frame: Mar 2016 – ongoing

Development Goals

Borg 1.1 has had no specific goals.

DRAFT Release announcement / change summary

<intro>

Major new features in the 1.1 release series are:

  • borg recreate: remove files from existing archives and re-chunk or re-compress them. This finally allows deduplication between legacy Attic / Borg 0.xx archives and Borg 1.x archives. This is an experimental feature.
  • borg diff: show differences between archives
  • borg mount: show all versions of a file with the "versions view"
  • borg list: more formatting options, including generation of hashes and per-file chunk statistics
  • borg create: automatic compression mode (-C auto,zlib/lz4/...), faster handling of many files, experimental support for inclusion patterns (--patterns, --patterns-from).
  • Archive comments
  • BLAKE2b256-based encryption modes, and "authenticated" modes that provide data integrity without encryption. These provide better performance than the existing SHA-256-based modes on most hardware, except where the x86 SHA extensions are available (e.g. AMD Ryzen).
  • Repository indices and the Borg cache now use checksums to detect bitrot and other corruption.
  • A documented JSON API has been added to the most vital commands (borg list, borg info and borg create).
  • Structured JSON logging is available in all commands.

Quality of life improvements:

  • options that imply output (--show-rc, --show-version, --list, --stats, --progress) don't need -v/--info to have that output displayed any more
  • borg check is silent by default (finally!)
  • Automatic removal of stale locks, which should make "borg break-lock" essentially superfluous. This is enabled by default, see BORG_HOSTNAME_IS_UNIQUE.
  • Answers to prompts like "Accessing previously unknown repository" are now saved immediately.
  • Cache synchronization and "borg info" are now faster
  • Reduced space usage of chunks.archive.d in the cache by 30-40 %. Existing caches are migrated during a cache sync.
  • The cache used for remote cache syncs and mounting remote repositories does not grow indefinitely any more, but adapts to the available space. Good riddance, TMP=/var/tmp!
  • BORG_PASSCOMMAND makes using key rings and hardware keys much easier

Compatibility notes for upgrading to Borg 1.1 from Borg 1.0:

  • Borg 1.1 uses some new data structures which are backwards-compatible with Borg 1.0.4 and newer. No explicit "borg upgrade" is required.
  • Borg 1.0 can't make use of Borg 1.1's "compact cache" and will silently ignore it
  • The default compression has been changed from "none" to "lz4"
  • borg init: -e/--encryption is now a mandatory option with no default value
  • borg create: the --exclude-if-present option now supports tagging a folder with any file system object type (file, folder, etc), instead of expecting only files as tags
  • borg init: running "borg init" via a "borg serve --append-only" server will not create an append-only repository any more. Use "borg init --append-only" to initialize an append-only repository.
  • Repositories in the "repokey" and "repokey-blake2" modes with an empty passphrase are now treated as unencrypted repositories for security checks (e.g. BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK).
  • "borg migrate-to-repokey" has been renamed to "borg key migrate-to-repokey" with no deprecation notice, since it is rarely and only manually used.

Deprecated options and commands in Borg 1.1, which will be removed in Borg 1.2:

  • "borg change-passphrase" is deprecated, use "borg key change-passphrase" instead. "borg change-passphrase" will be removed in Borg 1.2.
  • borg create: the --keep-tag-files option has been deprecated in favour of the new --keep-exclude-tags option. Both options have the same effect. --keep-tag-files will be removed in Borg 1.2.
Clone this wiki locally