Skip to content

Borg 1.1

TW edited this page Oct 7, 2017 · 36 revisions

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

Status

ongoing, release candidate

Time frame

Mar 2016 – Oct 2017

Development Goals

Borg 1.1 has had no specific goals.

DRAFT Release announcement / change summary

(for www.borgbackup.org)

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), files cache mode control (mtime/ctime)
  • 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!).
  • borg can now checkpoint within (big) files, not only between files.
  • borg delete can delete multiple archives by giving their names.
  • 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
  • New asciinema screencasts.

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.

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

Repo history 2017-07-26 .. 2017-10-07 checked whether we need to add new stuff here by @ThomasWaldmannn.

Release history

Borg 1.1.0 TBA
Borg 1.1.0rc4 TBA
Borg 1.1.0rc3 2017-09-10
Borg 1.1.0rc2 2017-08-28
Borg 1.1.0rc1 2017-07-24
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