borgbackup 2.0.0b23__tar.gz → 2.0.0b24__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.
Files changed (600) hide show
  1. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/.claude/CLAUDE.md +5 -4
  2. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/CHANGES.rst +133 -1
  3. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/FAME.md +64 -64
  4. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/FAME.svg +4 -4
  5. {borgbackup-2.0.0b23/src/borgbackup.egg-info → borgbackup-2.0.0b24}/PKG-INFO +40 -25
  6. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/README.rst +38 -22
  7. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/binaries/00_README.txt +18 -3
  8. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/changes.rst +133 -1
  9. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/changes_1.x.rst +2 -1
  10. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/deployment/automated-local.rst +20 -6
  11. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/deployment/hosting-repositories.rst +35 -6
  12. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/deployment/image-backup.rst +10 -1
  13. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/deployment/pull-backup.rst +44 -26
  14. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/development.rst +18 -49
  15. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/faq.rst +59 -32
  16. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/global.rst.inc +1 -1
  17. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/installation.rst +47 -28
  18. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/chunker.rst +6 -1
  19. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/data-structures.rst +252 -146
  20. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/frontends.rst +361 -223
  21. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/packs.rst +98 -65
  22. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/security.rst +159 -66
  23. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals.rst +8 -5
  24. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-analyze.1 +28 -16
  25. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-benchmark-cpu.1 +25 -8
  26. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-benchmark-crud.1 +10 -7
  27. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-benchmark.1 +1 -1
  28. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-break-lock.1 +1 -1
  29. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-check.1 +25 -16
  30. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-common.1 +1 -1
  31. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-compact.1 +2 -2
  32. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-completion.1 +1 -1
  33. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-compression.1 +1 -1
  34. borgbackup-2.0.0b24/docs/man/borg-copy.1 +103 -0
  35. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-create.1 +26 -7
  36. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-delete.1 +2 -2
  37. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-diff.1 +61 -34
  38. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-environment.1 +118 -40
  39. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-export-tar.1 +1 -1
  40. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-extract.1 +1 -1
  41. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-find.1 +22 -13
  42. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-import-tar.1 +7 -5
  43. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-info.1 +14 -13
  44. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-key-add.1 +1 -1
  45. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-key-change-location.1 +1 -1
  46. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-key-change-passphrase.1 +21 -12
  47. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-key-export.1 +1 -1
  48. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-key-import.1 +17 -9
  49. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-key-list.1 +1 -1
  50. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-key-remove.1 +1 -1
  51. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-key.1 +1 -1
  52. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-list.1 +34 -25
  53. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-match-archives.1 +8 -2
  54. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-mount.1 +7 -5
  55. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-patterns.1 +11 -7
  56. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-placeholders.1 +11 -3
  57. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-prune.1 +64 -24
  58. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-recreate.1 +33 -19
  59. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-rename.1 +4 -3
  60. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-repo-compress.1 +1 -1
  61. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-repo-create.1 +14 -11
  62. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-repo-delete.1 +7 -6
  63. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-repo-info.1 +6 -9
  64. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-repo-list.1 +59 -17
  65. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-repo-space.1 +1 -1
  66. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-serve.1 +20 -5
  67. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-tag.1 +1 -1
  68. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-transfer.1 +55 -8
  69. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-umount.1 +5 -5
  70. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-undelete.1 +2 -2
  71. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-version.1 +10 -7
  72. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-webdav.1 +1 -1
  73. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-with-lock.1 +1 -1
  74. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg.1 +356 -85
  75. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borgfs.1 +16 -13
  76. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/benchmark-crud.txt +6 -2
  77. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/create_chunker-params.txt +10 -0
  78. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/quickstart.rst +58 -25
  79. borgbackup-2.0.0b24/docs/quickstart_example.rst.inc +76 -0
  80. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/analyze.rst.inc +55 -43
  81. borgbackup-2.0.0b24/docs/usage/benchmark_cpu.rst.inc +101 -0
  82. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/benchmark_crud.rst.inc +9 -6
  83. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/check.rst.inc +24 -15
  84. borgbackup-2.0.0b24/docs/usage/compact.rst +9 -0
  85. borgbackup-2.0.0b24/docs/usage/copy.rst +21 -0
  86. borgbackup-2.0.0b24/docs/usage/copy.rst.inc +72 -0
  87. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/create.rst.inc +131 -113
  88. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/delete.rst.inc +1 -1
  89. borgbackup-2.0.0b24/docs/usage/diff.rst +36 -0
  90. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/diff.rst.inc +22 -13
  91. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/find.rst +5 -5
  92. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/find.rst.inc +2 -1
  93. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/general/config.rst.inc +10 -3
  94. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/general/environment.rst.inc +108 -38
  95. borgbackup-2.0.0b24/docs/usage/general/file-systems.rst.inc +40 -0
  96. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/general/positional-arguments.rst.inc +1 -1
  97. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/general/repository-urls.rst.inc +33 -6
  98. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/general/resources.rst.inc +10 -2
  99. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/general/units.rst.inc +1 -1
  100. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/general.rst +1 -1
  101. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/help.rst.inc +27 -9
  102. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/import-tar.rst.inc +38 -38
  103. borgbackup-2.0.0b24/docs/usage/info.rst +22 -0
  104. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/key.rst +20 -11
  105. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/key_import.rst.inc +13 -8
  106. borgbackup-2.0.0b24/docs/usage/list.rst +47 -0
  107. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/list.rst.inc +2 -1
  108. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/mount.rst +4 -4
  109. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/mount.rst.inc +6 -4
  110. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/notes.rst +12 -11
  111. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/prune.rst.inc +104 -75
  112. borgbackup-2.0.0b24/docs/usage/recreate.rst +37 -0
  113. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/recreate.rst.inc +78 -71
  114. borgbackup-2.0.0b24/docs/usage/rename.rst +15 -0
  115. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/repo-create.rst +10 -7
  116. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/repo-create.rst.inc +22 -22
  117. borgbackup-2.0.0b24/docs/usage/repo-delete.rst +15 -0
  118. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/repo-delete.rst.inc +18 -18
  119. borgbackup-2.0.0b24/docs/usage/repo-info.rst +14 -0
  120. borgbackup-2.0.0b24/docs/usage/repo-list.rst +15 -0
  121. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/repo-list.rst.inc +35 -5
  122. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/serve.rst +14 -2
  123. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/serve.rst.inc +5 -3
  124. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/tar.rst +5 -3
  125. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/transfer.rst +7 -3
  126. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/transfer.rst.inc +38 -5
  127. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/undelete.rst.inc +1 -1
  128. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/version.rst.inc +18 -15
  129. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage.rst +1 -0
  130. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage_general.rst.inc +10 -0
  131. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/pyproject.toml +12 -8
  132. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/requirements.d/development.lock.txt +3 -3
  133. borgbackup-2.0.0b24/scripts/bench_chunker_kernels.py +323 -0
  134. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/build-borg-using-nuitka.sh +0 -2
  135. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/endian_interop_test.py +4 -0
  136. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/make.py +33 -5
  137. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/msys2-install-deps +1 -1
  138. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/rest_perf_test.sh +1 -1
  139. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/setup.py +2 -2
  140. borgbackup-2.0.0b24/src/borg/_version.py +1 -0
  141. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archive.py +57 -14
  142. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/__init__.py +22 -3
  143. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/_common.py +26 -4
  144. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/analyze_cmd.py +93 -66
  145. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/benchmark_cmd.py +152 -37
  146. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/check_cmd.py +24 -15
  147. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/compact_cmd.py +1 -1
  148. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/completion_cmd.py +110 -80
  149. borgbackup-2.0.0b24/src/borg/archiver/copy_cmd.py +60 -0
  150. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/create_cmd.py +43 -7
  151. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/debug_cmd.py +11 -4
  152. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/delete_cmd.py +9 -4
  153. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/diff_cmd.py +25 -17
  154. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/find_cmd.py +2 -2
  155. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/help_cmd.py +135 -47
  156. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/info_cmd.py +2 -2
  157. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/key_cmds.py +13 -8
  158. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/list_cmd.py +2 -2
  159. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/mount_cmds.py +29 -6
  160. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/prune_cmd.py +177 -75
  161. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/recreate_cmd.py +25 -11
  162. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/repo_create_cmd.py +15 -3
  163. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/repo_delete_cmd.py +4 -4
  164. borgbackup-2.0.0b24/src/borg/archiver/repo_list_cmd.py +159 -0
  165. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/serve_cmd.py +5 -2
  166. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/tag_cmd.py +2 -2
  167. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/tar_cmds.py +5 -2
  168. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/transfer_cmd.py +42 -7
  169. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/undelete_cmd.py +9 -4
  170. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/version_cmd.py +8 -7
  171. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/cache.py +63 -20
  172. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/__init__.py +4 -3
  173. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/buzhash64_impl.c +76 -39
  174. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/fastcdc_impl.c +42 -15
  175. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/fastcdc_impl.h +2 -2
  176. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/goldilocks_aes_impl.c +43 -6
  177. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/phte_chunker.c +4 -4
  178. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/phte_chunker.pyx +1 -1
  179. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/phte_core.h +40 -8
  180. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/phte_scan.h +72 -69
  181. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/compress.c +2 -1
  182. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/conftest.py +4 -0
  183. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/crypto/key.py +48 -26
  184. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/crypto/low_level.c +3720 -2032
  185. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/crypto/low_level.pyi +3 -0
  186. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/crypto/low_level.pyx +87 -0
  187. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/fslocking.py +5 -0
  188. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/__init__.py +3 -1
  189. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/argparsing.py +64 -0
  190. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/fs.py +23 -5
  191. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/misc.py +13 -0
  192. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/msgpack.py +1 -1
  193. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/parseformat.py +70 -10
  194. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/passphrase.py +6 -1
  195. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/time.py +19 -2
  196. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/yes_no.py +8 -1
  197. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/item.c +642 -600
  198. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/item.pyx +9 -4
  199. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/legacy/crypto/key.py +31 -8
  200. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/legacy/remote.py +5 -2
  201. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/logger.py +40 -8
  202. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/manifest.py +38 -1
  203. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/repository.py +4 -2
  204. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/security.py +6 -3
  205. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/storelocking.py +52 -7
  206. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/_common_test.py +41 -0
  207. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/analyze_cmd_test.py +75 -28
  208. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/benchmark_cmd_test.py +96 -1
  209. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/check_cmd_test.py +2 -2
  210. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/completion_cmd_test.py +128 -0
  211. borgbackup-2.0.0b24/src/borg/testsuite/archiver/copy_cmd_test.py +145 -0
  212. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/create_cmd_test.py +98 -0
  213. borgbackup-2.0.0b24/src/borg/testsuite/archiver/delete_cmd_test.py +137 -0
  214. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/diff_cmd_test.py +79 -5
  215. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/info_cmd_test.py +16 -0
  216. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/match_archives_date_test.py +1 -2
  217. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/mount_cmds_test.py +97 -1
  218. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/prune_cmd_test.py +233 -35
  219. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/recreate_cmd_test.py +9 -3
  220. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/repo_delete_cmd_test.py +12 -0
  221. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/repo_list_cmd_test.py +93 -0
  222. borgbackup-2.0.0b24/src/borg/testsuite/archiver/serve_cmd_test.py +26 -0
  223. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/tar_cmds_test.py +33 -0
  224. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/transfer_cmd_test.py +69 -1
  225. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/undelete_cmd_test.py +60 -0
  226. borgbackup-2.0.0b24/src/borg/testsuite/archiver/version_cmd_test.py +33 -0
  227. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/webdav_cmd_test.py +18 -3
  228. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/cache_test.py +31 -0
  229. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/chunkers/fastcdc_test.py +5 -2
  230. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/chunkers/phte_chunkers_test.py +29 -0
  231. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/crypto/crypto_test.py +8 -1
  232. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/crypto/key_test.py +44 -0
  233. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/fs_test.py +6 -6
  234. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/parseformat_test.py +87 -0
  235. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/passphrase_test.py +31 -0
  236. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/progress_test.py +1 -0
  237. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/time_test.py +25 -1
  238. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/yes_no_test.py +74 -0
  239. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/item_test.py +19 -1
  240. borgbackup-2.0.0b24/src/borg/testsuite/logger_test.py +87 -0
  241. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/storelocking_test.py +19 -0
  242. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24/src/borgbackup.egg-info}/PKG-INFO +40 -25
  243. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borgbackup.egg-info/SOURCES.txt +7 -2
  244. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borgbackup.egg-info/requires.txt +5 -4
  245. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borgbackup.egg-info/scm_file_list.json +9 -2
  246. borgbackup-2.0.0b24/src/borgbackup.egg-info/scm_version.json +8 -0
  247. borgbackup-2.0.0b23/docs/quickstart_example.rst.inc +0 -63
  248. borgbackup-2.0.0b23/docs/usage/benchmark_cpu.rst.inc +0 -84
  249. borgbackup-2.0.0b23/docs/usage/borgfs.rst +0 -3
  250. borgbackup-2.0.0b23/docs/usage/borgfs.rst.inc +0 -138
  251. borgbackup-2.0.0b23/docs/usage/compact.rst +0 -9
  252. borgbackup-2.0.0b23/docs/usage/diff.rst +0 -26
  253. borgbackup-2.0.0b23/docs/usage/general/file-systems.rst.inc +0 -37
  254. borgbackup-2.0.0b23/docs/usage/info.rst +0 -21
  255. borgbackup-2.0.0b23/docs/usage/list.rst +0 -47
  256. borgbackup-2.0.0b23/docs/usage/recreate.rst +0 -30
  257. borgbackup-2.0.0b23/docs/usage/rename.rst +0 -14
  258. borgbackup-2.0.0b23/docs/usage/repo-delete.rst +0 -14
  259. borgbackup-2.0.0b23/docs/usage/repo-info.rst +0 -17
  260. borgbackup-2.0.0b23/docs/usage/repo-list.rst +0 -15
  261. borgbackup-2.0.0b23/src/borg/_version.py +0 -1
  262. borgbackup-2.0.0b23/src/borg/archiver/repo_list_cmd.py +0 -110
  263. borgbackup-2.0.0b23/src/borg/testsuite/archiver/delete_cmd_test.py +0 -50
  264. borgbackup-2.0.0b23/src/borg/testsuite/archiver/version_cmd_test.py +0 -17
  265. borgbackup-2.0.0b23/src/borg/testsuite/logger_test.py +0 -57
  266. borgbackup-2.0.0b23/src/borgbackup.egg-info/scm_version.json +0 -8
  267. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/.claude/settings.json +0 -0
  268. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/.git-blame-ignore-revs +0 -0
  269. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/.pre-commit-config.yaml +0 -0
  270. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/.readthedocs.yaml +0 -0
  271. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/AUTHORS +0 -0
  272. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/Brewfile +0 -0
  273. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/CONTRIBUTING.md +0 -0
  274. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/LICENSE +0 -0
  275. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/MANIFEST.in +0 -0
  276. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/SECURITY.md +0 -0
  277. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/3rd_party/README +0 -0
  278. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/Makefile +0 -0
  279. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/_static/Makefile +0 -0
  280. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/_static/favicon.ico +0 -0
  281. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/_static/logo.pdf +0 -0
  282. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/_static/logo.png +0 -0
  283. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/_static/logo.svg +0 -0
  284. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/_static/logo_font.txt +0 -0
  285. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/_templates/downloads.html +0 -0
  286. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/_templates/globaltoc.html +0 -0
  287. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/_templates/layout.html +0 -0
  288. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/_templates/logo-text.html +0 -0
  289. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/_templates/versionselector.html +0 -0
  290. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/authors.rst +0 -0
  291. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/book.rst +0 -0
  292. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/borg_theme/css/borg.css +0 -0
  293. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/changes_0.x.rst +0 -0
  294. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/conf.py +0 -0
  295. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/deployment/central-backup-server.rst +0 -0
  296. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/deployment/non-root-user.rst +0 -0
  297. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/deployment.rst +0 -0
  298. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/index.rst +0 -0
  299. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/encryption-aead.odg +0 -0
  300. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/encryption-aead.png +0 -0
  301. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/object-graph.odg +0 -0
  302. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/object-graph.png +0 -0
  303. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/pack-layout.excalidraw +0 -0
  304. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/pack-layout.png +0 -0
  305. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/pack-objheader.excalidraw +0 -0
  306. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/pack-objheader.png +0 -0
  307. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/pack-write-order.excalidraw +0 -0
  308. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/pack-write-order.png +0 -0
  309. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/structure.odg +0 -0
  310. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/internals/structure.png +0 -0
  311. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/introduction.rst +0 -0
  312. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-config.1 +0 -0
  313. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-key-change-algorithm.1 +0 -0
  314. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-key-migrate-to-repokey.1 +0 -0
  315. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man/borg-upgrade.1 +0 -0
  316. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/man_intro.rst +0 -0
  317. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/asciinema/Containerfile +0 -0
  318. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/asciinema/README.md +0 -0
  319. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/asciinema/borg2-demo.cast +0 -0
  320. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/asciinema/demo-data.py +0 -0
  321. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/asciinema/demo.tcl +0 -0
  322. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/asciinema/entrypoint.sh +0 -0
  323. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/asciinema/record.exp +0 -0
  324. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/asciinema/record.sh +0 -0
  325. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/borg-data-flow.odg +0 -0
  326. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/borg-data-flow.png +0 -0
  327. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/internals-picture.txt +0 -0
  328. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/joke-issue-10000/README.md +0 -0
  329. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/joke-issue-10000/we_are_borg.svg +0 -0
  330. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/logging.conf +0 -0
  331. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/prune-example-interval.txt +0 -0
  332. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/misc/prune-example.txt +0 -0
  333. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/support.rst +0 -0
  334. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/analyze.rst +0 -0
  335. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/benchmark.rst +0 -0
  336. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/break-lock.rst.inc +0 -0
  337. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/check.rst +0 -0
  338. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/common-options.rst.inc +0 -0
  339. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/compact.rst.inc +0 -0
  340. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/completion.rst +0 -0
  341. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/completion.rst.inc +0 -0
  342. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/create.rst +0 -0
  343. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/debug.rst +0 -0
  344. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/delete.rst +0 -0
  345. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/export-tar.rst.inc +0 -0
  346. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/extract.rst +0 -0
  347. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/extract.rst.inc +0 -0
  348. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/general/archive-specification.rst.inc +0 -0
  349. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/general/date-time.rst.inc +0 -0
  350. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/general/file-metadata.rst.inc +0 -0
  351. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/general/logging.rst.inc +0 -0
  352. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/general/repository-locations.rst.inc +0 -0
  353. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/general/return-codes.rst.inc +0 -0
  354. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/help.rst +0 -0
  355. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/info.rst.inc +0 -0
  356. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/key_add.rst.inc +0 -0
  357. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/key_change-location.rst.inc +0 -0
  358. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/key_change-passphrase.rst.inc +0 -0
  359. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/key_export.rst.inc +0 -0
  360. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/key_list.rst.inc +0 -0
  361. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/key_remove.rst.inc +0 -0
  362. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/lock.rst +0 -0
  363. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/prune.rst +0 -0
  364. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/rename.rst.inc +0 -0
  365. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/repo-compress.rst +0 -0
  366. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/repo-compress.rst.inc +0 -0
  367. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/repo-info.rst.inc +0 -0
  368. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/repo-space.rst +0 -0
  369. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/repo-space.rst.inc +0 -0
  370. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/tag.rst +0 -0
  371. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/tag.rst.inc +0 -0
  372. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/umount.rst.inc +0 -0
  373. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/undelete.rst +0 -0
  374. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/usage_general.rst.inc +0 -0
  375. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/version.rst +0 -0
  376. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/webdav.rst +0 -0
  377. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/webdav.rst.inc +0 -0
  378. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/docs/usage/with-lock.rst.inc +0 -0
  379. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/requirements.d/codestyle.txt +0 -0
  380. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/requirements.d/development.txt +0 -0
  381. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/requirements.d/docs.txt +0 -0
  382. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/requirements.d/pyinstaller.txt +0 -0
  383. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/Dockerfile.linux-run +0 -0
  384. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/blake3-optimize-mt-threshold.py +0 -0
  385. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/borg.exe.spec +0 -0
  386. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/build-borg-using-pyinstaller.sh +0 -0
  387. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/chunker_bench.py +0 -0
  388. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/errorlist.py +0 -0
  389. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/fame.py +0 -0
  390. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/fetch-binaries +0 -0
  391. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/glibc_check.py +0 -0
  392. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/linux-run +0 -0
  393. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/lvm-thin-map.py +0 -0
  394. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/make-testdata/test_transfer_upgrade.sh +0 -0
  395. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/sdist-sign +0 -0
  396. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/sign-binaries +0 -0
  397. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/scripts/upload-pypi +0 -0
  398. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/setup.cfg +0 -0
  399. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/__init__.py +0 -0
  400. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/__main__.py +0 -0
  401. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/extract_cmd.py +0 -0
  402. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/lock_cmds.py +0 -0
  403. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/rename_cmd.py +0 -0
  404. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/repo_compress_cmd.py +0 -0
  405. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/repo_info_cmd.py +0 -0
  406. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/repo_space_cmd.py +0 -0
  407. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/archiver/webdav_cmd.py +0 -0
  408. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/base.c +0 -0
  409. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/base.pxd +0 -0
  410. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/base.pyx +0 -0
  411. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/buzhash.c +0 -0
  412. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/buzhash.pyi +0 -0
  413. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/buzhash.pyx +0 -0
  414. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/buzhash64.c +0 -0
  415. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/buzhash64.pyi +0 -0
  416. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/buzhash64.pyx +0 -0
  417. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/buzhash64_impl.h +0 -0
  418. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/failing.py +0 -0
  419. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/fastcdc.c +0 -0
  420. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/fastcdc.pyi +0 -0
  421. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/fastcdc.pyx +0 -0
  422. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/fixed.py +0 -0
  423. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/goldilocks_aes.c +0 -0
  424. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/goldilocks_aes.pyi +0 -0
  425. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/goldilocks_aes.pyx +0 -0
  426. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/goldilocks_aes_impl.h +0 -0
  427. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/kernel_env.py +0 -0
  428. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/phte_chunker.pxd +0 -0
  429. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/phte_kernel.h +0 -0
  430. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/rabin_aes.c +0 -0
  431. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/rabin_aes.pyi +0 -0
  432. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/rabin_aes.pyx +0 -0
  433. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/rabin_aes_impl.c +0 -0
  434. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/rabin_aes_impl.h +0 -0
  435. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/reader.c +0 -0
  436. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/reader.pyi +0 -0
  437. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/reader.pyx +0 -0
  438. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/toeplitz_aes.c +0 -0
  439. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/toeplitz_aes.pyi +0 -0
  440. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/toeplitz_aes.pyx +0 -0
  441. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/toeplitz_aes_impl.c +0 -0
  442. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/chunkers/toeplitz_aes_impl.h +0 -0
  443. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/cockpit/__init__.py +0 -0
  444. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/cockpit/app.py +0 -0
  445. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/cockpit/cockpit.tcss +0 -0
  446. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/cockpit/runner.py +0 -0
  447. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/cockpit/theme.py +0 -0
  448. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/cockpit/translator.py +0 -0
  449. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/cockpit/widgets.py +0 -0
  450. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/compress.pyi +0 -0
  451. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/compress.pyx +0 -0
  452. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/constants.py +0 -0
  453. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/crypto/__init__.py +0 -0
  454. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/crypto/file_integrity.py +0 -0
  455. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/crypto/keymanager.py +0 -0
  456. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/digests.py +0 -0
  457. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/fuse.py +0 -0
  458. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/fuse_impl.py +0 -0
  459. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/hashindex.c +0 -0
  460. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/hashindex.pyi +0 -0
  461. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/hashindex.pyx +0 -0
  462. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/datastruct.py +0 -0
  463. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/errors.py +0 -0
  464. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/lrucache.py +0 -0
  465. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/nanorst.py +0 -0
  466. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/process.py +0 -0
  467. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/progress.py +0 -0
  468. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/shellpattern.py +0 -0
  469. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/helpers/sorting.py +0 -0
  470. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/hlfuse.py +0 -0
  471. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/item.pyi +0 -0
  472. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/legacy/__init__.py +0 -0
  473. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/legacy/archives.py +0 -0
  474. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/legacy/crypto/__init__.py +0 -0
  475. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/legacy/crypto/low_level.c +0 -0
  476. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/legacy/crypto/low_level.pyi +0 -0
  477. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/legacy/crypto/low_level.pyx +0 -0
  478. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/legacy/fs.py +0 -0
  479. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/legacy/hashindex.py +0 -0
  480. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/legacy/helpers.py +0 -0
  481. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/legacy/repoobj.py +0 -0
  482. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/legacy/repository.py +0 -0
  483. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/legacy/upgrade.py +0 -0
  484. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/paperkey.html +0 -0
  485. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/patterns.py +0 -0
  486. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/__init__.py +0 -0
  487. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/base.py +0 -0
  488. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/darwin.c +0 -0
  489. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/darwin.pyx +0 -0
  490. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/freebsd.c +0 -0
  491. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/freebsd.pyx +0 -0
  492. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/linux.c +0 -0
  493. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/linux.pyx +0 -0
  494. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/netbsd.pyx +0 -0
  495. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/posix.c +0 -0
  496. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/posix.pyx +0 -0
  497. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/posix_ug.py +0 -0
  498. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/solaris.py +0 -0
  499. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/syncfilerange.c +0 -0
  500. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/syncfilerange.pyx +0 -0
  501. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/windows.c +0 -0
  502. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/windows.pyx +0 -0
  503. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/windows_ug.py +0 -0
  504. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platform/xattr.py +0 -0
  505. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/platformflags.py +0 -0
  506. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/repoobj.py +0 -0
  507. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/selftest.py +0 -0
  508. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/__init__.py +0 -0
  509. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archive_test.py +0 -0
  510. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/__init__.py +0 -0
  511. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/argparsing_test.py +0 -0
  512. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/check_cmd_remote_test.py +0 -0
  513. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/checks_test.py +0 -0
  514. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/compact_cmd_test.py +0 -0
  515. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/corruption_test.py +0 -0
  516. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/debug_cmds_test.py +0 -0
  517. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/disk_full_test.py +0 -0
  518. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/dotdot_path.tar +0 -0
  519. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/extract_cmd_test.py +0 -0
  520. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/find_cmd_test.py +0 -0
  521. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/help_cmd_test.py +0 -0
  522. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/key_cmds_test.py +0 -0
  523. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/list_cmd_test.py +0 -0
  524. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/lock_cmds_test.py +0 -0
  525. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/patterns_test.py +0 -0
  526. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/remote_repo_test.py +0 -0
  527. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/rename_cmd_test.py +0 -0
  528. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/repo12.tar.gz +0 -0
  529. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/repo_compress_cmd_test.py +0 -0
  530. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/repo_create_cmd_test.py +0 -0
  531. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/repo_info_cmd_test.py +0 -0
  532. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/repo_space_cmd_test.py +0 -0
  533. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/restricted_permissions_test.py +0 -0
  534. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/return_codes_test.py +0 -0
  535. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/tag_cmd_test.py +0 -0
  536. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archiver/unusual_paths.tar +0 -0
  537. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/archives_test.py +0 -0
  538. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/benchmark_test.py +0 -0
  539. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/chunkers/__init__.py +0 -0
  540. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/chunkers/buzhash64_self_test.py +0 -0
  541. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/chunkers/buzhash64_test.py +0 -0
  542. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/chunkers/buzhash_self_test.py +0 -0
  543. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/chunkers/buzhash_test.py +0 -0
  544. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/chunkers/failing_test.py +0 -0
  545. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/chunkers/fixed_self_test.py +0 -0
  546. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/chunkers/fixed_test.py +0 -0
  547. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/chunkers/goldilocks_aes_test.py +0 -0
  548. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/chunkers/interaction_test.py +0 -0
  549. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/chunkers/pytest_helpers.py +0 -0
  550. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/chunkers/rabin_aes_test.py +0 -0
  551. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/chunkers/reader_test.py +0 -0
  552. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/chunkers/toeplitz_aes_test.py +0 -0
  553. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/cockpit_test.py +0 -0
  554. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/compress_test.py +0 -0
  555. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/crypto/__init__.py +0 -0
  556. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/crypto/csprng_test.py +0 -0
  557. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/crypto/file_integrity_test.py +0 -0
  558. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/crypto/legacy_key_test.py +0 -0
  559. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/crypto/low_level_test.py +0 -0
  560. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/digests_test.py +0 -0
  561. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/fslocking_test.py +0 -0
  562. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/fuse_test.py +0 -0
  563. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/hashindex_test.py +0 -0
  564. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/__init__.py +0 -0
  565. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/__init__test.py +0 -0
  566. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/datastruct_test.py +0 -0
  567. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/efficient_collection_queue_test.py +0 -0
  568. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/lrucache_test.py +0 -0
  569. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/misc_test.py +0 -0
  570. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/msgpack_test.py +0 -0
  571. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/nanorst_test.py +0 -0
  572. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/process_test.py +0 -0
  573. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/shellpattern_test.py +0 -0
  574. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/helpers/sorting_test.py +0 -0
  575. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/legacy_archives_test.py +0 -0
  576. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/legacy_fs_test.py +0 -0
  577. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/legacy_helpers_test.py +0 -0
  578. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/legacy_upgrade_test.py +0 -0
  579. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/legacyrepository_test.py +0 -0
  580. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/patterns_test.py +0 -0
  581. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/platform/__init__.py +0 -0
  582. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/platform/all_test.py +0 -0
  583. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/platform/darwin_test.py +0 -0
  584. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/platform/freebsd_test.py +0 -0
  585. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/platform/linux_test.py +0 -0
  586. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/platform/platform_test.py +0 -0
  587. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/platform/windows_test.py +0 -0
  588. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/repoobj_test.py +0 -0
  589. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/repository_test.py +0 -0
  590. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/version_test.py +0 -0
  591. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/vfs_test.py +0 -0
  592. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/testsuite/xattr_test.py +0 -0
  593. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/upgrade.py +0 -0
  594. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/version.py +0 -0
  595. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/vfs.py +0 -0
  596. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/webdav.py +0 -0
  597. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borg/xattr.py +0 -0
  598. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borgbackup.egg-info/dependency_links.txt +0 -0
  599. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borgbackup.egg-info/entry_points.txt +0 -0
  600. {borgbackup-2.0.0b23 → borgbackup-2.0.0b24}/src/borgbackup.egg-info/top_level.txt +0 -0
@@ -38,8 +38,7 @@ pip install -e . # builds Cython/C extensions in place
38
38
  Requires Python >=3.11, Cython >=3.0.3, pkgconfig, and dev headers for OpenSSL, lz4, zstd, xxhash.
39
39
  The `borgstore` package (repository backend) is pulled in as a normal dependency.
40
40
 
41
- Env vars to point the build at non-standard lib locations: `BORG_OPENSSL_PREFIX`, `BORG_LIBLZ4_PREFIX`,
42
- `BORG_LIBZSTD_PREFIX`, `BORG_LIBXXHASH_PREFIX`.
41
+ Env vars to point the build at non-standard lib locations: `BORG_OPENSSL_PREFIX`, `BORG_LIBLZ4_PREFIX`.
43
42
 
44
43
  After editing any `.pyx`/`.c` file, rebuild the extensions:
45
44
 
@@ -93,8 +92,9 @@ fakeroot -u tox -e py311 # one Python version only
93
92
  fakeroot -u tox -e py311 -- -k 'locking' # select tests by keyword (posargs after --)
94
93
  ```
95
94
 
96
- Test env vars: `BORG_TESTS_IGNORE_MODES` (disable mode/permission tests), `BORG_FUSE_IMPL=llfuse|pyfuse3`
97
- (select FUSE implementation for mount tests).
95
+ Test env vars:
96
+ - `BORG_TESTS_IGNORE_MODES` (disable mode/permission tests)
97
+ - `BORG_FUSE_IMPL=mfusepy|llfuse|pyfuse3` (select FUSE implementation for mount tests).
98
98
 
99
99
  Tests live in `src/borg/testsuite/`, see `python_files` in `pyproject.toml`.
100
100
 
@@ -187,3 +187,4 @@ Use the correct log level (debug only for debugging; info/warning/error/critical
187
187
  When directly prompting the user (e.g. Y/N confirmations), write straight to stderr, not through the
188
188
  logger and not to stdout (stdout may be piped). Info-level volume is controlled via flags like
189
189
  `--stats`/`--list` feeding topic loggers — see `_setup_implied_logging()` in `archiver/__init__.py`.
190
+
@@ -138,8 +138,9 @@ Compatibility notes:
138
138
  runtime: ``~/Library/Caches/TemporaryItems/borg/``.
139
139
  - on Windows, the default directories are:
140
140
  config: ``C:\Users\<user>\AppData\Roaming\borg``,
141
+ data: ``C:\Users\<user>\AppData\Local\borg``,
141
142
  cache: ``C:\Users\<user>\AppData\Local\borg\Cache``,
142
- data: ``C:\Users\<user>\AppData\Local\borg``.
143
+ runtime: ``C:\Users\<user>\AppData\Local\Temp\borg``.
143
144
  - **keyfile users on macOS (and Windows)**: borg 2 will look for key files in the
144
145
  new platform-specific config directory instead of ``~/.config/borg/keys/`` where
145
146
  borg 1.x stored them. You can set ``BORG_KEYS_DIR`` to point to the old location,
@@ -162,6 +163,137 @@ Compatibility notes:
162
163
  Change Log 2.x
163
164
  ==============
164
165
 
166
+ Version 2.0.0b24 (2026-09-02)
167
+ -----------------------------
168
+
169
+ New features:
170
+
171
+ - copy: copy an archive to a new archive name (fast & cheap!), #2300
172
+ - benchmark cpu: add --data PATH option (testing with a given corpus), #10265
173
+ - prune/repo-list/analyze: add --group-by to better support multi-client
174
+ archive series (potentially using the same name)
175
+
176
+ Fixes:
177
+
178
+ - files cache:
179
+
180
+ - rebuild the files cache from an archive of the same group
181
+ - fix rebuild from an archive without ctime
182
+ - recreate: also do the work if --timestamp is the only change requested
183
+ - repo-delete: --force is a simple boolean flag now
184
+ - repo-list: fix --format help, it did not show the actual default, #10204
185
+ - do not ignore -a / --match-archives when an archive NAME is given
186
+ - benchmark cpu: catch exceptions per test, do not abort the whole run
187
+ - write index fragment(s) before the archive pointer, #10239
188
+ - transfer --from-borg1: do not mistake a borg 1.x repokey repo for a repo whose
189
+ encryption method changed
190
+ - transfer: clean error instead of a crash when no other repo is given
191
+ - serve: print startup errors to stderr, #10266
192
+ - prune: remove the date-based archive filters, #10250.
193
+ --oldest/--newest/--older/--newer were accepted by the prune parser
194
+ but never applied.
195
+ - delete/undelete: fix dead "all archives" safety guard
196
+ - delete/undelete: also accept date-based filters as archive selection
197
+ - diff: fix --numeric-ids having no effect
198
+ - version: add the --from-borg1 option, it was documented but never implemented
199
+ - don't mistake a malformed URL for a local path, #10215
200
+ - BORG_WORKAROUNDS=authenticated_no_key: also work when the borg key is completely
201
+ lost, #10238
202
+ - log-json: emit question_* JSON objects for prompts again
203
+ - borgfs: fix breakage caused by the jsonargparse migration
204
+ - borgfs: adopt the "mount:" config file section
205
+ - let Ctrl-C / SIGINT abort interactive prompts (y/n and passphrase), #8521
206
+ - chunkers:
207
+
208
+ - goldilocks-aes: fix build on 32-bit archs (no __uint128_t there)
209
+ - *-aes chunkers: use the aes-arm64 instructions on Linux and FreeBSD.
210
+ - completions:
211
+
212
+ - fish: fix the completion and error message issues, #3086
213
+ - use invoked command name, #3086
214
+ - complete repo and encryption, #3086
215
+ - remove the RST markup from the descriptions, #3086
216
+ - argparsing: name the option, not its config key, for a missing required argument, #3086
217
+ - misc. fixes for Haiku
218
+ - windows:
219
+
220
+ - do not build the binaries from a "dirty" checkout, #10199
221
+ - normalize remote repo paths as POSIX paths, #10199
222
+ - fix platformdirs directories, #10237
223
+
224
+ Other changes:
225
+
226
+ - require OpenSSL >= 3.2
227
+ - use argon2 from OpenSSL, drop argon2-cffi, #7963
228
+ - require shtab >= 1.11.0
229
+ - support msgpack 1.2.2
230
+ - setuptools-scm: drop tag.strict, #10193
231
+ - diff: show timestamp changes with full nanosecond precision, #9147
232
+ - benchmark cpu: also benchmark zstd,-4
233
+ - chunkers:
234
+
235
+ - speed up the *-aes chunkers on x86-64
236
+ - speed up the buzhash64 kernel on arm64 / Apple Silicon, use the blockwise
237
+ kernel on aarch64 by default (now faster than NEON)
238
+ - speed up the fastcdc blockwise kernel (default kernel on platforms other
239
+ than x86-64 and aarch64)
240
+ - add kernel benchmark script
241
+ - archive: resolve the item metadata stream chunk ids lazily, big win for repo-list
242
+ on remote repos, #10204
243
+ - lock exceptions: tell who holds the lock, #2261
244
+ - id_check_is_authentication: fix stale class-attribute comment
245
+ - dependabot: give pip patch releases a cooldown
246
+ - CI:
247
+
248
+ - improve GitHub Actions security, address the zizmor audit findings
249
+ - use ubuntu-26.04 runners
250
+ - add a 32-bit armv7 runner
251
+ - re-add Haiku (now r1beta6)
252
+ - release: attach the sigstore bundle of the provenance attestation to every
253
+ release asset, so they can be verified offline, #10187
254
+ - tests:
255
+
256
+ - import-tar hard link round trip, BORG vs PAX tar format
257
+ - skip tz tests where time.tzset() is missing, not just on Windows
258
+ - do not inherit the session's SSH_ORIGINAL_COMMAND
259
+ - do not let the terminal's COLORTERM leak into the spinner tests
260
+ - docs:
261
+
262
+ - README: update to reflect current borg2 master
263
+ - fix Windows directory paths to match actual behavior, #10237
264
+ - macOS binaries are built without FUSE support
265
+ - simplify the standalone binary section in installation.rst
266
+ - update binaries 00_README.txt: Linux binaries are now built on
267
+ Ubuntu 26.04 with glibc 2.43
268
+ - document that borg transfer is incremental, #9878
269
+ - archiver: fix wrong/stale epilog help texts, raw-RST rendering
270
+ - fix stale examples in the borg diff epilog
271
+ - help topics: fix wrong claims, document missing env vars and placeholders
272
+ - remove stale borg1 checkpoint reference from borg create help
273
+ - fix borg1-era content in quickstart, general includes and FAQ
274
+ - fix packs.rst and security.rst to match the implementation
275
+ - update frontends.rst and data-structures.rst, fix wrong claims in them
276
+ - update deployment docs to borg2 commands and REST protocol
277
+ - fix borgfs man page generation, drop the stale borgfs RST/HTML page
278
+ - fix broken examples and stale output samples in the usage docs
279
+ - fix outdated dependencies, paths and links in installation.rst
280
+ - fix outdated --encryption mode names in examples and help
281
+ - fix stale "borg repo-list" output in the rename example
282
+ - fix the quickstart example list sample and the delete caution
283
+ - update repo-list output samples to the current default format
284
+ - fix shell syntax in the pyenv virtualenv example
285
+ - complete and correct the repository URL reference
286
+ - explain how sshd forced commands interact with borg serve --rest
287
+ - use archive series names in the automated-local example
288
+ - fix tox examples and remove Vagrant references in development.rst
289
+ - update the FAQ keyfile-collision entry to borg2 naming
290
+ - fix OpenSSL, rclone and IV details in internals/security.rst
291
+ - update the mount -o versions example to the current naming
292
+ - fix the man page install command in installation.rst
293
+ - fix BORG_ASSERT_ID claims about authenticated-* and none-* modes
294
+ - point borg delete -a pattern help at the match-archives topic
295
+
296
+
165
297
  Version 2.0.0b23 (2026-08-23)
166
298
  -----------------------------
167
299
 
@@ -1,11 +1,11 @@
1
1
  # Contributors
2
2
 
3
- 374 people have contributed to Borg, with 10,873 commits in total.
3
+ 374 people have contributed to Borg, with 11,143 commits in total.
4
4
  Thanks to everyone who helped!
5
5
 
6
6
  ![Contributors by commit count](FAME.svg)
7
7
 
8
- Generated on 2026-08-17 by `scripts/fame.py`, which computes the statistics with
8
+ Generated on 2026-08-31 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,33 +21,33 @@ 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,261 | 88,646 | 510 |
25
- | Marian Beermann | 1,140 | 8,149 | 156 |
24
+ | Thomas Waldmann | 7,525 | 97,654 | 522 |
25
+ | Marian Beermann | 1,140 | 7,759 | 156 |
26
26
  | Jonas Borgström | 560 | 970 | 38 |
27
- | Antoine Beaupré | 285 | 441 | 33 |
28
- | Mrityunjay Raj | 237 | 9,094 | 103 |
29
- | Andrey Bienkowski | 72 | 210 | 16 |
30
- | Ted Lawson | 71 | 4,596 | 39 |
31
- | Thalian | 63 | 578 | 31 |
27
+ | Antoine Beaupré | 285 | 437 | 33 |
28
+ | Mrityunjay Raj | 237 | 9,007 | 103 |
29
+ | Andrey Bienkowski | 72 | 200 | 16 |
30
+ | Ted Lawson | 71 | 4,578 | 39 |
31
+ | Thalian | 63 | 564 | 29 |
32
32
  | Martin Hostettler | 46 | 2,559 | 9 |
33
- | Milkey Mouse | 42 | 243 | 13 |
34
- | dependabot[bot] | 41 | 12 | 3 |
33
+ | dependabot[bot] | 45 | 14 | 4 |
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 | 94 | 6 |
39
- | Nehalenniæ Oudin | 26 | 48 | 11 |
40
- | anarcat | 24 | 34 | 4 |
41
- | Hugo Wallenburg | 23 | 1,181 | 11 |
38
+ | Manuel Riel | 28 | 86 | 6 |
39
+ | Nehalenniæ Oudin | 26 | 47 | 11 |
40
+ | anarcat | 24 | 33 | 4 |
41
+ | Hugo Wallenburg | 23 | 1,154 | 11 |
42
42
  | Michael Hanselmann | 22 | 71 | 3 |
43
- | Björn Ketelaars | 17 | 33 | 6 |
43
+ | Björn Ketelaars | 17 | 28 | 4 |
44
44
  | SanskritFritz | 17 | 0 | 0 |
45
- | Lee Bousfield | 14 | 160 | 9 |
45
+ | Lee Bousfield | 14 | 157 | 9 |
46
46
  | Alan Jenkins | 14 | 35 | 2 |
47
- | Daniel Rudolf | 13 | 221 | 14 |
48
- | Robin Schneider | 13 | 19 | 8 |
47
+ | Daniel Rudolf | 13 | 215 | 14 |
48
+ | Robin Schneider | 13 | 18 | 8 |
49
49
  | Elmar Hoffmann | 12 | 90 | 6 |
50
- | Jürg Rast | 12 | 73 | 11 |
50
+ | Jürg Rast | 12 | 72 | 11 |
51
51
  | Ronny Pfannschmidt | 12 | 20 | 4 |
52
52
  | mh4ckt3mh4ckt1c4s | 11 | 0 | 0 |
53
53
  | finefoot | 10 | 18 | 3 |
@@ -55,37 +55,38 @@ show up there, so the number understates early contributions. Generated files
55
55
  | Lauri Niskanen | 10 | 5 | 2 |
56
56
  | James Buren | 10 | 2 | 2 |
57
57
  | Emmo Emminghaus | 9 | 60 | 9 |
58
- | Ed Blackman | 9 | 13 | 3 |
59
- | rugk | 9 | 13 | 5 |
58
+ | Ed Blackman | 9 | 12 | 3 |
59
+ | rugk | 9 | 9 | 4 |
60
60
  | Carlo Teubner | 9 | 3 | 3 |
61
61
  | Per Guth | 9 | 1 | 1 |
62
62
  | Jakob Schnitzer | 8 | 35 | 1 |
63
63
  | Josh Soref | 8 | 3 | 3 |
64
- | Gianfranco Costamagna | 7 | 10 | 6 |
64
+ | Gianfranco Costamagna | 7 | 9 | 6 |
65
65
  | Frank Sachsenheim | 7 | 2 | 1 |
66
66
  | Hartmut Goebel | 7 | 0 | 0 |
67
- | William D. Jones | 6 | 250 | 6 |
68
- | Michael Deyaso | 6 | 168 | 14 |
69
- | Peter Gerber | 6 | 103 | 9 |
67
+ | William D. Jones | 6 | 248 | 6 |
68
+ | Michael Deyaso | 6 | 165 | 14 |
69
+ | Peter Gerber | 6 | 102 | 9 |
70
70
  | Alf Mikula | 6 | 19 | 1 |
71
71
  | Felix Schwarz | 6 | 4 | 2 |
72
72
  | Alexander-N | 6 | 0 | 0 |
73
- | Paul D | 5 | 185 | 46 |
73
+ | Paul D | 5 | 178 | 42 |
74
+ | ThomasWaldmann | 5 | 162 | 1 |
74
75
  | Simon Frei | 5 | 132 | 3 |
75
- | Dominik Stadler | 5 | 77 | 1 |
76
- | elandorr | 5 | 40 | 3 |
77
- | remyabel | 5 | 25 | 3 |
78
- | Alexander 'Leo' Bergolth | 5 | 24 | 3 |
76
+ | Dominik Stadler | 5 | 75 | 1 |
77
+ | elandorr | 5 | 39 | 3 |
78
+ | remyabel | 5 | 19 | 2 |
79
+ | Alexander 'Leo' Bergolth | 5 | 18 | 3 |
79
80
  | infectormp | 5 | 18 | 2 |
80
81
  | Mark Edgington | 5 | 10 | 3 |
81
82
  | step21 | 5 | 1 | 1 |
82
83
  | Radu Ciorba | 5 | 0 | 0 |
83
- | Charlie Herz | 4 | 628 | 5 |
84
- | Robert Blenis | 4 | 90 | 4 |
84
+ | Charlie Herz | 4 | 626 | 5 |
85
85
  | Ebuzer Celil Durmaz | 4 | 80 | 5 |
86
+ | Robert Blenis | 4 | 51 | 4 |
86
87
  | Franco Ayala | 4 | 39 | 6 |
87
- | Suryansh Pal | 4 | 36 | 9 |
88
- | 8bit | 4 | 30 | 5 |
88
+ | Suryansh Pal | 4 | 35 | 8 |
89
+ | 8bit | 4 | 29 | 5 |
89
90
  | Steve Groesz | 4 | 22 | 1 |
90
91
  | Ryan Polley | 4 | 12 | 4 |
91
92
  | Artem Sheremet | 4 | 10 | 1 |
@@ -95,22 +96,21 @@ show up there, so the number understates early contributions. Generated files
95
96
  | Alexander Pyhalov | 4 | 0 | 0 |
96
97
  | oxiedi | 4 | 0 | 0 |
97
98
  | Parman Mohammadalizadeh | 3 | 343 | 5 |
98
- | ThomasWaldmann | 3 | 153 | 1 |
99
99
  | Stephan Herbers | 3 | 49 | 2 |
100
100
  | Charmi Kadi | 3 | 46 | 2 |
101
- | Martin Richtarsky | 3 | 34 | 4 |
102
- | ntova | 3 | 27 | 8 |
103
- | Daniel Reichelt | 3 | 25 | 5 |
104
- | Lukas Fleischer | 3 | 23 | 2 |
101
+ | Martin Richtarsky | 3 | 31 | 4 |
102
+ | ntova | 3 | 26 | 8 |
103
+ | Daniel Reichelt | 3 | 23 | 5 |
105
104
  | Michael Gajda | 3 | 23 | 2 |
105
+ | Lukas Fleischer | 3 | 22 | 2 |
106
106
  | eoli3n | 3 | 22 | 1 |
107
107
  | Will | 3 | 21 | 4 |
108
108
  | Andrea Gelmini | 3 | 17 | 12 |
109
109
  | Oleg Drokin | 3 | 16 | 1 |
110
- | kmq | 3 | 15 | 1 |
110
+ | kmq | 3 | 14 | 1 |
111
111
  | jungle-boogie | 3 | 13 | 1 |
112
112
  | Helmut Grohne | 3 | 11 | 1 |
113
- | Stephen | 3 | 10 | 2 |
113
+ | Stephen | 3 | 9 | 2 |
114
114
  | Dmitry Astapov | 3 | 8 | 1 |
115
115
  | Gregor Kleen | 3 | 8 | 3 |
116
116
  | valtron | 3 | 7 | 1 |
@@ -125,12 +125,12 @@ show up there, so the number understates early contributions. Generated files
125
125
  | William Bonnaventure | 3 | 0 | 0 |
126
126
  | Zhuoyun Wei | 3 | 0 | 0 |
127
127
  | jhemmje | 3 | 0 | 0 |
128
- | Thomas Portmann | 2 | 185 | 5 |
128
+ | Thomas Portmann | 2 | 177 | 4 |
129
129
  | Ken Kundert | 2 | 149 | 4 |
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 | 80 | 3 |
133
+ | Soumik Dutta | 2 | 78 | 3 |
134
134
  | Divyansh Agrawal | 2 | 43 | 4 |
135
135
  | Eric Wolf | 2 | 38 | 3 |
136
136
  | Ioannis Cherouvim | 2 | 30 | 2 |
@@ -138,19 +138,18 @@ show up there, so the number understates early contributions. Generated files
138
138
  | Atharva Varpe | 2 | 23 | 1 |
139
139
  | Lapinot | 2 | 23 | 4 |
140
140
  | ReethuVinta | 2 | 20 | 2 |
141
- | Matthew Glazar | 2 | 18 | 3 |
142
141
  | Joachim Breitner | 2 | 15 | 1 |
142
+ | Matthew Glazar | 2 | 15 | 3 |
143
143
  | Max-Julian Pogner | 2 | 15 | 1 |
144
- | Łukasz Stelmach | 2 | 14 | 2 |
145
144
  | Jerry Jacobs | 2 | 12 | 3 |
146
145
  | Jonas Schäfer | 2 | 12 | 1 |
147
146
  | kmille | 2 | 11 | 2 |
147
+ | Łukasz Stelmach | 2 | 11 | 1 |
148
148
  | jetchirag | 2 | 9 | 3 |
149
149
  | Kurt Yoder | 2 | 8 | 1 |
150
150
  | nain | 2 | 6 | 1 |
151
151
  | Vaskebjoern | 2 | 5 | 1 |
152
152
  | wormingdead | 2 | 5 | 1 |
153
- | Fabian Fröhlich | 2 | 4 | 1 |
154
153
  | Samuel | 2 | 4 | 3 |
155
154
  | a1346054 | 2 | 4 | 3 |
156
155
  | snsmac | 2 | 4 | 2 |
@@ -158,16 +157,17 @@ show up there, so the number understates early contributions. Generated files
158
157
  | Markus Engelbrecht | 2 | 3 | 1 |
159
158
  | bbx0 | 2 | 3 | 1 |
160
159
  | jan | 2 | 3 | 1 |
161
- | AJ Jordan | 2 | 2 | 1 |
160
+ | Fabian Fröhlich | 2 | 2 | 1 |
162
161
  | MultisampledNight | 2 | 2 | 1 |
163
162
  | Samuel BF | 2 | 2 | 1 |
164
163
  | Saurav Sachidanand | 2 | 2 | 1 |
165
- | Sophie Herold | 2 | 2 | 2 |
166
164
  | azrdev | 2 | 2 | 1 |
165
+ | AJ Jordan | 2 | 1 | 1 |
167
166
  | Cam Hutchison | 2 | 1 | 1 |
168
167
  | Cthulhux | 2 | 1 | 1 |
169
168
  | Leo Famulari | 2 | 1 | 1 |
170
169
  | Russell Davis | 2 | 1 | 1 |
170
+ | Sophie Herold | 2 | 1 | 1 |
171
171
  | textshell | 2 | 1 | 1 |
172
172
  | Abogical | 2 | 0 | 0 |
173
173
  | Andrew Skalski | 2 | 0 | 0 |
@@ -191,60 +191,59 @@ 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 | 371 | 8 |
195
- | Benedikt Seidl | 1 | 116 | 1 |
194
+ | Tarrailt | 1 | 365 | 8 |
196
195
  | axapaxa | 1 | 105 | 2 |
197
- | Aleksey Korol | 1 | 95 | 1 |
196
+ | Benedikt Seidl | 1 | 103 | 1 |
197
+ | Aleksey Korol | 1 | 91 | 1 |
198
198
  | ebabcock93 | 1 | 84 | 1 |
199
- | Rohan salunke | 1 | 75 | 9 |
200
199
  | mrityunjay | 1 | 75 | 5 |
200
+ | Rohan salunke | 1 | 62 | 8 |
201
201
  | Xiaocheng Song | 1 | 60 | 4 |
202
- | Vedant Patel | 1 | 40 | 3 |
203
- | Mike Mason | 1 | 38 | 3 |
202
+ | Mike Mason | 1 | 37 | 3 |
204
203
  | borkd | 1 | 37 | 1 |
205
204
  | James Vasile | 1 | 36 | 1 |
206
205
  | Uriel | 1 | 30 | 1 |
207
- | vancheese | 1 | 28 | 8 |
206
+ | Vedant Patel | 1 | 30 | 3 |
208
207
  | Nic Donaldson | 1 | 26 | 1 |
208
+ | vancheese | 1 | 26 | 8 |
209
209
  | Mike | 1 | 23 | 1 |
210
210
  | Sitaram Chamarty | 1 | 23 | 1 |
211
211
  | Jonathan Zacsh | 1 | 21 | 1 |
212
- | Sam H | 1 | 18 | 2 |
213
212
  | Félix Sipma | 1 | 13 | 1 |
214
- | remyabel2 | 1 | 13 | 1 |
215
213
  | Antonio Larrosa | 1 | 12 | 1 |
214
+ | Sam H | 1 | 12 | 2 |
215
+ | remyabel2 | 1 | 12 | 1 |
216
216
  | Atemu | 1 | 11 | 2 |
217
217
  | Reiko Asakura | 1 | 11 | 2 |
218
- | James Rowell | 1 | 8 | 1 |
219
218
  | Graham Stockton | 1 | 7 | 1 |
220
- | Greg Grossmeier | 1 | 7 | 1 |
219
+ | James Rowell | 1 | 7 | 1 |
221
220
  | Nikolaus Rath | 1 | 7 | 1 |
222
221
  | Dark Dragon | 1 | 6 | 1 |
223
222
  | Jubjub | 1 | 6 | 1 |
224
- | Mher Kazandjian | 1 | 6 | 1 |
225
223
  | TawfeeqShaik | 1 | 6 | 1 |
226
224
  | edvatar | 1 | 6 | 2 |
227
225
  | Florent Hemmi | 1 | 5 | 1 |
228
226
  | Leo Antunes | 1 | 5 | 1 |
229
227
  | dataprolet | 1 | 5 | 1 |
230
- | Alexandr Kozlinskiy | 1 | 4 | 1 |
231
228
  | Eddie Carswell | 1 | 4 | 1 |
232
229
  | Phil Kulin | 1 | 4 | 1 |
233
230
  | abebeos | 1 | 4 | 1 |
234
231
  | goebbe | 1 | 4 | 1 |
232
+ | Alexandr Kozlinskiy | 1 | 3 | 1 |
235
233
  | Dominik Tugend | 1 | 3 | 1 |
234
+ | Greg Grossmeier | 1 | 3 | 1 |
236
235
  | Kevin Yin | 1 | 3 | 1 |
237
236
  | Mateusz Konieczny | 1 | 3 | 1 |
238
237
  | Tavlor | 1 | 3 | 1 |
239
238
  | Zhou Qiankang | 1 | 3 | 1 |
240
239
  | Daniel Dent | 1 | 2 | 1 |
241
240
  | Maltimore | 1 | 2 | 1 |
241
+ | Mher Kazandjian | 1 | 2 | 1 |
242
242
  | Michael Bauer | 1 | 2 | 1 |
243
243
  | Paweł Kotiuk | 1 | 2 | 1 |
244
244
  | Tom Denley | 1 | 2 | 2 |
245
245
  | jminer74 | 1 | 2 | 1 |
246
246
  | philippje | 1 | 2 | 1 |
247
- | tree-wall | 1 | 2 | 1 |
248
247
  | vhadzhiev | 1 | 2 | 1 |
249
248
  | Abhijeet | 1 | 1 | 1 |
250
249
  | Andreas Vögele | 1 | 1 | 1 |
@@ -269,8 +268,8 @@ show up there, so the number understates early contributions. Generated files
269
268
  | Stefan Majewsky | 1 | 1 | 1 |
270
269
  | Svein Ove Aas | 1 | 1 | 1 |
271
270
  | Vagrant Cascadian | 1 | 1 | 1 |
272
- | ahtaarra | 1 | 1 | 1 |
273
271
  | targhs | 1 | 1 | 1 |
272
+ | tree-wall | 1 | 1 | 1 |
274
273
  | Adam Kouse | 1 | 0 | 0 |
275
274
  | Aidan Woods | 1 | 0 | 0 |
276
275
  | Aiman | 1 | 0 | 0 |
@@ -368,6 +367,7 @@ show up there, so the number understates early contributions. Generated files
368
367
  | Wladimir Palant | 1 | 0 | 0 |
369
368
  | Yuri D'Elia | 1 | 0 | 0 |
370
369
  | adrian5 | 1 | 0 | 0 |
370
+ | ahtaarra | 1 | 0 | 0 |
371
371
  | alex3d | 1 | 0 | 0 |
372
372
  | alexskc | 1 | 0 | 0 |
373
373
  | ash | 1 | 0 | 0 |
@@ -19,12 +19,12 @@
19
19
  <text class="subtitle" x="14" y="44">top 20 of 373 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,261</text>
22
+ <text class="count" x="746" y="73">7,525</text>
23
23
  <text class="name" x="14" y="95">Marian Beermann</text>
24
- <rect class="bar" x="240" y="85" width="68" height="12" rx="2"/>
24
+ <rect class="bar" x="240" y="85" width="66" 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
- <rect class="bar" x="240" y="107" width="34" height="12" rx="2"/>
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
30
  <rect class="bar" x="240" y="129" width="17" height="12" rx="2"/>
@@ -45,7 +45,7 @@
45
45
  <rect class="bar" x="240" y="239" width="3" height="12" rx="2"/>
46
46
  <text class="count" x="746" y="249">46</text>
47
47
  <text class="name" x="14" y="271">Milkey Mouse</text>
48
- <rect class="bar" x="240" y="261" width="3" height="12" rx="2"/>
48
+ <rect class="bar" x="240" y="261" width="2" height="12" rx="2"/>
49
49
  <text class="count" x="746" y="271">42</text>
50
50
  <text class="name" x="14" y="293">Dan Christensen</text>
51
51
  <rect class="bar" x="240" y="283" width="2" height="12" rx="2"/>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: borgbackup
3
- Version: 2.0.0b23
3
+ Version: 2.0.0b24
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>
@@ -33,19 +33,18 @@ License-File: LICENSE
33
33
  License-File: AUTHORS
34
34
  Requires-Dist: borghash~=0.2.0
35
35
  Requires-Dist: borgstore[blake3,rest]~=0.6.1
36
- Requires-Dist: msgpack<=1.2.1,>=1.0.3
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"
39
39
  Requires-Dist: platformdirs<5.0.0,>=2.6.0; sys_platform != "darwin"
40
- Requires-Dist: argon2-cffi
41
- Requires-Dist: argon2-cffi-bindings==25.1.0
42
- Requires-Dist: shtab>=1.9.3
40
+ Requires-Dist: shtab>=1.11.0
43
41
  Requires-Dist: backports-zstd; python_version < "3.14"
44
42
  Requires-Dist: jsonargparse>=4.47.0
45
43
  Requires-Dist: PyYAML>=6.0.2
46
44
  Requires-Dist: blake3>=1.0; sys_platform != "win32"
47
45
  Requires-Dist: blake3!=1.0.9,>=1.0; sys_platform == "win32"
48
46
  Requires-Dist: tzdata; sys_platform == "win32"
47
+ Requires-Dist: tzdata; sys_platform == "haiku" or sys_platform == "haiku1"
49
48
  Provides-Extra: llfuse
50
49
  Requires-Dist: llfuse>=1.3.8; extra == "llfuse"
51
50
  Provides-Extra: pyfuse3
@@ -91,8 +90,8 @@ Main features
91
90
  and only chunks that have never been seen before are added to the repository.
92
91
 
93
92
  A chunk is considered duplicate if its id_hash value is identical.
94
- A cryptographically strong hash or MAC function is used as id_hash, e.g.
95
- (hmac-)sha256.
93
+ A cryptographically strong hash or MAC function is used as id_hash,
94
+ e.g. (hmac-)sha256 or (keyed) blake3.
96
95
 
97
96
  To deduplicate, all the chunks in the same repository are considered, no
98
97
  matter whether they come from different machines, from previous backups,
@@ -112,13 +111,16 @@ Main features
112
111
 
113
112
  Supported chunkers:
114
113
 
115
- * buzhash (as in borg 1.x) / buzhash64 (improved)
116
- * fastCDC
117
- * fixed
114
+ * fastcdc (the default)
115
+ * buzhash64 (improved), buzhash (as in borg 1.x)
116
+ * toeplitz-aes / rabin-aes / goldilocks-aes (keyed, AES-based; they make
117
+ chunk-boundary fingerprinting attacks much harder)
118
+ * fixed (fixed blocksize, optionally with a differently sized header)
118
119
 
119
120
  **Speed**
120
121
  * performance-critical code (chunking, compression, encryption) is
121
- implemented in C/Cython
122
+ implemented in C/Cython, using SIMD (NEON / AVX2 / AVX-512) where that
123
+ is a win - the scan kernel is picked per platform
122
124
  * local caching
123
125
  * quick detection of unmodified files
124
126
 
@@ -127,6 +129,10 @@ Main features
127
129
  (AES-OCB or chacha20-poly1305), ensuring data confidentiality, integrity and
128
130
  authenticity.
129
131
 
132
+ If you do not need confidentiality, there are also modes that only
133
+ authenticate (``authenticated-sha256`` / ``authenticated-blake3``) and
134
+ modes that do neither (``none-sha256`` / ``none-blake3``).
135
+
130
136
  **Hashing**
131
137
  You can choose between HMAC-SHA256 and Blake3.
132
138
 
@@ -146,12 +152,12 @@ Main features
146
152
  **Off-site backups**
147
153
  Borg can store data on any remote host accessible via misc. protocols:
148
154
 
149
- * ssh (REST-http-over-stdio-over-ssh) and https (REST-http-over-tcp).
150
- Significant performance gains can be achieved with this by having a
151
- remote agent (borg must be installed on the repo server).
152
- * sftp
153
- * S3 / B2
154
- * lots of protocols / providers supported by rclone
155
+ * ``rest://`` (REST-http-over-stdio-over-ssh) and ``http(s)://``
156
+ (REST-http-over-tcp). Significant performance gains can be achieved with
157
+ these by having a remote agent (borg must be installed on the repo server).
158
+ * ``sftp://``
159
+ * ``s3://`` / ``b2://``
160
+ * ``rclone:`` - lots of protocols / providers supported by rclone
155
161
 
156
162
  **Backups mountable as file systems**
157
163
  Backup archives are mountable as user-space file systems for easy interactive
@@ -161,12 +167,18 @@ Main features
161
167
  We offer single-file binaries that do not require installing anything -
162
168
  you can just run them on these platforms:
163
169
 
164
- * Linux
165
- * macOS
166
- * FreeBSD
167
- * OpenBSD and NetBSD (no xattrs/ACLs support or binaries yet)
168
- * Cygwin (experimental, no binaries yet)
169
- * Windows (MSYS2/MINGW borg.exe, experimental)
170
+ * Linux (x86_64, arm64)
171
+ * macOS (arm64, x86_64)
172
+ * FreeBSD (x86_64)
173
+ * Windows (x86_64, MSYS2/MINGW borg.exe, experimental)
174
+
175
+ Borg also runs on these platforms, but you need to install it from a
176
+ package or from source:
177
+
178
+ * NetBSD (xattrs, but no ACLs)
179
+ * OpenBSD (no xattrs/ACLs support)
180
+ * illumos / Solaris (xattrs, but no ACLs)
181
+ * Cygwin (experimental)
170
182
  * Windows Subsystem for Linux (WSL) on Windows 10/11 (experimental)
171
183
 
172
184
  **Free and Open Source Software**
@@ -192,15 +204,18 @@ Create a new backup archive::
192
204
  Now do another backup, just to show off the great deduplication::
193
205
 
194
206
  $ borg create -v --stats docs ~/Documents
207
+ Creating archive "docs" in repository /path/to/repo
195
208
  Repository: /path/to/repo
196
209
  Archive name: docs
197
210
  Archive fingerprint: 7714aef97c1a24539cc3dc73f79b060f14af04e2541da33d54c7ee8e81a00089
198
- Time (start): Mon, 2022-10-03 19:57:35 +0200
199
- Time (end): Mon, 2022-10-03 19:57:35 +0200
211
+ Time (nominal): Mon, 2026-08-03 19:57:35 +0200
212
+ Time (start): Mon, 2026-08-03 19:57:35 +0200
213
+ Time (end): Mon, 2026-08-03 19:57:35 +0200
200
214
  Duration: 0.01 seconds
201
215
  Number of files: 24
202
216
  Original size: 29.73 MB
203
217
  Deduplicated size: 520 B
218
+ ...
204
219
 
205
220
 
206
221
  For demo videos, check out our homepage: https://www.borgbackup.org/#demo