Commit graph

7865 commits

Author SHA1 Message Date
Thomas Waldmann
8efc67baee
tests: reset borg.output.progress logger between tests to fix flakiness
ProgressIndicatorBase installs a handler on the process-global
'borg.output.progress' logger and only removes it in __del__. In-process
(fork=False) command execution leaves this logger at level INFO /
propagate=False with lingering handlers, and that state leaks across tests.

When a later progress test runs, the "if not self.logger.handlers" guard
skips the stderr handler setup, so progress output goes to the logging
system instead of the stderr captured by capfd. Under xdist this surfaces
as order/distribution-dependent failures of the progress tests
(test_progress_percentage_*, test_extract_progress, test_progress_on,
test_check_usage, ...).

Add an autouse fixture that removes handlers and resets level/propagate on
the progress logger after each test. This also makes the intra-test
workaround in test_check_usage unnecessary (the progress logger level is
set per command run by _setup_implied_logging), so remove it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 21:18:28 +02:00
TW
bdfb50f0c6
Merge pull request #9761 from ThomasWaldmann/delete-quick-stats
Some checks failed
CI / lint (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Windows CI / msys2-ucrt64 (push) Has been cancelled
CI / asan_ubsan (push) Has been cancelled
CI / native_tests (push) Has been cancelled
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Has been cancelled
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Has been cancelled
CI / vm_tests (OpenBSD, false, openbsd, 7.7) (push) Has been cancelled
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Has been cancelled
delete: add --quick-stats option, fixes #9757
2026-06-11 14:45:03 +02:00
Thomas Waldmann
bf702605e7
delete: add --quick-stats option, fixes #9757
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 11:09:39 +02:00
TW
3768ff5bc8
Merge pull request #9760 from ThomasWaldmann/prune-quick-stats
prune: add --quick-stats option
2026-06-11 09:38:03 +02:00
TW
364438f58c
Merge pull request #9759 from ThomasWaldmann/msgpack-1.2.0
msgpack: support 1.2.0
2026-06-11 09:36:53 +02:00
Thomas Waldmann
4af701074c
prune: add --quick-stats option, fixes #9757
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 08:54:10 +02:00
Thomas Waldmann
2b93c83c17
msgpack: support 1.2.0, update requirements and version check
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 08:41:46 +02:00
TW
34ef23f354
Merge pull request #9755 from ThomasWaldmann/exclude-dataless-1.4
Some checks are pending
CI / lint (push) Waiting to run
CI / asan_ubsan (push) Blocked by required conditions
CI / native_tests (push) Blocked by required conditions
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Blocked by required conditions
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Blocked by required conditions
CI / vm_tests (OpenBSD, false, openbsd, 7.7) (push) Blocked by required conditions
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Blocked by required conditions
CodeQL / Analyze (push) Waiting to run
Windows CI / msys2-ucrt64 (push) Waiting to run
create: add --exclude-dataless to skip cloud files not materialized locally (1.4-maint)
2026-06-10 23:21:26 +02:00
Thomas Waldmann
64ee2aaa10
create: add --exclude-dataless to skip cloud files not materialized locally, fixes #9746
macOS flags files whose content is stored in cloud storage (e.g. iCloud
Drive) and not present locally with SF_DATALESS. Reading such a file
triggers downloading its content.

With --exclude-dataless, borg create checks the flags (cheap, after
stat, before open) and skips such files/dirs, so backups do not force
a download of all cloud-stored data.

stat.SF_DATALESS is only available from Python 3.13 on, so we fall
back to the value from macOS' sys/stat.h on older Pythons.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 22:15:05 +02:00
TW
ba799bdab7
Merge pull request #9738 from ThomasWaldmann/pdf-docs4-1.4
Some checks failed
CodeQL / Analyze (push) Has been cancelled
Windows CI / msys2-ucrt64 (push) Has been cancelled
docs: left-align the sidebar downloads line and add separators
2026-06-09 01:54:41 +02:00
Thomas Waldmann
e182c982cc
docs: left-align the downloads line with separators above and below
Style the sidebar downloads line to align with the boxes above and the
table of contents below (padding 22px), with a horizontal separator both
between the search box and the downloads line and between the downloads
line and the table of contents.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 01:53:13 +02:00
TW
1fb3a0ab4d
Merge pull request #9737 from ThomasWaldmann/pdf-docs3-1.4
docs: render downloads as a single inline line below the search box
2026-06-09 01:30:37 +02:00
Thomas Waldmann
42217765a4
docs: render downloads as a single inline line below the search box
Replace the multi-line "Download docs" block with a compact single line
"Downloads: PDF | HTML | ePub" placed right below the search box.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 01:29:49 +02:00
TW
6b60292bde
Merge pull request #9736 from ThomasWaldmann/pdf-docs2-1.4
docs: drop stale 'resources' from latex_appendices
2026-06-09 01:17:41 +02:00
Thomas Waldmann
c7939669d0
docs: drop stale 'resources' from latex_appendices
The resources doc page was removed long ago (#2088), but it was still
referenced in latex_appendices. This went unnoticed because PDF builds
were not enabled; enabling pdf surfaced it as a doctree KeyError.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 01:16:53 +02:00
TW
2527cd2947
Merge pull request #9735 from ThomasWaldmann/pdf-docs-1.4
docs: offer a PDF download and link offline formats in the sidebar
2026-06-09 01:10:45 +02:00
Thomas Waldmann
1bf806b2f2
docs: offer PDF download and link offline formats in sidebar, fixes #9731
Enable the pdf format on Read the Docs (the LaTeX build config already
existed in conf.py) and add a "Download docs" section to the sidebar that
links the offline formats (PDF, HTML zip, ...). The links are populated
from the Read the Docs addons data, reusing the same mechanism as the
version selector, so they are version-correct and hidden when unavailable.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 01:05:46 +02:00
TW
9f987ca8a2
Merge pull request #9699 from ThomasWaldmann/fix-9697
Some checks failed
CodeQL / Analyze (push) Has been cancelled
Windows CI / msys2-ucrt64 (push) Has been cancelled
docs: fix change 'borg key change-passphrase' docs, fixes #9697
2026-06-01 20:35:53 +02:00
Thomas Waldmann
3e1f4b388e
docs: fix change 'borg key change-passphrase' docs, fixes #9697
- update to 'borg key change-passphrase' in env help
- remove outdated borg-change-passphrase man page from 2017
- remove outdated change-passphrase.rst.inc
2026-06-01 20:25:00 +02:00
TW
1379d4c6c7
Merge pull request #9682 from ThomasWaldmann/backport-year-2026-1.4-maint
update year in LICENSE and docs/conf.py (1.4-maint)
2026-05-30 15:06:19 +02:00
Thomas Waldmann
7c4952fde1
update year in LICENSE and docs/conf.py (1.4-maint)
backport of #9681

Co-authored-by: Junie <junie@jetbrains.com>
2026-05-30 14:58:40 +02:00
TW
1f356d8a87
Merge pull request #9608 from ThomasWaldmann/versioning-1.4
Some checks failed
CI / lint (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Windows CI / msys2-ucrt64 (push) Has been cancelled
CI / asan_ubsan (push) Has been cancelled
CI / native_tests (push) Has been cancelled
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Has been cancelled
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Has been cancelled
CI / vm_tests (OpenBSD, false, openbsd, 7.7) (push) Has been cancelled
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Has been cancelled
properly handle invalid and dev versions in version parser, fixes #9014
2026-05-17 21:12:19 +02:00
TW
32e81f6db6
Merge pull request #9649 from ThomasWaldmann/update-changes-1.4
Some checks failed
CI / lint (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Windows CI / msys2-ucrt64 (push) Has been cancelled
CI / asan_ubsan (push) Has been cancelled
CI / native_tests (push) Has been cancelled
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Has been cancelled
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Has been cancelled
CI / vm_tests (OpenBSD, false, openbsd, 7.7) (push) Has been cancelled
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Has been cancelled
update CHANGES
2026-05-15 22:04:09 +02:00
Thomas Waldmann
074c0c0e18
update CHANGES 2026-05-15 21:41:46 +02:00
TW
ec366d5b5f
Merge pull request #9647 from PhrozenByte/docs-slashdot-and-pattern
Document the impact of the slashdot hack to pattern matching
2026-05-15 20:46:51 +02:00
Daniel Rudolf
ae1440ed7e
Document the impact of the slashdot hack to pattern matching
... or rather that the slashdot hack doesn't impact pattern matching at all. Add a note to `borg help patterns`.
2026-05-15 14:47:44 +02:00
TW
91c616cece
Merge pull request #9645 from ThomasWaldmann/related-repos-1.4
Some checks are pending
CI / lint (push) Waiting to run
CI / asan_ubsan (push) Blocked by required conditions
CI / native_tests (push) Blocked by required conditions
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Blocked by required conditions
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Blocked by required conditions
CI / vm_tests (OpenBSD, false, openbsd, 7.7) (push) Blocked by required conditions
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Blocked by required conditions
CodeQL / Analyze (push) Waiting to run
Windows CI / msys2-ucrt64 (push) Waiting to run
Minimal implementation of "related repositories" for Borg 1.4.x.
2026-05-15 14:25:48 +02:00
Thomas Waldmann
5035710042
Minimal implementation of "related repositories" for Borg 1.4.x.
This feature allows multiple repositories to share deduplication-relevant secrets (id_key and chunk_seed) while maintaining secure, independent encryption keys.

`borg key export-related-secrets <REPO> <SPATH>` to export the secrets to a JSON file.

`borg init --import-related-secrets <SPATH> <REPO>` to initialize a new repository using the secrets from the JSON file.

Both repositories must use the same chunk id algorithm (both HMAC-SHA256 or both BLAKE2b).

If you create related repositories with borg 1.4.x, you can later transfer their archives
to one or multiple related new borg2 repositories without breaking deduplication.

But please note that we might remove BLAKE2b support for new borg2 repos, see #8867,
so this might only work for HMAC-SHA256 in the end.
2026-05-15 13:21:00 +02:00
TW
789c5060d6
Merge pull request #9640 from ThomasWaldmann/backport-9633-to-1.4-maint
Some checks are pending
CI / lint (push) Waiting to run
CI / asan_ubsan (push) Blocked by required conditions
CI / native_tests (push) Blocked by required conditions
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Blocked by required conditions
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Blocked by required conditions
CI / vm_tests (OpenBSD, false, openbsd, 7.7) (push) Blocked by required conditions
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Blocked by required conditions
CodeQL / Analyze (push) Waiting to run
Windows CI / msys2-ucrt64 (push) Waiting to run
tests: make FakeInput usage less suspicious for code checkers
2026-05-14 09:44:39 +02:00
TW
0c6b2e8a90
Merge pull request #9641 from ThomasWaldmann/fix-test_key_export_repokey-1.4
fix test_key_export_repokey typo
2026-05-14 09:43:06 +02:00
TW
4f0098a954
Merge pull request #9642 from ThomasWaldmann/backport-9638-to-1.4-maint
docs: pull-backup.rst minor fixes (1.4-maint)
2026-05-14 09:42:30 +02:00
Thomas Waldmann
e8f61d80f3 docs: backport #9638 (minor fixes) to 1.4-maint 2026-05-14 00:51:29 +02:00
Thomas Waldmann
9060e8afb9 fix test_key_export_repokey typo 2026-05-14 00:47:10 +02:00
Thomas Waldmann
79ffb3fcde tests: make FakeInput usage less suspicious for code checkers 2026-05-14 00:41:34 +02:00
TW
2a9429d9d7
Merge pull request #9630 from ThomasWaldmann/pull-backup-different-arch-1.4
Some checks are pending
CodeQL / Analyze (push) Waiting to run
Windows CI / msys2-ucrt64 (push) Waiting to run
docs: sshfs + chroot does support different CPU architectures, fixes #6878
2026-05-13 22:19:22 +02:00
TW
e9a1906821
Merge pull request #9629 from ThomasWaldmann/scalability-1.4
add a FAQ entry about scalability, fixes #4742
2026-05-13 22:18:34 +02:00
Thomas Waldmann
49365617c4 docs: sshfs + chroot does support different CPU architectures, fixes #6878 2026-05-13 22:08:46 +02:00
Thomas Waldmann
2dec0d32de add a FAQ entry about scalability, fixes #4742 2026-05-13 22:01:46 +02:00
TW
1f6c026032
docs: document max_segment_size adjustment, fixes #7858
Some checks are pending
CI / lint (push) Waiting to run
CI / asan_ubsan (push) Blocked by required conditions
CI / native_tests (push) Blocked by required conditions
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Blocked by required conditions
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Blocked by required conditions
CI / vm_tests (OpenBSD, false, openbsd, 7.7) (push) Blocked by required conditions
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Blocked by required conditions
CodeQL / Analyze (push) Waiting to run
Windows CI / msys2-ucrt64 (push) Waiting to run
2026-05-13 10:08:53 +02:00
TW
5b8184be25
docs: add section about rolling back a transaction, fixes #9270 2026-05-13 10:02:56 +02:00
TW
0d93298fd3
Merge pull request #9615 from ThomasWaldmann/docs-storage-quota-3948
docs: clarify storage quota run-time settings (fixes #3948)
2026-05-13 10:00:58 +02:00
TW
f3a6898073
Merge pull request #9617 from ThomasWaldmann/docs-enospc-faq-9573
docs: add FAQ entry for full repository filesystem (fixes #9573)
2026-05-13 09:59:59 +02:00
TW
3f745f38d4
docs: add FAQ entry for bad backups and deduplication, fixes #4744 2026-05-13 09:58:58 +02:00
TW
a5bfda12e6
docs: add FAQ entry for SSH connection timeouts, fixes #5629 2026-05-13 09:57:42 +02:00
TW
62fcfea53a
Merge pull request #9614 from ThomasWaldmann/docs-macos-keychain-5156
docs: improve macOS Keychain instructions (fixes #5156)
2026-05-13 09:56:42 +02:00
TW
d84eeea84d
docs: add DoS warning for none encryption mode, fixes #6715 2026-05-13 09:55:36 +02:00
Thomas Waldmann
4cbaab5d29 docs: add FAQ entry for full repository filesystem, fixes #9573 2026-05-13 09:53:41 +02:00
TW
0e94055d27
docs: document error handling in borg create, fixes #4912 2026-05-13 09:48:34 +02:00
Thomas Waldmann
7f4ebba21a
docs: clarify storage quota run-time settings (fixes #3948) 2026-05-13 01:22:03 +02:00
Thomas Waldmann
fb8bab1c2d
docs: improve macOS Keychain instructions (fixes #5156) 2026-05-13 01:14:24 +02:00