borgbackup 2.0.0b24__tar.gz → 2.0.0b25__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/.claude/CLAUDE.md +7 -7
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/FAME.md +27 -26
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/FAME.svg +6 -6
- {borgbackup-2.0.0b24/src/borgbackup.egg-info → borgbackup-2.0.0b25}/PKG-INFO +7 -8
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/README.rst +2 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/binaries/00_README.txt +7 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/changes.rst +151 -5
- borgbackup-2.0.0b25/docs/deployment/age.rst +221 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/deployment/central-backup-server.rst +4 -5
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/deployment/hosting-repositories.rst +8 -8
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/deployment/pull-backup.rst +9 -9
- borgbackup-2.0.0b25/docs/deployment/yubikey.rst +117 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/deployment.rst +2 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/development.rst +3 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/faq.rst +59 -37
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/installation.rst +8 -4
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/data-structures.rst +197 -263
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/frontends.rst +95 -23
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/packs.rst +126 -53
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/security.rst +58 -50
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals.rst +2 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-analyze.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-benchmark-cpu.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-benchmark-crud.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-benchmark.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-break-lock.1 +4 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-check.1 +37 -19
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-common.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-compact.1 +8 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-completion.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-compression.1 +5 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-copy.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-create.1 +9 -9
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-delete.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-diff.1 +48 -4
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-environment.1 +23 -17
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-export-tar.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-extract.1 +51 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-find.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-import-tar.1 +16 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-info.1 +4 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-add.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-change-location.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-change-passphrase.1 +2 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-export.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-import.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-list.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-remove.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-list.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-match-archives.1 +4 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-mount.1 +13 -4
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-patterns.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-placeholders.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-prune.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-recreate.1 +3 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-rename.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-repo-compress.1 +12 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-repo-create.1 +44 -20
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-repo-delete.1 +7 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-repo-info.1 +5 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-repo-list.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-repo-space.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-serve.1 +11 -11
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-tag.1 +42 -5
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-transfer.1 +11 -6
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-umount.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-undelete.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-version.1 +3 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-webdav.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-with-lock.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg.1 +34 -34
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borgfs.1 +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/asciinema/demo.tcl +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/quickstart.rst +31 -16
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/break-lock.rst.inc +4 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/check.rst.inc +36 -18
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/compact.rst.inc +7 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/create.rst.inc +10 -10
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/debug.rst +0 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/diff.rst.inc +37 -4
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/extract.rst +4 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/extract.rst.inc +89 -47
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/environment.rst.inc +22 -16
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/file-systems.rst.inc +2 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/repository-urls.rst.inc +9 -15
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/help.rst.inc +7 -4
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/import-tar.rst.inc +52 -39
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/info.rst.inc +3 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/key.rst +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/mount.rst.inc +12 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/recreate.rst.inc +65 -65
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-compress.rst.inc +22 -13
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-create.rst +2 -4
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-create.rst.inc +62 -33
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-delete.rst.inc +6 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-info.rst +4 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/serve.rst +3 -4
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/serve.rst.inc +8 -7
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/tag.rst.inc +38 -7
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/transfer.rst +8 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/transfer.rst.inc +41 -41
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/version.rst.inc +2 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/pyproject.toml +4 -4
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/requirements.d/development.lock.txt +4 -4
- borgbackup-2.0.0b25/requirements.d/pyinstaller.txt +1 -0
- borgbackup-2.0.0b25/requirements.d/s3-test-server.txt +6 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/borg.exe.spec +32 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/glibc_check.py +4 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/rest_perf_test.sh +7 -6
- borgbackup-2.0.0b25/src/borg/_version.py +1 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archive.py +436 -182
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/_common.py +103 -75
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/analyze_cmd.py +6 -6
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/benchmark_cmd.py +3 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/check_cmd.py +84 -23
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/compact_cmd.py +66 -16
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/copy_cmd.py +1 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/create_cmd.py +17 -13
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/debug_cmd.py +31 -57
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/delete_cmd.py +1 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/diff_cmd.py +117 -34
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/extract_cmd.py +58 -4
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/find_cmd.py +2 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/help_cmd.py +29 -20
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/info_cmd.py +5 -5
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/key_cmds.py +8 -24
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/list_cmd.py +2 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/lock_cmds.py +3 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/mount_cmds.py +33 -9
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/prune_cmd.py +8 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/recreate_cmd.py +7 -8
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/rename_cmd.py +1 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/repo_compress_cmd.py +49 -16
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/repo_create_cmd.py +103 -40
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/repo_delete_cmd.py +33 -6
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/repo_info_cmd.py +21 -6
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/repo_list_cmd.py +2 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/serve_cmd.py +8 -7
- borgbackup-2.0.0b25/src/borg/archiver/tag_cmd.py +153 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/tar_cmds.py +40 -9
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/transfer_cmd.py +10 -8
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/undelete_cmd.py +1 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/version_cmd.py +2 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/webdav_cmd.py +1 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/cache.py +160 -141
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/compress.c +5179 -3923
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/compress.pyi +2 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/compress.pyx +86 -17
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/conftest.py +2 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/constants.py +21 -21
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/crypto/key.py +164 -160
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/crypto/keymanager.py +5 -8
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/crypto/low_level.c +2155 -1578
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/crypto/low_level.pyi +3 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/crypto/low_level.pyx +66 -26
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/fuse.py +5 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/hashindex.c +5067 -1795
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/hashindex.pyi +2 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/hashindex.pyx +59 -7
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/__init__.py +8 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/errors.py +23 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/parseformat.py +35 -44
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/passphrase.py +28 -18
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/process.py +22 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/hlfuse.py +44 -7
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/item.c +18581 -12816
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/item.pyi +5 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/item.pyx +67 -23
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/archives.py +0 -4
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/crypto/key.py +1 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/remote.py +44 -10
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/manifest.py +73 -123
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/repoobj.py +104 -62
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/repository.py +1160 -274
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/security.py +23 -39
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/storelocking.py +80 -14
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/__init__.py +33 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archive_test.py +40 -22
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/__init__.py +92 -9
- borgbackup-2.0.0b25/src/borg/testsuite/archiver/check_cmd_test.py +1881 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/checks_test.py +75 -102
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/compact_cmd_test.py +308 -46
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/completion_cmd_test.py +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/copy_cmd_test.py +8 -8
- borgbackup-2.0.0b25/src/borg/testsuite/archiver/corruption_test.py +11 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/create_cmd_test.py +24 -10
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/debug_cmds_test.py +119 -19
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/diff_cmd_test.py +207 -7
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/disk_full_test.py +2 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/extract_cmd_test.py +205 -30
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/info_cmd_test.py +2 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/key_cmds_test.py +66 -26
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/lock_cmds_test.py +29 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/mount_cmds_test.py +115 -23
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/recreate_cmd_test.py +3 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/remote_repo_test.py +33 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/rename_cmd_test.py +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/repo_compress_cmd_test.py +52 -13
- borgbackup-2.0.0b25/src/borg/testsuite/archiver/repo_create_cmd_test.py +354 -0
- borgbackup-2.0.0b25/src/borg/testsuite/archiver/repo_delete_cmd_test.py +83 -0
- borgbackup-2.0.0b25/src/borg/testsuite/archiver/repo_info_cmd_test.py +71 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/repo_list_cmd_test.py +72 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/repo_space_cmd_test.py +7 -0
- borgbackup-2.0.0b25/src/borg/testsuite/archiver/return_codes_test.py +66 -0
- borgbackup-2.0.0b25/src/borg/testsuite/archiver/store_objects_test.py +153 -0
- borgbackup-2.0.0b25/src/borg/testsuite/archiver/tag_cmd_test.py +147 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/tar_cmds_test.py +167 -23
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/transfer_cmd_test.py +1 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/webdav_cmd_test.py +5 -5
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archives_test.py +81 -18
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/benchmark_test.py +9 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/cache_test.py +334 -36
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/cockpit_test.py +3 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/compress_test.py +94 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/crypto/crypto_test.py +1 -11
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/crypto/key_test.py +88 -93
- borgbackup-2.0.0b25/src/borg/testsuite/crypto/legacy_key_test.py +82 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/crypto/low_level_test.py +54 -2
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/fuse_test.py +24 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/hashindex_test.py +62 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/__init__test.py +22 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/parseformat_test.py +23 -94
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/passphrase_test.py +82 -0
- borgbackup-2.0.0b25/src/borg/testsuite/helpers/process_test.py +58 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/item_test.py +47 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/legacy_archives_test.py +0 -6
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/legacyrepository_test.py +65 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/repoobj_test.py +178 -96
- borgbackup-2.0.0b25/src/borg/testsuite/repository_test.py +3823 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/storelocking_test.py +125 -3
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/vfs_test.py +48 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/vfs.py +45 -14
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25/src/borgbackup.egg-info}/PKG-INFO +7 -8
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borgbackup.egg-info/SOURCES.txt +4 -1
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borgbackup.egg-info/requires.txt +4 -4
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borgbackup.egg-info/scm_file_list.json +5 -1
- borgbackup-2.0.0b25/src/borgbackup.egg-info/scm_version.json +8 -0
- borgbackup-2.0.0b24/CHANGES.rst +0 -2015
- borgbackup-2.0.0b24/requirements.d/pyinstaller.txt +0 -1
- borgbackup-2.0.0b24/src/borg/_version.py +0 -1
- borgbackup-2.0.0b24/src/borg/archiver/tag_cmd.py +0 -76
- borgbackup-2.0.0b24/src/borg/testsuite/archiver/check_cmd_test.py +0 -896
- borgbackup-2.0.0b24/src/borg/testsuite/archiver/corruption_test.py +0 -32
- borgbackup-2.0.0b24/src/borg/testsuite/archiver/repo_create_cmd_test.py +0 -137
- borgbackup-2.0.0b24/src/borg/testsuite/archiver/repo_delete_cmd_test.py +0 -42
- borgbackup-2.0.0b24/src/borg/testsuite/archiver/repo_info_cmd_test.py +0 -42
- borgbackup-2.0.0b24/src/borg/testsuite/archiver/return_codes_test.py +0 -35
- borgbackup-2.0.0b24/src/borg/testsuite/archiver/tag_cmd_test.py +0 -57
- borgbackup-2.0.0b24/src/borg/testsuite/crypto/legacy_key_test.py +0 -34
- borgbackup-2.0.0b24/src/borg/testsuite/helpers/process_test.py +0 -27
- borgbackup-2.0.0b24/src/borg/testsuite/repository_test.py +0 -1890
- borgbackup-2.0.0b24/src/borgbackup.egg-info/scm_version.json +0 -8
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/.claude/settings.json +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/.git-blame-ignore-revs +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/.pre-commit-config.yaml +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/.readthedocs.yaml +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/AUTHORS +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/Brewfile +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/CONTRIBUTING.md +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/LICENSE +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/MANIFEST.in +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/SECURITY.md +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/3rd_party/README +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/Makefile +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_static/Makefile +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_static/favicon.ico +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_static/logo.pdf +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_static/logo.png +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_static/logo.svg +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_static/logo_font.txt +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_templates/downloads.html +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_templates/globaltoc.html +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_templates/layout.html +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_templates/logo-text.html +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_templates/versionselector.html +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/authors.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/book.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/borg_theme/css/borg.css +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/changes_0.x.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/changes_1.x.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/conf.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/deployment/automated-local.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/deployment/image-backup.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/deployment/non-root-user.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/global.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/index.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/chunker.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/encryption-aead.odg +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/encryption-aead.png +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/object-graph.odg +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/object-graph.png +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/pack-layout.excalidraw +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/pack-layout.png +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/pack-objheader.excalidraw +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/pack-objheader.png +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/pack-write-order.excalidraw +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/pack-write-order.png +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/structure.odg +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/structure.png +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/introduction.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-config.1 +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-change-algorithm.1 +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-migrate-to-repokey.1 +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-upgrade.1 +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man_intro.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/asciinema/Containerfile +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/asciinema/README.md +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/asciinema/borg2-demo.cast +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/asciinema/demo-data.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/asciinema/entrypoint.sh +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/asciinema/record.exp +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/asciinema/record.sh +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/benchmark-crud.txt +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/borg-data-flow.odg +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/borg-data-flow.png +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/create_chunker-params.txt +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/internals-picture.txt +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/joke-issue-10000/README.md +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/joke-issue-10000/we_are_borg.svg +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/logging.conf +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/prune-example-interval.txt +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/prune-example.txt +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/quickstart_example.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/support.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/analyze.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/analyze.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/benchmark.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/benchmark_cpu.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/benchmark_crud.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/check.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/common-options.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/compact.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/completion.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/completion.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/copy.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/copy.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/create.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/delete.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/delete.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/diff.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/export-tar.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/find.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/find.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/archive-specification.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/config.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/date-time.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/file-metadata.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/logging.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/positional-arguments.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/repository-locations.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/resources.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/return-codes.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/units.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/help.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/info.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/key_add.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/key_change-location.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/key_change-passphrase.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/key_export.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/key_import.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/key_list.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/key_remove.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/list.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/list.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/lock.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/mount.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/notes.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/prune.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/prune.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/recreate.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/rename.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/rename.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-compress.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-delete.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-info.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-list.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-list.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-space.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-space.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/tag.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/tar.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/umount.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/undelete.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/undelete.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/usage_general.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/version.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/webdav.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/webdav.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/with-lock.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage.rst +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage_general.rst.inc +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/requirements.d/codestyle.txt +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/requirements.d/development.txt +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/requirements.d/docs.txt +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/Dockerfile.linux-run +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/bench_chunker_kernels.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/blake3-optimize-mt-threshold.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/build-borg-using-nuitka.sh +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/build-borg-using-pyinstaller.sh +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/chunker_bench.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/endian_interop_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/errorlist.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/fame.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/fetch-binaries +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/linux-run +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/lvm-thin-map.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/make-testdata/test_transfer_upgrade.sh +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/make.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/msys2-install-deps +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/sdist-sign +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/sign-binaries +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/upload-pypi +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/setup.cfg +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/setup.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/__init__.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/__main__.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/__init__.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/completion_cmd.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/repo_space_cmd.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/__init__.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/base.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/base.pxd +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/base.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/buzhash.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/buzhash.pyi +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/buzhash.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/buzhash64.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/buzhash64.pyi +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/buzhash64.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/buzhash64_impl.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/buzhash64_impl.h +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/failing.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/fastcdc.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/fastcdc.pyi +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/fastcdc.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/fastcdc_impl.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/fastcdc_impl.h +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/fixed.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/goldilocks_aes.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/goldilocks_aes.pyi +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/goldilocks_aes.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/goldilocks_aes_impl.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/goldilocks_aes_impl.h +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/kernel_env.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/phte_chunker.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/phte_chunker.pxd +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/phte_chunker.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/phte_core.h +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/phte_kernel.h +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/phte_scan.h +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/rabin_aes.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/rabin_aes.pyi +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/rabin_aes.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/rabin_aes_impl.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/rabin_aes_impl.h +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/reader.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/reader.pyi +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/reader.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/toeplitz_aes.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/toeplitz_aes.pyi +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/toeplitz_aes.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/toeplitz_aes_impl.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/toeplitz_aes_impl.h +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/cockpit/__init__.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/cockpit/app.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/cockpit/cockpit.tcss +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/cockpit/runner.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/cockpit/theme.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/cockpit/translator.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/cockpit/widgets.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/crypto/__init__.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/crypto/file_integrity.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/digests.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/fslocking.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/fuse_impl.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/argparsing.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/datastruct.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/fs.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/lrucache.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/misc.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/msgpack.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/nanorst.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/progress.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/shellpattern.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/sorting.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/time.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/yes_no.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/__init__.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/crypto/__init__.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/crypto/low_level.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/crypto/low_level.pyi +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/crypto/low_level.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/fs.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/hashindex.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/helpers.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/repoobj.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/repository.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/upgrade.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/logger.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/paperkey.html +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/patterns.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/__init__.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/base.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/darwin.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/darwin.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/freebsd.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/freebsd.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/linux.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/linux.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/netbsd.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/posix.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/posix.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/posix_ug.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/solaris.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/syncfilerange.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/syncfilerange.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/windows.c +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/windows.pyx +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/windows_ug.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/xattr.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platformflags.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/selftest.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/_common_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/analyze_cmd_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/argparsing_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/benchmark_cmd_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/check_cmd_remote_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/delete_cmd_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/dotdot_path.tar +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/find_cmd_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/help_cmd_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/list_cmd_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/match_archives_date_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/patterns_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/prune_cmd_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/repo12.tar.gz +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/restricted_permissions_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/serve_cmd_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/undelete_cmd_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/unusual_paths.tar +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/version_cmd_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/__init__.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/buzhash64_self_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/buzhash64_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/buzhash_self_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/buzhash_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/failing_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/fastcdc_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/fixed_self_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/fixed_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/goldilocks_aes_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/interaction_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/phte_chunkers_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/pytest_helpers.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/rabin_aes_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/reader_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/toeplitz_aes_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/crypto/__init__.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/crypto/csprng_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/crypto/file_integrity_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/digests_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/fslocking_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/__init__.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/datastruct_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/efficient_collection_queue_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/fs_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/lrucache_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/misc_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/msgpack_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/nanorst_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/progress_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/shellpattern_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/sorting_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/time_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/yes_no_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/legacy_fs_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/legacy_helpers_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/legacy_upgrade_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/logger_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/patterns_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/platform/__init__.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/platform/all_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/platform/darwin_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/platform/freebsd_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/platform/linux_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/platform/platform_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/platform/windows_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/version_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/xattr_test.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/upgrade.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/version.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/webdav.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/xattr.py +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borgbackup.egg-info/dependency_links.txt +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borgbackup.egg-info/entry_points.txt +0 -0
- {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borgbackup.egg-info/top_level.txt +0 -0
|
@@ -131,13 +131,13 @@ so the repository storage layer never sees plaintext or has any notion of files/
|
|
|
131
131
|
- **`repository.py`** — `Repository`, a key→value object store built on top of **borgstore**
|
|
132
132
|
(`borgstore.store.Store`). Keys are 32-byte object IDs; the repo doesn't know what an "archive" or
|
|
133
133
|
"file" is. borgstore provides the actual storage backends and transport: local filesystem,
|
|
134
|
-
`ssh://` (borgstore
|
|
135
|
-
|
|
134
|
+
`ssh://` (borgstore REST backend talking HTTP over stdio over ssh to a remote `borg serve`,
|
|
135
|
+
optionally reusing `BORGSTORE_RSH`), `sftp://`, `http(s)://`, `rclone:`, `s3:`/`b2:`. This replaces the borg 1.x segment/journal format — read
|
|
136
136
|
`docs/internals/data-structures.rst` before touching repository/object/format code.
|
|
137
|
-
- **`archiver/serve_cmd.py`** — `borg serve` provides the server side for
|
|
138
|
-
|
|
139
|
-
`borg serve
|
|
140
|
-
|
|
137
|
+
- **`archiver/serve_cmd.py`** — `borg serve` provides the server side for `ssh://` repositories:
|
|
138
|
+
`borg serve --rest` runs the borgstore REST server on stdio for a current repository, plain
|
|
139
|
+
`borg serve` serves a legacy borg 1.x repository via the legacy RPC protocol (`--from-borg1`,
|
|
140
|
+
`legacy/remote.py`).
|
|
141
141
|
- **`crypto/key.py`, `crypto/low_level.pyx`** — encryption/authentication (AEAD: AES-256-OCB or
|
|
142
142
|
ChaCha20-Poly1305; ids via HMAC-SHA256 or BLAKE3) and key file handling (keyfile vs repokey
|
|
143
143
|
storage). The `id_hash` used for deduplication depends on the key/encryption mode.
|
|
@@ -168,7 +168,7 @@ so the repository storage layer never sees plaintext or has any notion of files/
|
|
|
168
168
|
progress reporting, filesystem helpers); check here before writing a new utility, it may exist.
|
|
169
169
|
|
|
170
170
|
**Client/server split:** most `do_*` archiver commands operate against a local or remote `Repository`
|
|
171
|
-
transparently — the choice of local vs. `ssh
|
|
171
|
+
transparently — the choice of local vs. `ssh://` etc. is resolved by `Location` parsing in
|
|
172
172
|
`helpers/` and borgstore backend selection, and doesn't otherwise change command logic. `borg serve`
|
|
173
173
|
on the remote end provides the server side.
|
|
174
174
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Contributors
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
375 people have contributed to Borg, with 11,344 commits in total.
|
|
4
4
|
Thanks to everyone who helped!
|
|
5
5
|
|
|
6
6
|

|
|
7
7
|
|
|
8
|
-
Generated on 2026-
|
|
8
|
+
Generated on 2026-09-21 by `scripts/fame.py`, which computes the statistics with
|
|
9
9
|
[git-fame](https://github.com/casperdcl/git-fame), from the `master` branch
|
|
10
10
|
only - commits that exist solely on other branches or in unmerged pull requests
|
|
11
11
|
are not counted.
|
|
@@ -21,24 +21,24 @@ show up there, so the number understates early contributions. Generated files
|
|
|
21
21
|
|
|
22
22
|
| Contributor | Commits | Lines | Files |
|
|
23
23
|
|:---|---:|---:|---:|
|
|
24
|
-
| Thomas Waldmann | 7,
|
|
25
|
-
| Marian Beermann | 1,140 | 7,
|
|
26
|
-
| Jonas Borgström | 560 |
|
|
24
|
+
| Thomas Waldmann | 7,693 | 102,270 | 525 |
|
|
25
|
+
| Marian Beermann | 1,140 | 7,574 | 156 |
|
|
26
|
+
| Jonas Borgström | 560 | 962 | 38 |
|
|
27
27
|
| Antoine Beaupré | 285 | 437 | 33 |
|
|
28
|
-
| Mrityunjay Raj |
|
|
28
|
+
| Mrityunjay Raj | 260 | 10,590 | 107 |
|
|
29
29
|
| Andrey Bienkowski | 72 | 200 | 16 |
|
|
30
|
-
| Ted Lawson | 71 | 4,
|
|
31
|
-
| Thalian | 63 |
|
|
32
|
-
|
|
|
33
|
-
|
|
|
30
|
+
| Ted Lawson | 71 | 4,364 | 39 |
|
|
31
|
+
| Thalian | 63 | 563 | 29 |
|
|
32
|
+
| dependabot[bot] | 51 | 17 | 7 |
|
|
33
|
+
| Martin Hostettler | 46 | 2,558 | 9 |
|
|
34
34
|
| Milkey Mouse | 42 | 239 | 12 |
|
|
35
35
|
| Dan Christensen | 40 | 5 | 2 |
|
|
36
36
|
| Rayyan Ansari | 34 | 88 | 12 |
|
|
37
37
|
| Abdel-Rahman | 30 | 2 | 2 |
|
|
38
|
-
| Manuel Riel | 28 |
|
|
38
|
+
| Manuel Riel | 28 | 84 | 6 |
|
|
39
39
|
| Nehalenniæ Oudin | 26 | 47 | 11 |
|
|
40
40
|
| anarcat | 24 | 33 | 4 |
|
|
41
|
-
| Hugo Wallenburg | 23 | 1,
|
|
41
|
+
| Hugo Wallenburg | 23 | 1,102 | 11 |
|
|
42
42
|
| Michael Hanselmann | 22 | 71 | 3 |
|
|
43
43
|
| Björn Ketelaars | 17 | 28 | 4 |
|
|
44
44
|
| SanskritFritz | 17 | 0 | 0 |
|
|
@@ -59,20 +59,20 @@ show up there, so the number understates early contributions. Generated files
|
|
|
59
59
|
| rugk | 9 | 9 | 4 |
|
|
60
60
|
| Carlo Teubner | 9 | 3 | 3 |
|
|
61
61
|
| Per Guth | 9 | 1 | 1 |
|
|
62
|
+
| ThomasWaldmann | 8 | 179 | 1 |
|
|
62
63
|
| Jakob Schnitzer | 8 | 35 | 1 |
|
|
63
|
-
| Josh Soref | 8 |
|
|
64
|
-
| Gianfranco Costamagna | 7 |
|
|
64
|
+
| Josh Soref | 8 | 2 | 2 |
|
|
65
|
+
| Gianfranco Costamagna | 7 | 8 | 5 |
|
|
65
66
|
| Frank Sachsenheim | 7 | 2 | 1 |
|
|
66
67
|
| Hartmut Goebel | 7 | 0 | 0 |
|
|
67
|
-
| William D. Jones | 6 |
|
|
68
|
+
| William D. Jones | 6 | 215 | 6 |
|
|
68
69
|
| Michael Deyaso | 6 | 165 | 14 |
|
|
69
70
|
| Peter Gerber | 6 | 102 | 9 |
|
|
70
71
|
| Alf Mikula | 6 | 19 | 1 |
|
|
71
72
|
| Felix Schwarz | 6 | 4 | 2 |
|
|
72
73
|
| Alexander-N | 6 | 0 | 0 |
|
|
73
|
-
| Paul D | 5 |
|
|
74
|
-
|
|
|
75
|
-
| Simon Frei | 5 | 132 | 3 |
|
|
74
|
+
| Paul D | 5 | 176 | 41 |
|
|
75
|
+
| Simon Frei | 5 | 124 | 3 |
|
|
76
76
|
| Dominik Stadler | 5 | 75 | 1 |
|
|
77
77
|
| elandorr | 5 | 39 | 3 |
|
|
78
78
|
| remyabel | 5 | 19 | 2 |
|
|
@@ -82,10 +82,10 @@ show up there, so the number understates early contributions. Generated files
|
|
|
82
82
|
| step21 | 5 | 1 | 1 |
|
|
83
83
|
| Radu Ciorba | 5 | 0 | 0 |
|
|
84
84
|
| Charlie Herz | 4 | 626 | 5 |
|
|
85
|
-
| Ebuzer Celil Durmaz | 4 |
|
|
86
|
-
| Robert Blenis | 4 |
|
|
85
|
+
| Ebuzer Celil Durmaz | 4 | 78 | 5 |
|
|
86
|
+
| Robert Blenis | 4 | 49 | 4 |
|
|
87
87
|
| Franco Ayala | 4 | 39 | 6 |
|
|
88
|
-
| Suryansh Pal | 4 |
|
|
88
|
+
| Suryansh Pal | 4 | 34 | 8 |
|
|
89
89
|
| 8bit | 4 | 29 | 5 |
|
|
90
90
|
| Steve Groesz | 4 | 22 | 1 |
|
|
91
91
|
| Ryan Polley | 4 | 12 | 4 |
|
|
@@ -95,7 +95,7 @@ show up there, so the number understates early contributions. Generated files
|
|
|
95
95
|
| Narendra Vardi | 4 | 3 | 1 |
|
|
96
96
|
| Alexander Pyhalov | 4 | 0 | 0 |
|
|
97
97
|
| oxiedi | 4 | 0 | 0 |
|
|
98
|
-
| Parman Mohammadalizadeh | 3 |
|
|
98
|
+
| Parman Mohammadalizadeh | 3 | 292 | 5 |
|
|
99
99
|
| Stephan Herbers | 3 | 49 | 2 |
|
|
100
100
|
| Charmi Kadi | 3 | 46 | 2 |
|
|
101
101
|
| Martin Richtarsky | 3 | 31 | 4 |
|
|
@@ -130,7 +130,7 @@ show up there, so the number understates early contributions. Generated files
|
|
|
130
130
|
| trxvorr | 2 | 103 | 7 |
|
|
131
131
|
| Syed Ali Ghazi Ejaz | 2 | 90 | 4 |
|
|
132
132
|
| David Rambo | 2 | 87 | 3 |
|
|
133
|
-
| Soumik Dutta | 2 |
|
|
133
|
+
| Soumik Dutta | 2 | 76 | 3 |
|
|
134
134
|
| Divyansh Agrawal | 2 | 43 | 4 |
|
|
135
135
|
| Eric Wolf | 2 | 38 | 3 |
|
|
136
136
|
| Ioannis Cherouvim | 2 | 30 | 2 |
|
|
@@ -151,10 +151,10 @@ show up there, so the number understates early contributions. Generated files
|
|
|
151
151
|
| Vaskebjoern | 2 | 5 | 1 |
|
|
152
152
|
| wormingdead | 2 | 5 | 1 |
|
|
153
153
|
| Samuel | 2 | 4 | 3 |
|
|
154
|
-
| a1346054 | 2 | 4 | 3 |
|
|
155
154
|
| snsmac | 2 | 4 | 2 |
|
|
156
155
|
| Andreas Gruhler | 2 | 3 | 1 |
|
|
157
156
|
| Markus Engelbrecht | 2 | 3 | 1 |
|
|
157
|
+
| a1346054 | 2 | 3 | 2 |
|
|
158
158
|
| bbx0 | 2 | 3 | 1 |
|
|
159
159
|
| jan | 2 | 3 | 1 |
|
|
160
160
|
| Fabian Fröhlich | 2 | 2 | 1 |
|
|
@@ -191,12 +191,12 @@ show up there, so the number understates early contributions. Generated files
|
|
|
191
191
|
| motwok | 2 | 0 | 0 |
|
|
192
192
|
| sven | 2 | 0 | 0 |
|
|
193
193
|
| user062 | 2 | 0 | 0 |
|
|
194
|
-
| Tarrailt | 1 |
|
|
194
|
+
| Tarrailt | 1 | 362 | 7 |
|
|
195
195
|
| axapaxa | 1 | 105 | 2 |
|
|
196
196
|
| Benedikt Seidl | 1 | 103 | 1 |
|
|
197
197
|
| Aleksey Korol | 1 | 91 | 1 |
|
|
198
198
|
| ebabcock93 | 1 | 84 | 1 |
|
|
199
|
-
| mrityunjay | 1 |
|
|
199
|
+
| mrityunjay | 1 | 73 | 5 |
|
|
200
200
|
| Rohan salunke | 1 | 62 | 8 |
|
|
201
201
|
| Xiaocheng Song | 1 | 60 | 4 |
|
|
202
202
|
| Mike Mason | 1 | 37 | 3 |
|
|
@@ -270,6 +270,7 @@ show up there, so the number understates early contributions. Generated files
|
|
|
270
270
|
| Vagrant Cascadian | 1 | 1 | 1 |
|
|
271
271
|
| targhs | 1 | 1 | 1 |
|
|
272
272
|
| tree-wall | 1 | 1 | 1 |
|
|
273
|
+
| 🇺🇦 Sviatoslav Sydorenko (Святослав Сидоренко) | 1 | 1 | 1 |
|
|
273
274
|
| Adam Kouse | 1 | 0 | 0 |
|
|
274
275
|
| Aidan Woods | 1 | 0 | 0 |
|
|
275
276
|
| Aiman | 1 | 0 | 0 |
|
|
@@ -16,22 +16,22 @@
|
|
|
16
16
|
</style>
|
|
17
17
|
<rect class="bg" x="0" y="0" width="760" height="524" rx="6"/>
|
|
18
18
|
<text class="title" x="14" y="26">Borg contributors</text>
|
|
19
|
-
<text class="subtitle" x="14" y="44">top 20 of
|
|
19
|
+
<text class="subtitle" x="14" y="44">top 20 of 374 by commits on the master branch</text>
|
|
20
20
|
<text class="name" x="14" y="73">Thomas Waldmann</text>
|
|
21
21
|
<rect class="bar" x="240" y="63" width="436" height="12" rx="2"/>
|
|
22
|
-
<text class="count" x="746" y="73">7,
|
|
22
|
+
<text class="count" x="746" y="73">7,693</text>
|
|
23
23
|
<text class="name" x="14" y="95">Marian Beermann</text>
|
|
24
|
-
<rect class="bar" x="240" y="85" width="
|
|
24
|
+
<rect class="bar" x="240" y="85" width="65" height="12" rx="2"/>
|
|
25
25
|
<text class="count" x="746" y="95">1,140</text>
|
|
26
26
|
<text class="name" x="14" y="117">Jonas Borgström</text>
|
|
27
27
|
<rect class="bar" x="240" y="107" width="32" height="12" rx="2"/>
|
|
28
28
|
<text class="count" x="746" y="117">560</text>
|
|
29
29
|
<text class="name" x="14" y="139">Antoine Beaupré</text>
|
|
30
|
-
<rect class="bar" x="240" y="129" width="
|
|
30
|
+
<rect class="bar" x="240" y="129" width="16" height="12" rx="2"/>
|
|
31
31
|
<text class="count" x="746" y="139">285</text>
|
|
32
32
|
<text class="name" x="14" y="161">Mrityunjay Raj</text>
|
|
33
|
-
<rect class="bar" x="240" y="151" width="
|
|
34
|
-
<text class="count" x="746" y="161">
|
|
33
|
+
<rect class="bar" x="240" y="151" width="15" height="12" rx="2"/>
|
|
34
|
+
<text class="count" x="746" y="161">260</text>
|
|
35
35
|
<text class="name" x="14" y="183">Andrey Bienkowski</text>
|
|
36
36
|
<rect class="bar" x="240" y="173" width="4" height="12" rx="2"/>
|
|
37
37
|
<text class="count" x="746" y="183">72</text>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: borgbackup
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.0b25
|
|
4
4
|
Summary: Deduplicated, encrypted, authenticated, and compressed backups
|
|
5
5
|
Author: The Borg Collective (see AUTHORS file)
|
|
6
6
|
Maintainer-email: Thomas Waldmann <tw@waldmann-edv.de>
|
|
@@ -32,7 +32,7 @@ Requires-Python: >=3.11
|
|
|
32
32
|
License-File: LICENSE
|
|
33
33
|
License-File: AUTHORS
|
|
34
34
|
Requires-Dist: borghash~=0.2.0
|
|
35
|
-
Requires-Dist: borgstore[blake3,rest]~=0.
|
|
35
|
+
Requires-Dist: borgstore[blake3,rest]~=0.7.0
|
|
36
36
|
Requires-Dist: msgpack<=1.2.2,>=1.0.3
|
|
37
37
|
Requires-Dist: packaging
|
|
38
38
|
Requires-Dist: platformdirs<5.0.0,>=3.0.0; sys_platform == "darwin"
|
|
@@ -53,11 +53,11 @@ Provides-Extra: mfusepy
|
|
|
53
53
|
Requires-Dist: mfusepy<4.0.0,>=3.1.0; extra == "mfusepy"
|
|
54
54
|
Provides-Extra: nofuse
|
|
55
55
|
Provides-Extra: s3
|
|
56
|
-
Requires-Dist: borgstore[blake3,rest,s3]~=0.
|
|
56
|
+
Requires-Dist: borgstore[blake3,rest,s3]~=0.7.0; extra == "s3"
|
|
57
57
|
Provides-Extra: sftp
|
|
58
|
-
Requires-Dist: borgstore[blake3,rest,sftp]~=0.
|
|
58
|
+
Requires-Dist: borgstore[blake3,rest,sftp]~=0.7.0; extra == "sftp"
|
|
59
59
|
Provides-Extra: rclone
|
|
60
|
-
Requires-Dist: borgstore[blake3,rclone,rest]~=0.
|
|
60
|
+
Requires-Dist: borgstore[blake3,rclone,rest]~=0.7.0; extra == "rclone"
|
|
61
61
|
Provides-Extra: cockpit
|
|
62
62
|
Requires-Dist: textual>=6.8.0; extra == "cockpit"
|
|
63
63
|
Dynamic: description
|
|
@@ -130,8 +130,7 @@ Main features
|
|
|
130
130
|
authenticity.
|
|
131
131
|
|
|
132
132
|
If you do not need confidentiality, there are also modes that only
|
|
133
|
-
authenticate (``authenticated-sha256`` / ``authenticated-blake3``)
|
|
134
|
-
modes that do neither (``none-sha256`` / ``none-blake3``).
|
|
133
|
+
authenticate (``authenticated-sha256`` / ``authenticated-blake3``).
|
|
135
134
|
|
|
136
135
|
**Hashing**
|
|
137
136
|
You can choose between HMAC-SHA256 and Blake3.
|
|
@@ -152,7 +151,7 @@ Main features
|
|
|
152
151
|
**Off-site backups**
|
|
153
152
|
Borg can store data on any remote host accessible via misc. protocols:
|
|
154
153
|
|
|
155
|
-
* ``
|
|
154
|
+
* ``ssh://`` (REST-http-over-stdio-over-ssh) and ``http(s)://``
|
|
156
155
|
(REST-http-over-tcp). Significant performance gains can be achieved with
|
|
157
156
|
these by having a remote agent (borg must be installed on the repo server).
|
|
158
157
|
* ``sftp://``
|
|
@@ -81,8 +81,7 @@ Main features
|
|
|
81
81
|
authenticity.
|
|
82
82
|
|
|
83
83
|
If you do not need confidentiality, there are also modes that only
|
|
84
|
-
authenticate (``authenticated-sha256`` / ``authenticated-blake3``)
|
|
85
|
-
modes that do neither (``none-sha256`` / ``none-blake3``).
|
|
84
|
+
authenticate (``authenticated-sha256`` / ``authenticated-blake3``).
|
|
86
85
|
|
|
87
86
|
**Hashing**
|
|
88
87
|
You can choose between HMAC-SHA256 and Blake3.
|
|
@@ -103,7 +102,7 @@ Main features
|
|
|
103
102
|
**Off-site backups**
|
|
104
103
|
Borg can store data on any remote host accessible via misc. protocols:
|
|
105
104
|
|
|
106
|
-
* ``
|
|
105
|
+
* ``ssh://`` (REST-http-over-stdio-over-ssh) and ``http(s)://``
|
|
107
106
|
(REST-http-over-tcp). Significant performance gains can be achieved with
|
|
108
107
|
these by having a remote agent (borg must be installed on the repo server).
|
|
109
108
|
* ``sftp://``
|
|
@@ -33,6 +33,13 @@ Binaries built on GitHub servers
|
|
|
33
33
|
|
|
34
34
|
borg-linux-glibc243-x86_64-gh Linux AMD/Intel (built on Ubuntu 26.04 LTS with glibc 2.43)
|
|
35
35
|
borg-linux-glibc243-arm64-gh Linux ARM (built on Ubuntu 26.04 LTS with glibc 2.43)
|
|
36
|
+
borg-linux-glibc239-x86_64-gh Linux AMD/Intel (built on Ubuntu 24.04 LTS with glibc 2.39)
|
|
37
|
+
borg-linux-glibc239-arm64-gh Linux ARM (built on Ubuntu 24.04 LTS with glibc 2.39)
|
|
38
|
+
|
|
39
|
+
The glibc239 binaries are for systems with an older glibc, and for CPUs below
|
|
40
|
+
x86-64-v3, on which the glibc243 x86_64 binary does not run ("Illegal
|
|
41
|
+
instruction"). As Ubuntu 24.04 only has OpenSSL 3.0 and Python 3.12, they bundle
|
|
42
|
+
OpenSSL 3.5 and Python 3.14 built from source.
|
|
36
43
|
|
|
37
44
|
borg-macos-15-arm64-gh macOS Apple Silicon (built on macOS 15 w/o FUSE support)
|
|
38
45
|
borg-macos-15-x86_64-gh macOS Intel (built on macOS 15 w/o FUSE support)
|
|
@@ -163,6 +163,152 @@ Compatibility notes:
|
|
|
163
163
|
Change Log 2.x
|
|
164
164
|
==============
|
|
165
165
|
|
|
166
|
+
Version 2.0.0b25 (2026-09-27)
|
|
167
|
+
-----------------------------
|
|
168
|
+
|
|
169
|
+
Breaking changes (you must create new repos for b25):
|
|
170
|
+
|
|
171
|
+
- cli: use ssh:// URLs (not rest://), #9765. ssh:// repository URLs access
|
|
172
|
+
current repositories via REST over ssh. With --from-borg1, they access
|
|
173
|
+
legacy borg 1.x repositories via the legacy RPC protocol over ssh.
|
|
174
|
+
- cli: remove the none-sha256 and none-blake3 encryption modes, use the
|
|
175
|
+
authenticated-sha256 and authenticated-blake3 modes instead.
|
|
176
|
+
- repository: use an ini-style config/config text object (repo version 5)
|
|
177
|
+
instead of the manifest, id, version and readme objects. The encryption and
|
|
178
|
+
id-hash algorithms are also given there as plain text.
|
|
179
|
+
- store hash: use the much faster, pure-software blake3 hash instead of sha256
|
|
180
|
+
to name content-addressed objects in the store.
|
|
181
|
+
- the lock, index and cache store objects are now protected by the repository
|
|
182
|
+
key: encrypted and authenticated in the encrypting modes, authenticated only
|
|
183
|
+
in the authenticated modes, #9819, #10235, #8386. As locking needs the key,
|
|
184
|
+
borg asks for the passphrase before waiting for the lock, and break-lock and
|
|
185
|
+
repo-delete (also with --force) need the key, too.
|
|
186
|
+
- drop OBJ_VERSION_NO_HEADER_AAD (pack object format v1) support, #9973
|
|
187
|
+
- KeyType: renumber the authenticated key types to 0x50 / 0x60
|
|
188
|
+
|
|
189
|
+
New features:
|
|
190
|
+
|
|
191
|
+
- repo-create: store default compression and chunker params in the repository, #346
|
|
192
|
+
- create/import-tar --json: report the deduplicated size of the new archive, #10335
|
|
193
|
+
- diff --stats: show a summary of the differences, #796
|
|
194
|
+
- repo-info: show whether the key uses an empty passphrase, #9072
|
|
195
|
+
- the "previously unknown unencrypted repository" warning now says why the repository
|
|
196
|
+
is considered unencrypted: an authenticated mode (no data encryption) or a
|
|
197
|
+
repokey with an empty passphrase, #9072
|
|
198
|
+
- mount: support Windows using WinFsp (via mfusepy), #2316
|
|
199
|
+
- import-tar --strip-components: strip leading path components, #6461
|
|
200
|
+
- add the BORG_NEW_PASSCOMMAND and BORG_NEW_PASSPHRASE_FD env vars
|
|
201
|
+
- tag: add --clear to remove all normal tags
|
|
202
|
+
|
|
203
|
+
Fixes:
|
|
204
|
+
|
|
205
|
+
- crypto: the AEAD ciphers (AES-OCB, ChaCha20-Poly1305) feed their input to OpenSSL in
|
|
206
|
+
<= 1 GiB chunks to overcome the 32-bit size limit of the OpenSSL API.
|
|
207
|
+
- repository: raise DoesNotExist for a missing ssh:// repository, #10365
|
|
208
|
+
- --from-borg1 via ssh:// failed with a borg 1.x "borg serve" (e.g. borg
|
|
209
|
+
transfer): the legacy client used RPC methods borg 1.x does not have and did
|
|
210
|
+
not convert the bytes a borg 1.x server sent back.
|
|
211
|
+
- --from-borg1: borg 1.x repositories in authenticated or authenticated-blake2
|
|
212
|
+
mode could not be accessed ("passphrase is incorrect"), as their key was not
|
|
213
|
+
decrypted with the pbkdf2 key derivation borg 1.x used for it.
|
|
214
|
+
- repository: show a clear error message for borg 1.x repositories, fixing a
|
|
215
|
+
crash when --from-borg1 was not given.
|
|
216
|
+
- compact:
|
|
217
|
+
|
|
218
|
+
- build the chunk index once, not three times
|
|
219
|
+
- validate a gap object before dropping its bytes, #10093
|
|
220
|
+
- do not rewrite or merge packs recorded as corrupt, #10410
|
|
221
|
+
- repo-compress: do not rewrite packs recorded as corrupt, #10410
|
|
222
|
+
- check:
|
|
223
|
+
|
|
224
|
+
- use one chunk index for the checker and the repository, #10364
|
|
225
|
+
- report missing/corrupted item_ptrs chunks, #10421
|
|
226
|
+
- --verify-data: read the repo pack by pack, #9998
|
|
227
|
+
- --repair: validate the repository index rebuild with the key, #9901
|
|
228
|
+
- --repair: misc. other improvements and fixes, #8476
|
|
229
|
+
- --repair: remove the index entries of missing packs, #8572, #9898
|
|
230
|
+
- repository: don't mask the original exception when unwinding with buffered
|
|
231
|
+
chunks
|
|
232
|
+
- treat an empty BORG_ZSTD_MT_WORKERS as unset (an empty value made borg fail)
|
|
233
|
+
- extract:
|
|
234
|
+
|
|
235
|
+
- do not abort on corrupted chunks, replace them with all-zero data and warn, #840
|
|
236
|
+
- report a failing close() of an extracted file as a warning
|
|
237
|
+
- refuse to extract into a non-empty directory, #10057
|
|
238
|
+
- --continue: keep groups of hard links together
|
|
239
|
+
- prepare_subprocess_env: remove all passphrase-related env vars, #6480
|
|
240
|
+
- mount: mfusepy: pass the libfuse options as keyword arguments, fix getattr with a file handle
|
|
241
|
+
- index rebuild: abort cleanly on a corrupt object header, #10122
|
|
242
|
+
- diff:
|
|
243
|
+
|
|
244
|
+
- align the chunk lists to count added/removed bytes
|
|
245
|
+
- do not report a merely touched file as modified when the chunker params
|
|
246
|
+
differ, #10351
|
|
247
|
+
- report a file as modified when chunks were reordered or duplicated
|
|
248
|
+
- import-tar: show the stored paths in the file status output
|
|
249
|
+
- locking: try to acquire a lock at least once before timing out, also with --lock-wait 0
|
|
250
|
+
- repoobj: catch get() errors in --find-lost-archives, #10318
|
|
251
|
+
- repo-list, compact: handle archives with a missing metadata object, #10435
|
|
252
|
+
- create: replace --tags with --tag, taking one tag per option, #10430
|
|
253
|
+
- tag:
|
|
254
|
+
|
|
255
|
+
- --set/--add/--remove take one tag per option, #10430
|
|
256
|
+
- only rewrite the archive metadata if the tags changed
|
|
257
|
+
- warn if --set is refused because it would remove special tags
|
|
258
|
+
- refuse to change the tags of all archives without a selection
|
|
259
|
+
|
|
260
|
+
Other changes:
|
|
261
|
+
|
|
262
|
+
- update pyinstaller to 6.22.3
|
|
263
|
+
- require borgstore 0.7.0
|
|
264
|
+
- Linux binaries:
|
|
265
|
+
|
|
266
|
+
- build binaries for older CPUs and older glibc on Ubuntu 24.04, #10342
|
|
267
|
+
- reduce binary size, #10345:
|
|
268
|
+
|
|
269
|
+
- strip debug symbols
|
|
270
|
+
- avoid bundling OpenSSL twice
|
|
271
|
+
- bundle only needed botocore models
|
|
272
|
+
|
|
273
|
+
- compress: reuse the zstd compressor per thread, improving throughput especially
|
|
274
|
+
for big chunks at fast, low-compression zstd levels
|
|
275
|
+
- add_warning: store exceptions given as args as text, not as exception objects,
|
|
276
|
+
reducing memory usage when there are many warnings
|
|
277
|
+
- optimize speed, especially for remote repos and repos with many archives:
|
|
278
|
+
|
|
279
|
+
- load all archives' metadata with one Store.gather
|
|
280
|
+
- reuse the listed archive metadata when opening an Archive
|
|
281
|
+
- check:
|
|
282
|
+
|
|
283
|
+
- do not reject items with unknown keys, drop item_keys from the manifest
|
|
284
|
+
- resync on any item-key-like first key, not only on known keys
|
|
285
|
+
- always require the borg key (now needed to access the cache and the index)
|
|
286
|
+
- --repair: re-read only the packs the repair wrote, #8466
|
|
287
|
+
- make the chunk index rebuild interruptible, #10042
|
|
288
|
+
- remove the repository feature flags mechanism (used to be in the manifest,
|
|
289
|
+
but was never really used)
|
|
290
|
+
- security: drop the manifest timestamp replay check (not needed anymore)
|
|
291
|
+
- debug get-obj, put-obj, delete-obj: need the key now (to access the chunk index)
|
|
292
|
+
- docs:
|
|
293
|
+
|
|
294
|
+
- extract: document the metadata that can only be restored as root, #8088
|
|
295
|
+
- fix two inaccuracies in the borg diff JSON docs, #7486
|
|
296
|
+
- key export --paper: fix the restore hint for borg 2 syntax, #10428
|
|
297
|
+
- an empty passphrase can be replaced later with ``borg key change-passphrase``, #9072
|
|
298
|
+
- add a FAQ entry about deduplicating related repositories on the filesystem, see #9104
|
|
299
|
+
- derive the borg passphrase from a YubiKey (challenge-response), #4549
|
|
300
|
+
- protect the borg passphrase with age (which also supports crypto tokens,
|
|
301
|
+
TPM, Apple Secure Enclave, ... via age plugins), #4549
|
|
302
|
+
- explain the tags: archive match pattern
|
|
303
|
+
- tests:
|
|
304
|
+
|
|
305
|
+
- add an archiver-level test for BORG_WORKAROUNDS=authenticated_no_key
|
|
306
|
+
(make sure an authenticated mode repository can be read using this
|
|
307
|
+
workaround, even if the key or passphrase is lost)
|
|
308
|
+
- CI: run the S3 tests against moto instead of MinIO, #10361
|
|
309
|
+
- CI: add a swap zvol on omniOS to fix sporadic fork ENOMEM
|
|
310
|
+
|
|
311
|
+
|
|
166
312
|
Version 2.0.0b24 (2026-09-02)
|
|
167
313
|
-----------------------------
|
|
168
314
|
|
|
@@ -206,7 +352,7 @@ Fixes:
|
|
|
206
352
|
- chunkers:
|
|
207
353
|
|
|
208
354
|
- goldilocks-aes: fix build on 32-bit archs (no __uint128_t there)
|
|
209
|
-
-
|
|
355
|
+
- ``*-aes`` chunkers: use the aes-arm64 instructions on Linux and FreeBSD.
|
|
210
356
|
- completions:
|
|
211
357
|
|
|
212
358
|
- fish: fix the completion and error message issues, #3086
|
|
@@ -232,7 +378,7 @@ Other changes:
|
|
|
232
378
|
- benchmark cpu: also benchmark zstd,-4
|
|
233
379
|
- chunkers:
|
|
234
380
|
|
|
235
|
-
- speed up the
|
|
381
|
+
- speed up the ``*-aes`` chunkers on x86-64
|
|
236
382
|
- speed up the buzhash64 kernel on arm64 / Apple Silicon, use the blockwise
|
|
237
383
|
kernel on aarch64 by default (now faster than NEON)
|
|
238
384
|
- speed up the fastcdc blockwise kernel (default kernel on platforms other
|
|
@@ -290,7 +436,7 @@ Other changes:
|
|
|
290
436
|
- fix OpenSSL, rclone and IV details in internals/security.rst
|
|
291
437
|
- update the mount -o versions example to the current naming
|
|
292
438
|
- fix the man page install command in installation.rst
|
|
293
|
-
- fix BORG_ASSERT_ID claims about authenticated
|
|
439
|
+
- fix BORG_ASSERT_ID claims about authenticated and none modes
|
|
294
440
|
- point borg delete -a pattern help at the match-archives topic
|
|
295
441
|
|
|
296
442
|
|
|
@@ -341,7 +487,7 @@ New features:
|
|
|
341
487
|
- analyze: report deduplicated size of a set of archives, #5741, #9992
|
|
342
488
|
- compression: support zstd's negative ("fast") levels, ``zstd,-1`` .. ``zstd,-128``, #9950.
|
|
343
489
|
They trade compression ratio for speed. Compatible with existing repositories.
|
|
344
|
-
- create --encryption: new none
|
|
490
|
+
- create --encryption: new none and authenticated modes, #9104.
|
|
345
491
|
Uses either sha256 or blake3, improves authentication and checksumming capabilities.
|
|
346
492
|
- create: --map and --reuse-from for efficient block device snapshot backups.
|
|
347
493
|
Adds the lvm-thin-map.py script to generate input maps from thin_dump XML, see #4363.
|
|
@@ -1392,7 +1538,7 @@ Other changes:
|
|
|
1392
1538
|
when borg does not need to read borg 1.x repos/archives anymore, after
|
|
1393
1539
|
users have transferred their archives, even much more can be removed.
|
|
1394
1540
|
- docs: updated / removed outdated stuff
|
|
1395
|
-
- renamed r
|
|
1541
|
+
- renamed r... commands to repo-...
|
|
1396
1542
|
|
|
1397
1543
|
|
|
1398
1544
|
Version 2.0.0b9 (2024-07-20)
|