|
| 1 | +Borg 1.2 |
| 2 | +======== |
| 3 | + |
| 4 | +`« back to all releases <.>`_ |
| 5 | + |
| 6 | +:Links: `Documentation <https://borgbackup.readthedocs.io/en/1.2-maint/>`_ · `Installation <https://borgbackup.readthedocs.io/en/1.2-maint/installation.html>`_ · `Downloads <https://github.com/borgbackup/borg/releases/latest>`_ |
| 7 | +:Date: 2022-02-22 |
| 8 | + |
| 9 | +This marks the first stable release in the Borg 1.2 series. Many improvements and new features |
| 10 | +were incorporated into Borg 1.2 since the 1.1 release of Borg in early 2017. Even more changes |
| 11 | +were made "under the hood": cleanups and refactors. |
| 12 | + |
| 13 | +Many people contributed to this release — see the AUTHORS file in the git repo and the |
| 14 | +git history for details. Even more people contributed otherwise, e.g. by giving feedback |
| 15 | +or helping with testing. |
| 16 | + |
| 17 | +Special thanks also go to everyone and every organization donating funds to support development |
| 18 | +and maintenance! |
| 19 | + |
| 20 | +Since Borg 1.2 is now stable, it will primarily receive fixes and minor additions, |
| 21 | +but not potentially problematic code changes. Principal development continues in the master branch. |
| 22 | + |
| 23 | +Changelog summary |
| 24 | +----------------- |
| 25 | + |
| 26 | +This is only a summary of the changes between 1.1 and 1.2. |
| 27 | +Check the `full changelog <https://borgbackup.readthedocs.io/en/1.2-maint/changes.html>`_ |
| 28 | +to see all changes as well as important compatibility and upgrade notes. |
| 29 | + |
| 30 | + |
| 31 | +Major new features in the 1.2 release series are: |
| 32 | + |
| 33 | +- create: Internally use file descriptors rather than file names (as much as |
| 34 | + possible) to avoid race conditions on active file systems. |
| 35 | +- create: Externalize file discovery via --paths-from-stdin and --paths-from-command. |
| 36 | + Using this, you can just feed a list of full path/filenames into borg and borg |
| 37 | + will create a backup archive with the corresponding files (no more, no less). |
| 38 | +- create: --content-from-command: Create archive using stdout of given command. |
| 39 | +- create: --compression: New 'obfuscate' pseudo compressor obfuscates compressed |
| 40 | + chunk sizes in the repository. You can use this to make chunk size fingerprinting |
| 41 | + attacks against your repo much harder. It will use more storage space for |
| 42 | + better privacy (and you can decide how much it is worth to you). |
| 43 | +- create: --chunker-params: New, very fast 'fixed' block size chunker (also |
| 44 | + puts less load on the CPU compared to the buzhash chunker). Recommended for |
| 45 | + everything with a fixed block size, like disk devices, raw disk images, |
| 46 | + files with fixed record sizes (header record can be of different size). |
| 47 | +- create: Improve sparse file support, much faster, especially when used |
| 48 | + together with the 'fixed' chunker. |
| 49 | +- compact: Separate "borg compact" needs to be used to free repository space. |
| 50 | + Borg < 1.2 always compacted at the end of repo-writing commands, so these |
| 51 | + will be faster now. Also, you get kind of a "temporary append-only" behaviour |
| 52 | + until you invoke borg compact. For some users, less stuff moving around in |
| 53 | + the repo directory also might make rclones or rsyncs of their borg repo faster. |
| 54 | + "borg compact" can be invoked from the repo server, borg hosting providers can |
| 55 | + offer to use off-peak-hours for compaction. |
| 56 | +- repository: Other optimizations for better speed and less stuff moving around. |
| 57 | +- check: --max-duration: Incremental, time-limited repo check (crc32 check only). |
| 58 | + Users with huge repositories can use this to distribute their repo checks |
| 59 | + over multiple free time slots (for example, do a partial check each Sunday, |
| 60 | + resulting in a full check after multiple weeks). |
| 61 | +- mount: Support new/maintained pyfuse3 as an alternative to the old llfuse lib. |
| 62 | +- import-tar: New complement to export-tar. Import existing tar files or |
| 63 | + (together with export-tar) move archives from one borg repo to another. |
| 64 | + Please note that currently export-tar + import-tar is a lossy conversion as |
| 65 | + it does not support all metadata that borg create/extract supports (like |
| 66 | + ACLs, xattrs, flags). |
| 67 | +- Minimal native Windows support, see Windows readme (WIP). |
| 68 | + |
| 69 | +Other changes: |
| 70 | + |
| 71 | +- create/recreate: Showing the current file name **before** starting to back it |
| 72 | + up makes life easier, especially for very big files which take a while... |
| 73 | +- create: First ctrl-c (SIGINT) triggers checkpoint creation and then aborts. |
| 74 | +- create: --remote-buffer: Use an upload buffer for remote repos. |
| 75 | +- prune: Show which rule was applied to keep archive (kind of self-explanatory). |
| 76 | +- check: Much faster when recovering data from corrupted segment files. |
| 77 | +- New BORG_WORKAROUNDS mechanism. |
| 78 | +- Works with recent Python, msgpack, PyInstaller, etc. versions. |
| 79 | +- Major setup code refactoring (especially library handling), needs pypi "pkgconfig". |
| 80 | +- Other major internal refactors / cleanups. |
| 81 | +- Internal AEAD-style crypto API (not all you see in there is used already). |
| 82 | +- Internal msgpack-wrapper to avoid current and future compatibility issues. |
| 83 | +- Improved C code portability / basic MSC compatibility. |
| 84 | +- Improved documentation (a lot of this was also backported to 1.1.x though). |
0 commit comments