Skip to content

Borg 1.1

enkore edited this page Jul 26, 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 1.1.0rc1 changelog

Compatibility notes:

  • borg delete: the short form of --cache-only (-c) has been removed.

Fixes:

Other changes:

DRAFT Release announcement / change summary

This marks the first stable release in the Borg 1.1 series. Many improvements and new features were incorporated into Borg 1.1 since the 1.0 release of Borg in early 2016.

More than sixty people contributed code to this release — see Contributors on this page — and 2016-2017 has been a fantastic time for the Borg project.

Since Borg 1.1 is now stable, it will only receive fixes and minor additions, no larger new features. Principal development continues in the Borg 1.2 series.

Changelog summary

This is only a summary of the changes between 1.0 and 1.1. Check the full changelog to see all changes.

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 two archives.
  • borg mount: show all recorded versions of files 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).
  • borg export-tar: streaming export of GNU tar compatible archives.
  • 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 for all commands.
  • --prefix has been supplemented with --glob-archives (-a), --sort-by, --last and --first options. These can be used for borg list, borg info, borg mount, borg check, borg delete and borg prune.

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.

Documentation improvements:

  • The online command reference has been significantly revamped: better presentation of options, commands are now separate pages (improves search, and old links still work), many formatting improvements, revised examples, a new theme, ...
  • New deployment guides
  • The internals docs saw many corrections and extensions.
  • man pages are now provided in source releases.
  • --help uses ANSI sequence on terminals for basic markup

Compatibility notes for upgrading from Borg 1.0 to Borg 1.1:

  • No explicit "borg upgrade" is required.
  • Borg 1.1 uses some new data structures which are backwards-compatible with Borg 1.0.4 and newer.
  • 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".
  • 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 init:
    • -e/--encryption is now a mandatory option with no default value. Previously the default value was "repokey".
    • the short form of --append-only (-a) has been removed.
    • 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.
  • borg create: the --exclude-if-present option now supports tagging a folder with any file system object type (file, folder, etc.), instead of accepting only files as tags.
  • borg upgrade: the short form of --inplace (-i) has been removed.
  • borg delete: the short form of --cache-only (-c) has been removed.
  • "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.

Contributors

Preliminary lists (code + bountysource) gathered by @enkore, see borgbackup.gh.io repo branch announce-1.1

Repo history 2017-06-20 .. 2017-07-07 checked whether we need to add new stuff here by @ThomasWaldmann. No, we don't.

Release history

Borg 1.1.0 TBA
Borg 1.1.0rc2 if needed
Borg 1.1.0rc1 TBA
Borg 1.1.0b7 if needed
Borg 1.1.0b6 2017-06-18
Borg 1.1.0b5 2017-04-30
Borg 1.1.0b4 2017-03-27
Borg 1.1.0b3 2017-01-15
Borg 1.1.0b2 2016-10-01
Borg 1.1.0b1 2016-08-28
Clone this wiki locally