diff --git a/docs/3rd_party/README b/docs/3rd_party/README
new file mode 100644
index 00000000..1f7b9b6a
--- /dev/null
+++ b/docs/3rd_party/README
@@ -0,0 +1,5 @@
+Here we store 3rd party documentation, licenses, etc.
+
+Please note that all files inside the "borg" package directory (except the
+stuff excluded in setup.py) will be INSTALLED, so don't keep docs or licenses
+there.
diff --git a/src/borg/algorithms/blake2/COPYING b/docs/3rd_party/blake2/COPYING
similarity index 100%
rename from src/borg/algorithms/blake2/COPYING
rename to docs/3rd_party/blake2/COPYING
diff --git a/src/borg/algorithms/blake2/README.md b/docs/3rd_party/blake2/README.md
similarity index 100%
rename from src/borg/algorithms/blake2/README.md
rename to docs/3rd_party/blake2/README.md
diff --git a/src/borg/algorithms/crc32_slice_by_8.c b/src/borg/algorithms/crc32_slice_by_8.c
index b289fbb8..3ab0c840 100644
--- a/src/borg/algorithms/crc32_slice_by_8.c
+++ b/src/borg/algorithms/crc32_slice_by_8.c
@@ -332,14 +332,12 @@ uint32_t crc32_slice_by_8(const void* data, size_t length, uint32_t previousCrc3
   uint32_t crc = ~previousCrc32; // same as previousCrc32 ^ 0xFFFFFFFF
 
   const uint32_t* current;
-  const uint8_t* currentChar;
+  const uint8_t* currentChar = (const uint8_t*) data;
 
   // enabling optimization (at least -O2) automatically unrolls the inner for-loop
   const size_t Unroll = 4;
   const size_t BytesAtOnce = 8 * Unroll;
 
-  currentChar = (const uint8_t*) data;
-
   // wanted: 32 bit / 4 Byte alignment, compute leading, unaligned bytes length
   uintptr_t unaligned_length = (4 - (((uintptr_t) currentChar) & 3)) & 3;
   // process unaligned bytes, if any (standard algorithm)
diff --git a/src/borg/archiver.py b/src/borg/archiver.py
index a14d4af5..887cb772 100644
--- a/src/borg/archiver.py
+++ b/src/borg/archiver.py
@@ -3806,6 +3806,7 @@ def get_args(self, argv, cmd):
                 return forced_result
             # we only take specific options from the forced "borg serve" command:
             result.restrict_to_paths = forced_result.restrict_to_paths
+            result.restrict_to_repositories = forced_result.restrict_to_repositories
             result.append_only = forced_result.append_only
         return result
 
diff --git a/src/borg/fuse.py b/src/borg/fuse.py
index 52ed1ad6..a85684a0 100644
--- a/src/borg/fuse.py
+++ b/src/borg/fuse.py
@@ -362,7 +362,7 @@ def make_versioned_name(name, version, add_dir=False):
             return name + version_enc + ext
 
         if 'source' in item and hardlinkable(item.mode):
-            source = os.path.join(*item.source.split(os.sep)[stripped_components:])
+            source = os.sep.join(item.source.split(os.sep)[stripped_components:])
             chunks, link_target = hardlink_masters.get(item.source, (None, source))
             if link_target:
                 # Hard link was extracted previously, just link

port last-minute changes of 1.1.3 to master
https://github.com/borgbackup/borg/pull/3391/commits
diff --git a/src/borg/testsuite/archiver.py b/src/borg/testsuite/archiver.py
index a25cb5de..910b5372 100644
--- a/src/borg/testsuite/archiver.py
+++ b/src/borg/testsuite/archiver.py
@@ -3546,10 +3546,22 @@ def test_get_args():
     assert args.restrict_to_paths == ['/p1', '/p2']
     assert args.umask == 0o027
     assert args.log_level == 'info'
+    # similar, but with --restrict-to-repository
+    args = archiver.get_args(['borg', 'serve', '--restrict-to-repository=/r1', '--restrict-to-repository=/r2', ],
+                             'borg serve --info --umask=0027')
+    assert args.restrict_to_repositories == ['/r1', '/r2']
     # trying to cheat - break out of path restriction
     args = archiver.get_args(['borg', 'serve', '--restrict-to-path=/p1', '--restrict-to-path=/p2', ],
                              'borg serve --restrict-to-path=/')
     assert args.restrict_to_paths == ['/p1', '/p2']
+    # trying to cheat - break out of repository restriction
+    args = archiver.get_args(['borg', 'serve', '--restrict-to-repository=/r1', '--restrict-to-repository=/r2', ],
+                             'borg serve --restrict-to-repository=/')
+    assert args.restrict_to_repositories == ['/r1', '/r2']
+    # trying to cheat - break below repository restriction
+    args = archiver.get_args(['borg', 'serve', '--restrict-to-repository=/r1', '--restrict-to-repository=/r2', ],
+                             'borg serve --restrict-to-repository=/r1/below')
+    assert args.restrict_to_repositories == ['/r1', '/r2']
     # trying to cheat - try to execute different subcommand
     args = archiver.get_args(['borg', 'serve', '--restrict-to-path=/p1', '--restrict-to-path=/p2', ],
                              'borg init --encryption=repokey /')

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-xdist pytest-cov
apt-get update apt-get install -y gcc libacl1-dev libacl1 libssl-dev liblz4-dev libzstd-dev build-essential pkg-config python3-pkgconfig
3.9
requirements.d/development.txt requirements.d/docs.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
alabaster==0.7.16
babel==2.17.0
-e git+https://github.com/borgbackup/borg.git@1cf6e1e1030655946e487337cc855fa2d1137907#egg=borgbackup
cachetools==5.5.2
certifi==2025.1.31
chardet==5.2.0
charset-normalizer==3.4.1
colorama==0.4.6
coverage==7.8.0
Cython==3.0.12
distlib==0.3.9
docutils==0.21.2
exceptiongroup==1.2.2
execnet==2.1.1
filelock==3.18.0
guzzle_sphinx_theme==0.7.11
idna==3.10
imagesize==1.4.1
importlib_metadata==8.6.1
iniconfig==2.1.0
Jinja2==3.1.6
MarkupSafe==3.0.2
msgpack-python==0.5.6
packaging==24.2
platformdirs==4.3.7
pluggy==1.5.0
py-cpuinfo==9.0.0
Pygments==2.19.1
pyproject-api==1.9.0
pytest==8.3.5
pytest-benchmark==5.1.0
pytest-cov==6.0.0
pytest-xdist==3.6.1
pyzmq==26.3.0
requests==2.32.3
setuptools-scm==8.2.0
snowballstemmer==2.2.0
Sphinx==7.4.7
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
tomli==2.2.1
tox==4.25.0
typing_extensions==4.13.0
urllib3==2.3.0
virtualenv==20.29.3
zipp==3.21.0

name: borg
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - alabaster==0.7.16
      - babel==2.17.0
      - cachetools==5.5.2
      - certifi==2025.1.31
      - chardet==5.2.0
      - charset-normalizer==3.4.1
      - colorama==0.4.6
      - coverage==7.8.0
      - cython==3.0.12
      - distlib==0.3.9
      - docutils==0.21.2
      - exceptiongroup==1.2.2
      - execnet==2.1.1
      - filelock==3.18.0
      - guzzle-sphinx-theme==0.7.11
      - idna==3.10
      - imagesize==1.4.1
      - importlib-metadata==8.6.1
      - iniconfig==2.1.0
      - jinja2==3.1.6
      - markupsafe==3.0.2
      - msgpack-python==0.5.6
      - packaging==24.2
      - platformdirs==4.3.7
      - pluggy==1.5.0
      - py-cpuinfo==9.0.0
      - pygments==2.19.1
      - pyproject-api==1.9.0
      - pytest==8.3.5
      - pytest-benchmark==5.1.0
      - pytest-cov==6.0.0
      - pytest-xdist==3.6.1
      - pyzmq==26.3.0
      - requests==2.32.3
      - setuptools-scm==8.2.0
      - snowballstemmer==2.2.0
      - sphinx==7.4.7
      - sphinxcontrib-applehelp==2.0.0
      - sphinxcontrib-devhelp==2.0.0
      - sphinxcontrib-htmlhelp==2.1.0
      - sphinxcontrib-jsmath==1.0.1
      - sphinxcontrib-qthelp==2.0.0
      - sphinxcontrib-serializinghtml==2.0.0
      - tomli==2.2.1
      - tox==4.25.0
      - typing-extensions==4.13.0
      - urllib3==2.3.0
      - virtualenv==20.29.3
      - zipp==3.21.0
prefix: /opt/conda/envs/borg

src/borg/testsuite/archiver.py::test_get_args
src/borg/testsuite/archiver.py::test_return_codes[python] src/borg/testsuite/archiver.py::ArchiverTestCase::test_common_options src/borg/testsuite/archiver.py::ArchiverTestCase::test_compression_auto_compressible src/borg/testsuite/archiver.py::ArchiverTestCase::test_compression_auto_uncompressible src/borg/testsuite/archiver.py::ArchiverTestCase::test_compression_lz4_compressible src/borg/testsuite/archiver.py::ArchiverTestCase::test_compression_lzma_compressible src/borg/testsuite/archiver.py::ArchiverTestCase::test_compression_none_compressible src/borg/testsuite/archiver.py::ArchiverTestCase::test_compression_none_uncompressible src/borg/testsuite/archiver.py::ArchiverTestCase::test_compression_zlib_compressible src/borg/testsuite/archiver.py::ArchiverTestCase::test_config src/borg/testsuite/archiver.py::ArchiverTestCase::test_corrupted_repository src/borg/testsuite/archiver.py::ArchiverTestCase::test_create_json src/borg/testsuite/archiver.py::ArchiverTestCase::test_create_no_cache_sync src/borg/testsuite/archiver.py::ArchiverTestCase::test_create_stdin src/borg/testsuite/archiver.py::ArchiverTestCase::test_debug_dump_archive src/borg/testsuite/archiver.py::ArchiverTestCase::test_debug_dump_manifest src/borg/testsuite/archiver.py::ArchiverTestCase::test_debug_info src/borg/testsuite/archiver.py::ArchiverTestCase::test_debug_refcount_obj src/borg/testsuite/archiver.py::ArchiverTestCase::test_delete_multiple src/borg/testsuite/archiver.py::ArchiverTestCase::test_detect_attic_repo src/borg/testsuite/archiver.py::ArchiverTestCase::test_info_json src/borg/testsuite/archiver.py::ArchiverTestCase::test_list_json src/borg/testsuite/archiver.py::ArchiverTestCase::test_list_repository_format src/borg/testsuite/archiver.py::ArchiverTestCase::test_list_size src/borg/testsuite/archiver.py::ArchiverTestCase::test_log_json src/borg/testsuite/archiver.py::ArchiverTestCase::test_recreate_rechunkify src/borg/testsuite/archiver.py::ArchiverTestCase::test_recreate_recompress src/borg/testsuite/archiver.py::ArchiverTestCase::test_recreate_target src/borg/testsuite/archiver.py::ArchiverCheckTestCase::test_check_usage src/borg/testsuite/archiver.py::ArchiverCheckTestCase::test_corrupted_manifest src/borg/testsuite/archiver.py::ArchiverCheckTestCase::test_manifest_rebuild_corrupted_chunk src/borg/testsuite/archiver.py::ArchiverCheckTestCase::test_missing_file_chunk src/borg/testsuite/archiver.py::ArchiverCheckTestCase::test_missing_manifest src/borg/testsuite/archiver.py::ManifestAuthenticationTest::test_disable src/borg/testsuite/archiver.py::ManifestAuthenticationTest::test_disable2 src/borg/testsuite/archiver.py::ManifestAuthenticationTest::test_not_required src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_common_options src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_compression_auto_compressible src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_compression_auto_uncompressible src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_compression_lz4_compressible src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_compression_lz4_uncompressible src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_compression_lzma_compressible src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_compression_lzma_uncompressible src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_compression_none_compressible src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_compression_none_uncompressible src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_compression_zlib_compressible src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_compression_zlib_uncompressible src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_create_json src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_create_no_cache_sync src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_create_stdin src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_debug_dump_archive src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_debug_dump_manifest src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_debug_info src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_debug_refcount_obj src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_delete_force src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_delete_multiple src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_detect_attic_repo src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_info_json src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_init_nested_repositories src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_list_json src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_list_repository_format src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_list_size src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_recreate_rechunkify src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_recreate_recompress src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_recreate_target src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_remote_repo_restrict_to_path src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_remote_repo_restrict_to_repository src/borg/testsuite/archiver.py::ArchiverCorruptionTestCase::test_cache_chunks src/borg/testsuite/archiver.py::ArchiverCorruptionTestCase::test_cache_files src/borg/testsuite/archiver.py::ArchiverCorruptionTestCase::test_chunks_archive src/borg/testsuite/archiver.py::ArchiverCorruptionTestCase::test_old_version_interfered src/borg/testsuite/archiver.py::DiffArchiverTestCase::test_sort_option
src/borg/testsuite/archiver.py::ArchiverTestCase::test_aes_counter_uniqueness_keyfile src/borg/testsuite/archiver.py::ArchiverTestCase::test_aes_counter_uniqueness_passphrase src/borg/testsuite/archiver.py::ArchiverTestCase::test_atime src/borg/testsuite/archiver.py::ArchiverTestCase::test_bad_filters src/borg/testsuite/archiver.py::ArchiverTestCase::test_basic_functionality src/borg/testsuite/archiver.py::ArchiverTestCase::test_benchmark_crud src/borg/testsuite/archiver.py::ArchiverTestCase::test_break_lock src/borg/testsuite/archiver.py::ArchiverTestCase::test_change_passphrase src/borg/testsuite/archiver.py::ArchiverTestCase::test_check_cache src/borg/testsuite/archiver.py::ArchiverTestCase::test_comment src/borg/testsuite/archiver.py::ArchiverTestCase::test_compression_lz4_uncompressible src/borg/testsuite/archiver.py::ArchiverTestCase::test_compression_lzma_uncompressible src/borg/testsuite/archiver.py::ArchiverTestCase::test_compression_zlib_uncompressible src/borg/testsuite/archiver.py::ArchiverTestCase::test_create_dry_run src/borg/testsuite/archiver.py::ArchiverTestCase::test_create_pattern src/borg/testsuite/archiver.py::ArchiverTestCase::test_create_pattern_exclude_folder_but_recurse src/borg/testsuite/archiver.py::ArchiverTestCase::test_create_pattern_exclude_folder_no_recurse src/borg/testsuite/archiver.py::ArchiverTestCase::test_create_pattern_file src/borg/testsuite/archiver.py::ArchiverTestCase::test_create_pattern_intermediate_folders_first src/borg/testsuite/archiver.py::ArchiverTestCase::test_create_pattern_root src/borg/testsuite/archiver.py::ArchiverTestCase::test_create_read_special_broken_symlink src/borg/testsuite/archiver.py::ArchiverTestCase::test_create_topical src/borg/testsuite/archiver.py::ArchiverTestCase::test_create_without_root src/borg/testsuite/archiver.py::ArchiverTestCase::test_debug_dump_archive_items src/borg/testsuite/archiver.py::ArchiverTestCase::test_debug_dump_repo_objs src/borg/testsuite/archiver.py::ArchiverTestCase::test_debug_profile src/borg/testsuite/archiver.py::ArchiverTestCase::test_debug_put_get_delete_obj src/borg/testsuite/archiver.py::ArchiverTestCase::test_delete src/borg/testsuite/archiver.py::ArchiverTestCase::test_delete_double_force src/borg/testsuite/archiver.py::ArchiverTestCase::test_delete_force src/borg/testsuite/archiver.py::ArchiverTestCase::test_delete_repo src/borg/testsuite/archiver.py::ArchiverTestCase::test_exclude_caches src/borg/testsuite/archiver.py::ArchiverTestCase::test_exclude_keep_tagged src/borg/testsuite/archiver.py::ArchiverTestCase::test_exclude_keep_tagged_deprecation src/borg/testsuite/archiver.py::ArchiverTestCase::test_exclude_normalization src/borg/testsuite/archiver.py::ArchiverTestCase::test_exclude_tagged src/borg/testsuite/archiver.py::ArchiverTestCase::test_export_tar src/borg/testsuite/archiver.py::ArchiverTestCase::test_export_tar_gz src/borg/testsuite/archiver.py::ArchiverTestCase::test_export_tar_strip_components src/borg/testsuite/archiver.py::ArchiverTestCase::test_export_tar_strip_components_links src/borg/testsuite/archiver.py::ArchiverTestCase::test_extract_hardlinks src/borg/testsuite/archiver.py::ArchiverTestCase::test_extract_include_exclude src/borg/testsuite/archiver.py::ArchiverTestCase::test_extract_include_exclude_regex src/borg/testsuite/archiver.py::ArchiverTestCase::test_extract_include_exclude_regex_from_file src/borg/testsuite/archiver.py::ArchiverTestCase::test_extract_list_output src/borg/testsuite/archiver.py::ArchiverTestCase::test_extract_pattern_opt src/borg/testsuite/archiver.py::ArchiverTestCase::test_extract_progress src/borg/testsuite/archiver.py::ArchiverTestCase::test_extract_with_pattern src/borg/testsuite/archiver.py::ArchiverTestCase::test_file_status src/borg/testsuite/archiver.py::ArchiverTestCase::test_file_status_cs_cache_mode src/borg/testsuite/archiver.py::ArchiverTestCase::test_file_status_excluded src/borg/testsuite/archiver.py::ArchiverTestCase::test_file_status_ms_cache_mode src/borg/testsuite/archiver.py::ArchiverTestCase::test_file_status_rc_cache_mode src/borg/testsuite/archiver.py::ArchiverTestCase::test_help src/borg/testsuite/archiver.py::ArchiverTestCase::test_info src/borg/testsuite/archiver.py::ArchiverTestCase::test_init_interrupt src/borg/testsuite/archiver.py::ArchiverTestCase::test_init_nested_repositories src/borg/testsuite/archiver.py::ArchiverTestCase::test_init_requires_encryption_option src/borg/testsuite/archiver.py::ArchiverTestCase::test_key_export_keyfile src/borg/testsuite/archiver.py::ArchiverTestCase::test_key_export_paperkey src/borg/testsuite/archiver.py::ArchiverTestCase::test_key_export_qr src/borg/testsuite/archiver.py::ArchiverTestCase::test_key_export_repokey src/borg/testsuite/archiver.py::ArchiverTestCase::test_key_import_errors src/borg/testsuite/archiver.py::ArchiverTestCase::test_key_import_paperkey src/borg/testsuite/archiver.py::ArchiverTestCase::test_list_chunk_counts src/borg/testsuite/archiver.py::ArchiverTestCase::test_list_format src/borg/testsuite/archiver.py::ArchiverTestCase::test_list_hash src/borg/testsuite/archiver.py::ArchiverTestCase::test_list_json_args src/borg/testsuite/archiver.py::ArchiverTestCase::test_list_prefix src/borg/testsuite/archiver.py::ArchiverTestCase::test_overwrite src/borg/testsuite/archiver.py::ArchiverTestCase::test_path_normalization src/borg/testsuite/archiver.py::ArchiverTestCase::test_progress_off src/borg/testsuite/archiver.py::ArchiverTestCase::test_progress_on src/borg/testsuite/archiver.py::ArchiverTestCase::test_prune_repository src/borg/testsuite/archiver.py::ArchiverTestCase::test_prune_repository_glob src/borg/testsuite/archiver.py::ArchiverTestCase::test_prune_repository_prefix src/borg/testsuite/archiver.py::ArchiverTestCase::test_prune_repository_save_space src/borg/testsuite/archiver.py::ArchiverTestCase::test_recreate_basic src/borg/testsuite/archiver.py::ArchiverTestCase::test_recreate_dry_run src/borg/testsuite/archiver.py::ArchiverTestCase::test_recreate_exclude_caches src/borg/testsuite/archiver.py::ArchiverTestCase::test_recreate_exclude_keep_tagged src/borg/testsuite/archiver.py::ArchiverTestCase::test_recreate_exclude_tagged src/borg/testsuite/archiver.py::ArchiverTestCase::test_recreate_list_output src/borg/testsuite/archiver.py::ArchiverTestCase::test_recreate_skips_nothing_to_do src/borg/testsuite/archiver.py::ArchiverTestCase::test_recreate_subtree_hardlinks src/borg/testsuite/archiver.py::ArchiverTestCase::test_recreate_target_rc src/borg/testsuite/archiver.py::ArchiverTestCase::test_rename src/borg/testsuite/archiver.py::ArchiverTestCase::test_repeated_files src/borg/testsuite/archiver.py::ArchiverTestCase::test_repository_move src/borg/testsuite/archiver.py::ArchiverTestCase::test_repository_swap_detection src/borg/testsuite/archiver.py::ArchiverTestCase::test_repository_swap_detection2 src/borg/testsuite/archiver.py::ArchiverTestCase::test_repository_swap_detection2_no_cache src/borg/testsuite/archiver.py::ArchiverTestCase::test_repository_swap_detection_no_cache src/borg/testsuite/archiver.py::ArchiverTestCase::test_repository_swap_detection_repokey_blank_passphrase src/borg/testsuite/archiver.py::ArchiverTestCase::test_security_dir_compat src/borg/testsuite/archiver.py::ArchiverTestCase::test_sparse_file src/borg/testsuite/archiver.py::ArchiverTestCase::test_strip_components src/borg/testsuite/archiver.py::ArchiverTestCase::test_symlink_extract src/borg/testsuite/archiver.py::ArchiverTestCase::test_umask src/borg/testsuite/archiver.py::ArchiverTestCase::test_unix_socket src/borg/testsuite/archiver.py::ArchiverTestCase::test_unknown_feature_on_cache_sync src/borg/testsuite/archiver.py::ArchiverTestCase::test_unknown_feature_on_change_passphrase src/borg/testsuite/archiver.py::ArchiverTestCase::test_unknown_feature_on_create src/borg/testsuite/archiver.py::ArchiverTestCase::test_unknown_feature_on_delete src/borg/testsuite/archiver.py::ArchiverTestCase::test_unknown_feature_on_read src/borg/testsuite/archiver.py::ArchiverTestCase::test_unknown_feature_on_rename src/borg/testsuite/archiver.py::ArchiverTestCase::test_unknown_mandatory_feature_in_cache src/borg/testsuite/archiver.py::ArchiverTestCase::test_unknown_unencrypted src/borg/testsuite/archiver.py::ArchiverTestCase::test_unusual_filenames src/borg/testsuite/archiver.py::ArchiverTestCase::test_usage src/borg/testsuite/archiver.py::ArchiverTestCase::test_with_lock src/borg/testsuite/archiver.py::ArchiverCheckTestCase::test_attic013_acl_bug src/borg/testsuite/archiver.py::ArchiverCheckTestCase::test_empty_repository src/borg/testsuite/archiver.py::ArchiverCheckTestCase::test_extra_chunks src/borg/testsuite/archiver.py::ArchiverCheckTestCase::test_manifest_rebuild_duplicate_archive src/borg/testsuite/archiver.py::ArchiverCheckTestCase::test_missing_archive_item_chunk src/borg/testsuite/archiver.py::ArchiverCheckTestCase::test_missing_archive_metadata src/borg/testsuite/archiver.py::ArchiverCheckTestCase::test_verify_data src/borg/testsuite/archiver.py::ArchiverCheckTestCase::test_verify_data_unencrypted src/borg/testsuite/archiver.py::ManifestAuthenticationTest::test_fresh_init_tam_required src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_aes_counter_uniqueness_keyfile src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_aes_counter_uniqueness_passphrase src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_atime src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_bad_filters src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_basic_functionality src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_benchmark_crud src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_break_lock src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_change_passphrase src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_check_cache src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_comment src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_corrupted_repository src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_create_dry_run src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_create_pattern src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_create_pattern_exclude_folder_but_recurse src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_create_pattern_exclude_folder_no_recurse src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_create_pattern_file src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_create_pattern_intermediate_folders_first src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_create_pattern_root src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_create_read_special_broken_symlink src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_create_topical src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_create_without_root src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_debug_dump_archive_items src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_debug_dump_repo_objs src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_debug_profile src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_delete src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_delete_double_force src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_delete_repo src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_exclude_caches src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_exclude_keep_tagged src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_exclude_keep_tagged_deprecation src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_exclude_normalization src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_exclude_tagged src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_export_tar src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_export_tar_gz src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_export_tar_strip_components src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_export_tar_strip_components_links src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_extract_hardlinks src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_extract_include_exclude src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_extract_include_exclude_regex src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_extract_include_exclude_regex_from_file src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_extract_list_output src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_extract_pattern_opt src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_extract_progress src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_extract_with_pattern src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_file_status src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_file_status_cs_cache_mode src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_file_status_excluded src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_file_status_ms_cache_mode src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_file_status_rc_cache_mode src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_help src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_info src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_init_interrupt src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_init_requires_encryption_option src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_key_export_keyfile src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_key_export_paperkey src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_key_export_qr src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_key_export_repokey src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_key_import_errors src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_key_import_paperkey src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_list_chunk_counts src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_list_format src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_list_hash src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_list_json_args src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_list_prefix src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_log_json src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_overwrite src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_path_normalization src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_progress_off src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_progress_on src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_prune_repository src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_prune_repository_glob src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_prune_repository_prefix src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_prune_repository_save_space src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_recreate_basic src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_recreate_dry_run src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_recreate_exclude_caches src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_recreate_exclude_keep_tagged src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_recreate_exclude_tagged src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_recreate_list_output src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_recreate_skips_nothing_to_do src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_recreate_subtree_hardlinks src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_recreate_target_rc src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_rename src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_repeated_files src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_repository_move src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_repository_swap_detection src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_repository_swap_detection2 src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_repository_swap_detection2_no_cache src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_repository_swap_detection_no_cache src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_repository_swap_detection_repokey_blank_passphrase src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_security_dir_compat src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_sparse_file src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_strip_components src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_strip_components_doesnt_leak src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_symlink_extract src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_umask src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_unix_socket src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_unknown_feature_on_cache_sync src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_unknown_feature_on_change_passphrase src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_unknown_feature_on_create src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_unknown_feature_on_delete src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_unknown_feature_on_read src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_unknown_feature_on_rename src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_unknown_mandatory_feature_in_cache src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_unknown_unencrypted src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_unusual_filenames src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_usage src/borg/testsuite/archiver.py::RemoteArchiverTestCase::test_with_lock src/borg/testsuite/archiver.py::DiffArchiverTestCase::test_basic_functionality src/borg/testsuite/archiver.py::test_chunk_content_equal src/borg/testsuite/archiver.py::TestBuildFilter::test_basic src/borg/testsuite/archiver.py::TestBuildFilter::test_empty src/borg/testsuite/archiver.py::TestBuildFilter::test_strip_components src/borg/testsuite/archiver.py::TestCommonOptions::test_simple src/borg/testsuite/archiver.py::TestCommonOptions::test_flag_position_independence[-p-progress-True-before] src/borg/testsuite/archiver.py::TestCommonOptions::test_flag_position_independence[-p-progress-True-after] src/borg/testsuite/archiver.py::TestCommonOptions::test_flag_position_independence[-p-progress-True-both] src/borg/testsuite/archiver.py::TestCommonOptions::test_flag_position_independence[--lock-wait=3-lock_wait-3-before] src/borg/testsuite/archiver.py::TestCommonOptions::test_flag_position_independence[--lock-wait=3-lock_wait-3-after] src/borg/testsuite/archiver.py::TestCommonOptions::test_flag_position_independence[--lock-wait=3-lock_wait-3-both] src/borg/testsuite/archiver.py::test_parse_storage_quota src/borg/testsuite/archiver.py::test_help_formatting[benchmark src/borg/testsuite/archiver.py::test_help_formatting[benchmark-parser1] src/borg/testsuite/archiver.py::test_help_formatting[borgfs-parser2] src/borg/testsuite/archiver.py::test_help_formatting[break-lock-parser3] src/borg/testsuite/archiver.py::test_help_formatting[change-passphrase-parser4] src/borg/testsuite/archiver.py::test_help_formatting[check-parser5] src/borg/testsuite/archiver.py::test_help_formatting[config-parser6] src/borg/testsuite/archiver.py::test_help_formatting[create-parser7] src/borg/testsuite/archiver.py::test_help_formatting[debug src/borg/testsuite/archiver.py::test_help_formatting[debug-parser18] src/borg/testsuite/archiver.py::test_help_formatting[delete-parser19] src/borg/testsuite/archiver.py::test_help_formatting[diff-parser20] src/borg/testsuite/archiver.py::test_help_formatting[export-tar-parser21] src/borg/testsuite/archiver.py::test_help_formatting[extract-parser22] src/borg/testsuite/archiver.py::test_help_formatting[help-parser23] src/borg/testsuite/archiver.py::test_help_formatting[info-parser24] src/borg/testsuite/archiver.py::test_help_formatting[init-parser25] src/borg/testsuite/archiver.py::test_help_formatting[key src/borg/testsuite/archiver.py::test_help_formatting[key-parser30] src/borg/testsuite/archiver.py::test_help_formatting[list-parser31] src/borg/testsuite/archiver.py::test_help_formatting[mount-parser32] src/borg/testsuite/archiver.py::test_help_formatting[prune-parser33] src/borg/testsuite/archiver.py::test_help_formatting[recreate-parser34] src/borg/testsuite/archiver.py::test_help_formatting[rename-parser35] src/borg/testsuite/archiver.py::test_help_formatting[serve-parser36] src/borg/testsuite/archiver.py::test_help_formatting[umount-parser37] src/borg/testsuite/archiver.py::test_help_formatting[upgrade-parser38] src/borg/testsuite/archiver.py::test_help_formatting[with-lock-parser39] src/borg/testsuite/archiver.py::test_help_formatting_helptexts[patterns-\nFile src/borg/testsuite/archiver.py::test_help_formatting_helptexts[placeholders-\nRepository src/borg/testsuite/archiver.py::test_help_formatting_helptexts[compression-\nIt
src/borg/fuse.py src/borg/algorithms/blake2/README.md src/borg/algorithms/crc32_slice_by_8.c src/borg/archiver.py src/borg/algorithms/blake2/COPYING docs/3rd_party/README
src/borg/fuse.py src/borg/algorithms/crc32_slice_by_8.c docs/3rd_party/blake2/COPYING src/borg/archiver.py docs/3rd_party/blake2/README.md docs/3rd_party/README