diff --git a/.bazelrc b/.bazelrc
index 0712ec2..5bf3ef8 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -1,6 +1,6 @@
 # TODO(davido): Migrate all dependencies from WORKSPACE to MODULE.bazel
 # https://issues.gerritcodereview.com/issues/303819949
-common --noenable_bzlmod
+common --enable_bzlmod
 common --enable_workspace
 
 build --workspace_status_command="python3 ./tools/workspace_status.py"
diff --git a/.github/workflows/generate-maven-sbom.yaml b/.github/workflows/generate-maven-sbom.yaml
new file mode 100644
index 0000000..f717d67
--- /dev/null
+++ b/.github/workflows/generate-maven-sbom.yaml
@@ -0,0 +1,72 @@
+name: Generate Maven SBOM
+
+on:
+  push:
+    tags:
+      - "v**" # Triggers when someone pushes a tag that starts with 'v'
+
+  workflow_dispatch:
+    # The custom 'Version' input field allows running the workflow for older git
+    # refs, where this workflow file did not exist yet. This would not be
+    # possible with the builtin "Use workflow from" input field.
+    inputs:
+      version:
+        description: "Version"
+        default: "master"
+        required: true
+
+env:
+  JAVA_VERSION: '17'
+  JAVA_DISTRO: 'temurin'
+  PLUGIN_VERSION: '2.9.1'
+  SBOM_TYPE: 'makeAggregateBom'
+  PROJECT_VERSION: "${{ github.event_name == 'release' && github.event.release.tag_name || github.event.inputs.version }}"
+
+permissions:
+  contents: read
+
+jobs:
+  generate-sbom:
+    runs-on: ubuntu-latest
+    outputs:
+      # Make env var available in re-usuable workflow (see actions/runner#2372)
+      project-version: ${{ env.PROJECT_VERSION }}
+    steps:
+      - name: Checkout repository at '${{ env.PROJECT_VERSION }}'
+        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
+        with:
+          fetch-depth: 0
+          ref: ${{ env.PROJECT_VERSION }}
+          persist-credentials: false
+
+      - name: Setup Java SDK
+        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
+        with:
+          java-version: ${{ env.JAVA_VERSION }}
+          distribution: ${{ env.JAVA_DISTRO }}
+
+      - name: Generate
+        run: |
+          mvn org.cyclonedx:cyclonedx-maven-plugin:${PLUGIN_VERSION}:${SBOM_TYPE} \
+              -DoutputFormat=json \
+              -DoutputDirectory=target \
+              -DoutputName=cyclonedx
+
+
+      - name: Upload
+        uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
+        with:
+          name: sbom
+          path: target/cyclonedx.json
+
+  # Store SBOM and metadata in a predefined format for otterdog to pick up
+  store-sbom-data:
+    needs: ['generate-sbom']
+    uses: eclipse-csi/workflows/.github/workflows/store-sbom-data.yml@main
+    with:
+      projectName: 'JGit'
+      projectVersion: ${{ needs.generate-sbom.outputs.project-version }}
+      bomArtifact: 'sbom'
+      bomFilename: 'cyclonedx.json'
+      parentProject: '6638fa7e-8518-4528-9419-e24f629b7e9f'
+
diff --git a/Documentation/config-options.md b/Documentation/config-options.md
index 4c74855..20c2b58 100644
--- a/Documentation/config-options.md
+++ b/Documentation/config-options.md
@@ -57,7 +57,7 @@
 | `core.symlinks` | Auto detect if filesystem supports symlinks| &#x2705; | If false, symbolic links are checked out as small plain files that contain the link text. |
 | ~~`core.trustFolderStat`~~ | `true` | &#x20DE; | __Deprecated__, use `core.trustStat` instead. If set to `true` translated to `core.trustStat=always`, if `false` translated to `core.trustStat=never`, see below. If both `core.trustFolderStat` and `core.trustStat` are configured then `trustStat` takes precedence and `trustFolderStat` is ignored. |
 | `core.trustLooseRefStat` | `inherit` | &#x20DE; | Whether to trust the file attributes of loose refs and its fan-out parent directory. See `core.trustStat` for possible values. If `inherit`, JGit will use the behavior configured in `trustStat`. |
-| `core.trustPackedRefsStat` | `inherit` | &#x20DE; | Whether to trust the file attributes of the packed-refs file. See `core.trustStat` for possible values. If `inherit`, JGit will use the behavior configured in `core.trustStat`. |
+| `core.trustPackedRefsStat` | `inherit` | &#x20DE; | Whether to trust the file attributes of the packed-refs file. See `core.trustStat` for possible values. If `inherit`, JGit will use the behavior configured in `core.trustStat`. __Note:__ since 6.10.2, this setting applies during both ref reads and ref updates, but previously only applied during reads.|
 | `core.trustTablesListStat` | `inherit` | &#x20DE; | Whether to trust the file attributes of the `tables.list` file used by the reftable ref storage backend to store the list of reftable filenames. See `core.trustStat` for possible values. If `inherit`, JGit will use the behavior configured in `core.trustStat`.  The reftable backend is used if `extensions.refStorage = reftable`. |
 | `core.trustLooseObjectStat` | `inherit` | &#x20DE; | Whether to trust the file attributes of the loose object file and its fan-out parent directory. See `core.trustStat` for possible values. If `inherit`, JGit will use the behavior configured in `core.trustStat`. |
 | `core.trustPackStat` | `inherit` | &#x20DE; | Whether to trust the file attributes of the `objects/pack` directory. See `core.trustStat` for possible values. If `inherit`, JGit will use the behavior configured in `core.trustStat`. |
diff --git a/MODULE.bazel b/MODULE.bazel
index 0b932b8..7ce6136 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -1,2 +1,97 @@
-# TODO(davido): Migrate all dependencies from WORKSPACE to MODULE.bazel
-# https://issues.gerritcodereview.com/issues/303819949
+module(name = "jgit")
+
+bazel_dep(name = "rules_java", version = "8.11.0")
+bazel_dep(name = "rules_jvm_external", version = "6.7")
+bazel_dep(name = "rbe_autoconfig")
+git_override(
+    module_name = "rbe_autoconfig",
+    commit = "71f39817c028949bd6d25f1806502bcd33028d14",
+    remote = "https://github.com/davido/rbe_autoconfig.git",
+)
+
+register_toolchains("//tools:error_prone_warnings_toolchain_java17_definition")
+
+register_toolchains("//tools:error_prone_warnings_toolchain_java21_definition")
+
+git_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
+
+git_repository(
+    name = "com_googlesource_gerrit_bazlets",
+    commit = "f9c119e45d9a241bee720b7fbd6c7fdbc952da5f",
+    remote = "https://gerrit.googlesource.com/bazlets",
+)
+
+BOUNCYCASTLE_VERSION = "1.83"
+
+BYTE_BUDDY_VERSION = "1.18.2"
+
+JETTY_VERSION = "12.1.5"
+
+JMH_VERSION = "1.37"
+
+JNA_VERSION = "5.18.1"
+
+SLF4J_VERSION = "2.0.17"
+
+SSHD_VERSION = "2.16.0"
+
+maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
+maven.install(
+    name = "jgit_deps",
+    artifacts = [
+        "args4j:args4j:2.37",
+        "com.google.code.gson:gson:2.13.2",
+        "com.google.errorprone:error_prone_type_annotations:2.38.0",
+        "com.googlecode.javaewah:JavaEWAH:1.2.3",
+        "com.jcraft:jsch:0.1.55",
+        "com.jcraft:jzlib:1.1.3",
+        "commons-codec:commons-codec:1.20.0",
+        "commons-io:commons-io:2.21.0",
+        "commons-logging:commons-logging:1.3.5",
+        "jakarta.servlet:jakarta.servlet-api:4.0.4",
+        "junit:junit:4.13.2",
+        "net.bytebuddy:byte-buddy-agent:" + BYTE_BUDDY_VERSION,
+        "net.bytebuddy:byte-buddy:" + BYTE_BUDDY_VERSION,
+        "net.java.dev.jna:jna-platform:" + JNA_VERSION,
+        "net.java.dev.jna:jna:" + JNA_VERSION,
+        "net.sf.jopt-simple:jopt-simple:5.0.4",
+        "org.apache.commons:commons-compress:1.28.0",
+        "org.apache.commons:commons-lang3:3.20.0",
+        "org.apache.commons:commons-math3:3.6.1",
+        "org.apache.httpcomponents:httpclient:4.5.14",
+        "org.apache.httpcomponents:httpcore:4.4.16",
+        "org.apache.sshd:sshd-osgi:" + SSHD_VERSION,
+        "org.apache.sshd:sshd-sftp:" + SSHD_VERSION,
+        "org.assertj:assertj-core:3.27.6",
+        "org.bouncycastle:bcpg-jdk18on:" + BOUNCYCASTLE_VERSION,
+        "org.bouncycastle:bcpkix-jdk18on:" + BOUNCYCASTLE_VERSION,
+        "org.bouncycastle:bcprov-jdk18on:" + BOUNCYCASTLE_VERSION,
+        "org.bouncycastle:bcutil-jdk18on:" + BOUNCYCASTLE_VERSION,
+        "org.eclipse.jetty:jetty-http:" + JETTY_VERSION,
+        "org.eclipse.jetty:jetty-io:" + JETTY_VERSION,
+        "org.eclipse.jetty:jetty-security:" + JETTY_VERSION,
+        "org.eclipse.jetty:jetty-server:" + JETTY_VERSION,
+        "org.eclipse.jetty:jetty-session:" + JETTY_VERSION,
+        "org.eclipse.jetty:jetty-util-ajax:" + JETTY_VERSION,
+        "org.eclipse.jetty:jetty-util:" + JETTY_VERSION,
+        "org.eclipse.jetty.ee8:jetty-ee8-nested:" + JETTY_VERSION,
+        "org.eclipse.jetty.ee8:jetty-ee8-security:" + JETTY_VERSION,
+        "org.eclipse.jetty.ee8:jetty-ee8-servlet:" + JETTY_VERSION,
+        "org.hamcrest:hamcrest:3.0",
+        "org.mockito:mockito-core:5.20.0",
+        "org.objenesis:objenesis:3.4",
+        "org.openjdk.jmh:jmh-core:" + JMH_VERSION,
+        "org.openjdk.jmh:jmh-generator-annprocess:" + JMH_VERSION,
+        "org.slf4j:slf4j-api:" + SLF4J_VERSION,
+        "org.slf4j:slf4j-simple:" + SLF4J_VERSION,
+        "org.tukaani:xz:1.11",
+    ],
+    duplicate_version_warning = "warn",
+    fail_on_missing_checksum = True,
+    fetch_sources = True,
+    repositories = [
+        "https://repo1.maven.org/maven2",
+    ],
+    strict_visibility = True,
+)
+use_repo(maven, "jgit_deps")
diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock
new file mode 100644
index 0000000..b6cdace
--- /dev/null
+++ b/MODULE.bazel.lock
@@ -0,0 +1,812 @@
+{
+  "lockFileVersion": 13,
+  "registryFileHashes": {
+    "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497",
+    "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2",
+    "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589",
+    "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0",
+    "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb",
+    "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915",
+    "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/source.json": "035b6f1911e17340db722bbc9158f830ee6d5dedba4cb3bcb9e25e590808a32c",
+    "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef",
+    "https://bcr.bazel.build/modules/apple_support/1.5.0/source.json": "eb98a7627c0bc486b57f598ad8da50f6625d974c8f723e9ea71bd39f709c9862",
+    "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8",
+    "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d",
+    "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a",
+    "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58",
+    "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d",
+    "https://bcr.bazel.build/modules/bazel_features/1.28.0/source.json": "16a3fc5b4483cb307643791f5a4b7365fa98d2e70da7c378cdbde55f0c0b32cf",
+    "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/source.json": "f121b43eeefc7c29efbd51b83d08631e2347297c95aac9764a701f2a6a2bb953",
+    "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84",
+    "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8",
+    "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4",
+    "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f",
+    "https://bcr.bazel.build/modules/googletest/1.14.0/source.json": "2478949479000fdd7de9a3d0107ba2c85bb5f961c3ecb1aa448f52549ce310b5",
+    "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075",
+    "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d",
+    "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5",
+    "https://bcr.bazel.build/modules/platforms/0.0.10/source.json": "f22828ff4cf021a6b577f1bf6341cb9dcd7965092a439f64fc1bb3b7a5ae4bd5",
+    "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee",
+    "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37",
+    "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615",
+    "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814",
+    "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d",
+    "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc",
+    "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7",
+    "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c",
+    "https://bcr.bazel.build/modules/protobuf/27.0/source.json": "1acf3d080c728d42f423fde5422fd0a1a24f44c15908124ce12363a253384193",
+    "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0",
+    "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858",
+    "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8",
+    "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5",
+    "https://bcr.bazel.build/modules/rules_cc/0.2.14/MODULE.bazel": "353c99ed148887ee89c54a17d4100ae7e7e436593d104b668476019023b58df8",
+    "https://bcr.bazel.build/modules/rules_cc/0.2.14/source.json": "55d0a4587c5592fad350f6e698530f4faf0e7dd15e69d43f8d87e220c78bea54",
+    "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74",
+    "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86",
+    "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6",
+    "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab",
+    "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe",
+    "https://bcr.bazel.build/modules/rules_java/7.6.5/MODULE.bazel": "481164be5e02e4cab6e77a36927683263be56b7e36fef918b458d7a8a1ebadb1",
+    "https://bcr.bazel.build/modules/rules_java/8.11.0/MODULE.bazel": "c3d280bc5ff1038dcb3bacb95d3f6b83da8dd27bba57820ec89ea4085da767ad",
+    "https://bcr.bazel.build/modules/rules_java/8.11.0/source.json": "302b52a39259a85aa06ca3addb9787864ca3e03b432a5f964ea68244397e7544",
+    "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7",
+    "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909",
+    "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036",
+    "https://bcr.bazel.build/modules/rules_jvm_external/6.7/MODULE.bazel": "e717beabc4d091ecb2c803c2d341b88590e9116b8bf7947915eeb33aab4f96dd",
+    "https://bcr.bazel.build/modules/rules_jvm_external/6.7/source.json": "5426f412d0a7fc6b611643376c7e4a82dec991491b9ce5cb1cfdd25fe2e92be4",
+    "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3",
+    "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5",
+    "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0",
+    "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d",
+    "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c",
+    "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb",
+    "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc",
+    "https://bcr.bazel.build/modules/rules_pkg/0.7.0/source.json": "c2557066e0c0342223ba592510ad3d812d4963b9024831f7f66fd0584dd8c66c",
+    "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06",
+    "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7",
+    "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73",
+    "https://bcr.bazel.build/modules/rules_proto/6.0.2/source.json": "17a2e195f56cb28d6bbf763e49973d13890487c6945311ed141e196fb660426d",
+    "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f",
+    "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7",
+    "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300",
+    "https://bcr.bazel.build/modules/rules_python/0.23.1/source.json": "a6d9965700e3bd75df4e19140c0e651851bb720d8b9eb280ecd1ee44b92d7646",
+    "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c",
+    "https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b",
+    "https://bcr.bazel.build/modules/rules_shell/0.3.0/source.json": "c55ed591aa5009401ddf80ded9762ac32c358d2517ee7820be981e2de9756cf3",
+    "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8",
+    "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c",
+    "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c",
+    "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43",
+    "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0",
+    "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27",
+    "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79",
+    "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d"
+  },
+  "selectedYankedVersions": {},
+  "moduleExtensions": {
+    "@@apple_support~//crosstool:setup.bzl%apple_cc_configure_extension": {
+      "general": {
+        "bzlTransitiveDigest": "PjIds3feoYE8SGbbIq2SFTZy3zmxeO2tQevJZNDo7iY=",
+        "usagesDigest": "+hz7IHWN6A1oVJJWNDB6yZRG+RYhF76wAYItpAeIUIg=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
+        "envVariables": {},
+        "generatedRepoSpecs": {
+          "local_config_apple_cc_toolchains": {
+            "bzlFile": "@@apple_support~//crosstool:setup.bzl",
+            "ruleClassName": "_apple_cc_autoconf_toolchains",
+            "attributes": {}
+          },
+          "local_config_apple_cc": {
+            "bzlFile": "@@apple_support~//crosstool:setup.bzl",
+            "ruleClassName": "_apple_cc_autoconf",
+            "attributes": {}
+          }
+        },
+        "recordedRepoMappingEntries": [
+          [
+            "apple_support~",
+            "bazel_tools",
+            "bazel_tools"
+          ]
+        ]
+      }
+    },
+    "@@platforms//host:extension.bzl%host_platform": {
+      "general": {
+        "bzlTransitiveDigest": "xelQcPZH8+tmuOHVjL9vDxMnnQNMlwj0SlvgoqBkm4U=",
+        "usagesDigest": "hgylFkgWSg0ulUwWZzEM1aIftlUnbmw2ynWLdEfHnZc=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
+        "envVariables": {},
+        "generatedRepoSpecs": {
+          "host_platform": {
+            "bzlFile": "@@platforms//host:extension.bzl",
+            "ruleClassName": "host_platform_repo",
+            "attributes": {}
+          }
+        },
+        "recordedRepoMappingEntries": []
+      }
+    },
+    "@@rules_kotlin~//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": {
+      "general": {
+        "bzlTransitiveDigest": "fus14IFJ/1LGWWGKPH/U18VnJCoMjfDt1ckahqCnM0A=",
+        "usagesDigest": "aJF6fLy82rR95Ff5CZPAqxNoFgOMLMN5ImfBS0nhnkg=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
+        "envVariables": {},
+        "generatedRepoSpecs": {
+          "com_github_jetbrains_kotlin_git": {
+            "bzlFile": "@@rules_kotlin~//src/main/starlark/core/repositories:compiler.bzl",
+            "ruleClassName": "kotlin_compiler_git_repository",
+            "attributes": {
+              "urls": [
+                "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip"
+              ],
+              "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88"
+            }
+          },
+          "com_github_jetbrains_kotlin": {
+            "bzlFile": "@@rules_kotlin~//src/main/starlark/core/repositories:compiler.bzl",
+            "ruleClassName": "kotlin_capabilities_repository",
+            "attributes": {
+              "git_repository_name": "com_github_jetbrains_kotlin_git",
+              "compiler_version": "1.9.23"
+            }
+          },
+          "com_github_google_ksp": {
+            "bzlFile": "@@rules_kotlin~//src/main/starlark/core/repositories:ksp.bzl",
+            "ruleClassName": "ksp_compiler_plugin_repository",
+            "attributes": {
+              "urls": [
+                "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip"
+              ],
+              "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d",
+              "strip_version": "1.9.23-1.0.20"
+            }
+          },
+          "com_github_pinterest_ktlint": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_file",
+            "attributes": {
+              "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985",
+              "urls": [
+                "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint"
+              ],
+              "executable": true
+            }
+          },
+          "rules_android": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806",
+              "strip_prefix": "rules_android-0.1.1",
+              "urls": [
+                "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip"
+              ]
+            }
+          }
+        },
+        "recordedRepoMappingEntries": [
+          [
+            "rules_kotlin~",
+            "bazel_tools",
+            "bazel_tools"
+          ]
+        ]
+      }
+    },
+    "@@rules_python~//python/extensions:python.bzl%python": {
+      "general": {
+        "bzlTransitiveDigest": "l7SEKGzdShn1GH45yoD3IEBi5SxT+5WsAq/OlHiiuiw=",
+        "usagesDigest": "YiLsNY5r63HmlgMVyESsQgfKVj6Ky/w9Zozdju6rXl4=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
+        "envVariables": {},
+        "generatedRepoSpecs": {
+          "python_3_11_aarch64-apple-darwin": {
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
+            "ruleClassName": "python_repository",
+            "attributes": {
+              "sha256": "4918cdf1cab742a90f85318f88b8122aeaa2d04705803c7b6e78e81a3dd40f80",
+              "patches": [],
+              "platform": "aarch64-apple-darwin",
+              "python_version": "3.11.1",
+              "release_filename": "20230116/cpython-3.11.1+20230116-aarch64-apple-darwin-install_only.tar.gz",
+              "urls": [
+                "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.11.1+20230116-aarch64-apple-darwin-install_only.tar.gz"
+              ],
+              "distutils_content": "",
+              "strip_prefix": "python",
+              "ignore_root_user_error": false
+            }
+          },
+          "python_3_11_aarch64-unknown-linux-gnu": {
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
+            "ruleClassName": "python_repository",
+            "attributes": {
+              "sha256": "debf15783bdcb5530504f533d33fda75a7b905cec5361ae8f33da5ba6599f8b4",
+              "patches": [],
+              "platform": "aarch64-unknown-linux-gnu",
+              "python_version": "3.11.1",
+              "release_filename": "20230116/cpython-3.11.1+20230116-aarch64-unknown-linux-gnu-install_only.tar.gz",
+              "urls": [
+                "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.11.1+20230116-aarch64-unknown-linux-gnu-install_only.tar.gz"
+              ],
+              "distutils_content": "",
+              "strip_prefix": "python",
+              "ignore_root_user_error": false
+            }
+          },
+          "python_3_11_x86_64-apple-darwin": {
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
+            "ruleClassName": "python_repository",
+            "attributes": {
+              "sha256": "20a4203d069dc9b710f70b09e7da2ce6f473d6b1110f9535fb6f4c469ed54733",
+              "patches": [],
+              "platform": "x86_64-apple-darwin",
+              "python_version": "3.11.1",
+              "release_filename": "20230116/cpython-3.11.1+20230116-x86_64-apple-darwin-install_only.tar.gz",
+              "urls": [
+                "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.11.1+20230116-x86_64-apple-darwin-install_only.tar.gz"
+              ],
+              "distutils_content": "",
+              "strip_prefix": "python",
+              "ignore_root_user_error": false
+            }
+          },
+          "python_3_11_x86_64-pc-windows-msvc": {
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
+            "ruleClassName": "python_repository",
+            "attributes": {
+              "sha256": "edc08979cb0666a597466176511529c049a6f0bba8adf70df441708f766de5bf",
+              "patches": [],
+              "platform": "x86_64-pc-windows-msvc",
+              "python_version": "3.11.1",
+              "release_filename": "20230116/cpython-3.11.1+20230116-x86_64-pc-windows-msvc-shared-install_only.tar.gz",
+              "urls": [
+                "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.11.1+20230116-x86_64-pc-windows-msvc-shared-install_only.tar.gz"
+              ],
+              "distutils_content": "",
+              "strip_prefix": "python",
+              "ignore_root_user_error": false
+            }
+          },
+          "python_3_11_x86_64-unknown-linux-gnu": {
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
+            "ruleClassName": "python_repository",
+            "attributes": {
+              "sha256": "02a551fefab3750effd0e156c25446547c238688a32fabde2995c941c03a6423",
+              "patches": [],
+              "platform": "x86_64-unknown-linux-gnu",
+              "python_version": "3.11.1",
+              "release_filename": "20230116/cpython-3.11.1+20230116-x86_64-unknown-linux-gnu-install_only.tar.gz",
+              "urls": [
+                "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.11.1+20230116-x86_64-unknown-linux-gnu-install_only.tar.gz"
+              ],
+              "distutils_content": "",
+              "strip_prefix": "python",
+              "ignore_root_user_error": false
+            }
+          },
+          "python_3_11": {
+            "bzlFile": "@@rules_python~//python/private:toolchains_repo.bzl",
+            "ruleClassName": "toolchain_aliases",
+            "attributes": {
+              "python_version": "3.11.1",
+              "user_repository_name": "python_3_11"
+            }
+          },
+          "pythons_hub": {
+            "bzlFile": "@@rules_python~//python/extensions/private:pythons_hub.bzl",
+            "ruleClassName": "hub_repo",
+            "attributes": {
+              "toolchain_prefixes": [
+                "_0000_python_3_11_"
+              ],
+              "toolchain_python_versions": [
+                "3.11"
+              ],
+              "toolchain_set_python_version_constraints": [
+                "False"
+              ],
+              "toolchain_user_repository_names": [
+                "python_3_11"
+              ]
+            }
+          },
+          "python_aliases": {
+            "bzlFile": "@@rules_python~//python/private:toolchains_repo.bzl",
+            "ruleClassName": "multi_toolchain_aliases",
+            "attributes": {
+              "python_versions": {
+                "3.11": "python_3_11"
+              }
+            }
+          }
+        },
+        "recordedRepoMappingEntries": [
+          [
+            "rules_python~",
+            "bazel_tools",
+            "bazel_tools"
+          ]
+        ]
+      }
+    },
+    "@@rules_python~//python/extensions/private:internal_deps.bzl%internal_deps": {
+      "general": {
+        "bzlTransitiveDigest": "HZia2x2zClxBbkyhPtNWVBPeKOTV8j7xJuwILyef0YY=",
+        "usagesDigest": "9RSsqSb2/36w50hPv3LjfktbwXR/5SiHNcdkp4m2BVA=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
+        "envVariables": {},
+        "generatedRepoSpecs": {
+          "pypi__build": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/03/97/f58c723ff036a8d8b4d3115377c0a37ed05c1f68dd9a0d66dab5e82c5c1c/build-0.9.0-py3-none-any.whl",
+              "sha256": "38a7a2b7a0bdc61a42a0a67509d88c71ecfc37b393baba770fae34e20929ff69",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:defs.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude in /python/pip_install/tools/bazel.py\n        # to avoid non-determinism following pip install's behavior.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/* *\",\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__click": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/76/0a/b6c5f311e32aeb3b406e03c079ade51e905ea630fc19d1262a46249c1c86/click-8.0.1-py3-none-any.whl",
+              "sha256": "fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:defs.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude in /python/pip_install/tools/bazel.py\n        # to avoid non-determinism following pip install's behavior.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/* *\",\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__colorama": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl",
+              "sha256": "4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:defs.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude in /python/pip_install/tools/bazel.py\n        # to avoid non-determinism following pip install's behavior.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/* *\",\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__installer": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/e5/ca/1172b6638d52f2d6caa2dd262ec4c811ba59eee96d54a7701930726bce18/installer-0.7.0-py3-none-any.whl",
+              "sha256": "05d1933f0a5ba7d8d6296bb6d5018e7c94fa473ceb10cf198a92ccea19c27b53",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:defs.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude in /python/pip_install/tools/bazel.py\n        # to avoid non-determinism following pip install's behavior.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/* *\",\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__packaging": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/8f/7b/42582927d281d7cb035609cd3a543ffac89b74f3f4ee8e1c50914bcb57eb/packaging-22.0-py3-none-any.whl",
+              "sha256": "957e2148ba0e1a3b282772e791ef1d8083648bc131c8ab0c1feba110ce1146c3",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:defs.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude in /python/pip_install/tools/bazel.py\n        # to avoid non-determinism following pip install's behavior.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/* *\",\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__pep517": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/ee/2f/ef63e64e9429111e73d3d6cbee80591672d16f2725e648ebc52096f3d323/pep517-0.13.0-py3-none-any.whl",
+              "sha256": "4ba4446d80aed5b5eac6509ade100bff3e7943a8489de249654a5ae9b33ee35b",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:defs.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude in /python/pip_install/tools/bazel.py\n        # to avoid non-determinism following pip install's behavior.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/* *\",\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__pip": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/09/bd/2410905c76ee14c62baf69e3f4aa780226c1bbfc9485731ad018e35b0cb5/pip-22.3.1-py3-none-any.whl",
+              "sha256": "908c78e6bc29b676ede1c4d57981d490cb892eb45cd8c214ab6298125119e077",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:defs.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude in /python/pip_install/tools/bazel.py\n        # to avoid non-determinism following pip install's behavior.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/* *\",\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__pip_tools": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/5e/e8/f6d7d1847c7351048da870417724ace5c4506e816b38db02f4d7c675c189/pip_tools-6.12.1-py3-none-any.whl",
+              "sha256": "f0c0c0ec57b58250afce458e2e6058b1f30a4263db895b7d72fd6311bf1dc6f7",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:defs.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude in /python/pip_install/tools/bazel.py\n        # to avoid non-determinism following pip install's behavior.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/* *\",\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__setuptools": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/7c/5b/3d92b9f0f7ca1645cba48c080b54fe7d8b1033a4e5720091d1631c4266db/setuptools-60.10.0-py3-none-any.whl",
+              "sha256": "782ef48d58982ddb49920c11a0c5c9c0b02e7d7d1c2ad0aa44e1a1e133051c96",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:defs.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude in /python/pip_install/tools/bazel.py\n        # to avoid non-determinism following pip install's behavior.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/* *\",\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__tomli": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl",
+              "sha256": "939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:defs.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude in /python/pip_install/tools/bazel.py\n        # to avoid non-determinism following pip install's behavior.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/* *\",\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__wheel": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/bd/7c/d38a0b30ce22fc26ed7dbc087c6d00851fb3395e9d0dac40bec1f905030c/wheel-0.38.4-py3-none-any.whl",
+              "sha256": "b60533f3f5d530e971d6737ca6d58681ee434818fab630c83a734bb10c083ce8",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:defs.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude in /python/pip_install/tools/bazel.py\n        # to avoid non-determinism following pip install's behavior.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/* *\",\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__importlib_metadata": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/d7/31/74dcb59a601b95fce3b0334e8fc9db758f78e43075f22aeb3677dfb19f4c/importlib_metadata-1.4.0-py2.py3-none-any.whl",
+              "sha256": "bdd9b7c397c273bcc9a11d6629a38487cd07154fa255a467bf704cd2c258e359",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:defs.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude in /python/pip_install/tools/bazel.py\n        # to avoid non-determinism following pip install's behavior.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/* *\",\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__zipp": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/f4/50/cc72c5bcd48f6e98219fc4a88a5227e9e28b81637a99c49feba1d51f4d50/zipp-1.0.0-py2.py3-none-any.whl",
+              "sha256": "8dda78f06bd1674bd8720df8a50bb47b6e1233c503a4eed8e7810686bde37656",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:defs.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude in /python/pip_install/tools/bazel.py\n        # to avoid non-determinism following pip install's behavior.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/* *\",\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__more_itertools": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/bd/3f/c4b3dbd315e248f84c388bd4a72b131a29f123ecacc37ffb2b3834546e42/more_itertools-8.13.0-py3-none-any.whl",
+              "sha256": "c5122bffc5f104d37c1626b8615b511f3427aa5389b94d61e5ef8236bfbc3ddb",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:defs.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude in /python/pip_install/tools/bazel.py\n        # to avoid non-determinism following pip install's behavior.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/* *\",\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__coverage_cp38_aarch64-apple-darwin": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "build_file_content": "\nfilegroup(\n    name = \"coverage\",\n    srcs = [\"coverage/__main__.py\"],\n    data = glob([\"coverage/*.py\", \"coverage/**/*.py\", \"coverage/*.so\"]),\n    visibility = [\"//visibility:public\"],\n)\n    ",
+              "patch_args": [
+                "-p1"
+              ],
+              "patches": [
+                "@@rules_python~//python/private:coverage.patch"
+              ],
+              "sha256": "3d376df58cc111dc8e21e3b6e24606b5bb5dee6024f46a5abca99124b2229ef5",
+              "type": "zip",
+              "urls": [
+                "https://files.pythonhosted.org/packages/28/d7/9a8de57d87f4bbc6f9a6a5ded1eaac88a89bf71369bb935dac3c0cf2893e/coverage-7.2.7-cp38-cp38-macosx_11_0_arm64.whl"
+              ]
+            }
+          },
+          "pypi__coverage_cp38_aarch64-unknown-linux-gnu": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "build_file_content": "\nfilegroup(\n    name = \"coverage\",\n    srcs = [\"coverage/__main__.py\"],\n    data = glob([\"coverage/*.py\", \"coverage/**/*.py\", \"coverage/*.so\"]),\n    visibility = [\"//visibility:public\"],\n)\n    ",
+              "patch_args": [
+                "-p1"
+              ],
+              "patches": [
+                "@@rules_python~//python/private:coverage.patch"
+              ],
+              "sha256": "5e330fc79bd7207e46c7d7fd2bb4af2963f5f635703925543a70b99574b0fea9",
+              "type": "zip",
+              "urls": [
+                "https://files.pythonhosted.org/packages/c8/e4/e6182e4697665fb594a7f4e4f27cb3a4dd00c2e3d35c5c706765de8c7866/coverage-7.2.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"
+              ]
+            }
+          },
+          "pypi__coverage_cp38_x86_64-apple-darwin": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "build_file_content": "\nfilegroup(\n    name = \"coverage\",\n    srcs = [\"coverage/__main__.py\"],\n    data = glob([\"coverage/*.py\", \"coverage/**/*.py\", \"coverage/*.so\"]),\n    visibility = [\"//visibility:public\"],\n)\n    ",
+              "patch_args": [
+                "-p1"
+              ],
+              "patches": [
+                "@@rules_python~//python/private:coverage.patch"
+              ],
+              "sha256": "54b896376ab563bd38453cecb813c295cf347cf5906e8b41d340b0321a5433e5",
+              "type": "zip",
+              "urls": [
+                "https://files.pythonhosted.org/packages/c6/fc/be19131010930a6cf271da48202c8cc1d3f971f68c02fb2d3a78247f43dc/coverage-7.2.7-cp38-cp38-macosx_10_9_x86_64.whl"
+              ]
+            }
+          },
+          "pypi__coverage_cp38_x86_64-unknown-linux-gnu": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "build_file_content": "\nfilegroup(\n    name = \"coverage\",\n    srcs = [\"coverage/__main__.py\"],\n    data = glob([\"coverage/*.py\", \"coverage/**/*.py\", \"coverage/*.so\"]),\n    visibility = [\"//visibility:public\"],\n)\n    ",
+              "patch_args": [
+                "-p1"
+              ],
+              "patches": [
+                "@@rules_python~//python/private:coverage.patch"
+              ],
+              "sha256": "8d13c64ee2d33eccf7437961b6ea7ad8673e2be040b4f7fd4fd4d4d28d9ccb1e",
+              "type": "zip",
+              "urls": [
+                "https://files.pythonhosted.org/packages/44/55/49f65ccdd4dfd6d5528e966b28c37caec64170c725af32ab312889d2f857/coverage-7.2.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+              ]
+            }
+          },
+          "pypi__coverage_cp39_aarch64-apple-darwin": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "build_file_content": "\nfilegroup(\n    name = \"coverage\",\n    srcs = [\"coverage/__main__.py\"],\n    data = glob([\"coverage/*.py\", \"coverage/**/*.py\", \"coverage/*.so\"]),\n    visibility = [\"//visibility:public\"],\n)\n    ",
+              "patch_args": [
+                "-p1"
+              ],
+              "patches": [
+                "@@rules_python~//python/private:coverage.patch"
+              ],
+              "sha256": "06fb182e69f33f6cd1d39a6c597294cff3143554b64b9825d1dc69d18cc2fff2",
+              "type": "zip",
+              "urls": [
+                "https://files.pythonhosted.org/packages/ca/0c/3dfeeb1006c44b911ee0ed915350db30325d01808525ae7cc8d57643a2ce/coverage-7.2.7-cp39-cp39-macosx_11_0_arm64.whl"
+              ]
+            }
+          },
+          "pypi__coverage_cp39_aarch64-unknown-linux-gnu": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "build_file_content": "\nfilegroup(\n    name = \"coverage\",\n    srcs = [\"coverage/__main__.py\"],\n    data = glob([\"coverage/*.py\", \"coverage/**/*.py\", \"coverage/*.so\"]),\n    visibility = [\"//visibility:public\"],\n)\n    ",
+              "patch_args": [
+                "-p1"
+              ],
+              "patches": [
+                "@@rules_python~//python/private:coverage.patch"
+              ],
+              "sha256": "201e7389591af40950a6480bd9edfa8ed04346ff80002cec1a66cac4549c1ad7",
+              "type": "zip",
+              "urls": [
+                "https://files.pythonhosted.org/packages/61/af/5964b8d7d9a5c767785644d9a5a63cacba9a9c45cc42ba06d25895ec87be/coverage-7.2.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"
+              ]
+            }
+          },
+          "pypi__coverage_cp39_x86_64-apple-darwin": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "build_file_content": "\nfilegroup(\n    name = \"coverage\",\n    srcs = [\"coverage/__main__.py\"],\n    data = glob([\"coverage/*.py\", \"coverage/**/*.py\", \"coverage/*.so\"]),\n    visibility = [\"//visibility:public\"],\n)\n    ",
+              "patch_args": [
+                "-p1"
+              ],
+              "patches": [
+                "@@rules_python~//python/private:coverage.patch"
+              ],
+              "sha256": "537891ae8ce59ef63d0123f7ac9e2ae0fc8b72c7ccbe5296fec45fd68967b6c9",
+              "type": "zip",
+              "urls": [
+                "https://files.pythonhosted.org/packages/88/da/495944ebf0ad246235a6bd523810d9f81981f9b81c6059ba1f56e943abe0/coverage-7.2.7-cp39-cp39-macosx_10_9_x86_64.whl"
+              ]
+            }
+          },
+          "pypi__coverage_cp39_x86_64-unknown-linux-gnu": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "build_file_content": "\nfilegroup(\n    name = \"coverage\",\n    srcs = [\"coverage/__main__.py\"],\n    data = glob([\"coverage/*.py\", \"coverage/**/*.py\", \"coverage/*.so\"]),\n    visibility = [\"//visibility:public\"],\n)\n    ",
+              "patch_args": [
+                "-p1"
+              ],
+              "patches": [
+                "@@rules_python~//python/private:coverage.patch"
+              ],
+              "sha256": "6f48351d66575f535669306aa7d6d6f71bc43372473b54a832222803eb956fd1",
+              "type": "zip",
+              "urls": [
+                "https://files.pythonhosted.org/packages/fe/57/e4f8ad64d84ca9e759d783a052795f62a9f9111585e46068845b1cb52c2b/coverage-7.2.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+              ]
+            }
+          },
+          "pypi__coverage_cp310_aarch64-apple-darwin": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "build_file_content": "\nfilegroup(\n    name = \"coverage\",\n    srcs = [\"coverage/__main__.py\"],\n    data = glob([\"coverage/*.py\", \"coverage/**/*.py\", \"coverage/*.so\"]),\n    visibility = [\"//visibility:public\"],\n)\n    ",
+              "patch_args": [
+                "-p1"
+              ],
+              "patches": [
+                "@@rules_python~//python/private:coverage.patch"
+              ],
+              "sha256": "6d040ef7c9859bb11dfeb056ff5b3872436e3b5e401817d87a31e1750b9ae2fb",
+              "type": "zip",
+              "urls": [
+                "https://files.pythonhosted.org/packages/3d/80/7060a445e1d2c9744b683dc935248613355657809d6c6b2716cdf4ca4766/coverage-7.2.7-cp310-cp310-macosx_11_0_arm64.whl"
+              ]
+            }
+          },
+          "pypi__coverage_cp310_aarch64-unknown-linux-gnu": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "build_file_content": "\nfilegroup(\n    name = \"coverage\",\n    srcs = [\"coverage/__main__.py\"],\n    data = glob([\"coverage/*.py\", \"coverage/**/*.py\", \"coverage/*.so\"]),\n    visibility = [\"//visibility:public\"],\n)\n    ",
+              "patch_args": [
+                "-p1"
+              ],
+              "patches": [
+                "@@rules_python~//python/private:coverage.patch"
+              ],
+              "sha256": "ba90a9563ba44a72fda2e85302c3abc71c5589cea608ca16c22b9804262aaeb6",
+              "type": "zip",
+              "urls": [
+                "https://files.pythonhosted.org/packages/b8/9d/926fce7e03dbfc653104c2d981c0fa71f0572a9ebd344d24c573bd6f7c4f/coverage-7.2.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"
+              ]
+            }
+          },
+          "pypi__coverage_cp310_x86_64-apple-darwin": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "build_file_content": "\nfilegroup(\n    name = \"coverage\",\n    srcs = [\"coverage/__main__.py\"],\n    data = glob([\"coverage/*.py\", \"coverage/**/*.py\", \"coverage/*.so\"]),\n    visibility = [\"//visibility:public\"],\n)\n    ",
+              "patch_args": [
+                "-p1"
+              ],
+              "patches": [
+                "@@rules_python~//python/private:coverage.patch"
+              ],
+              "sha256": "d39b5b4f2a66ccae8b7263ac3c8170994b65266797fb96cbbfd3fb5b23921db8",
+              "type": "zip",
+              "urls": [
+                "https://files.pythonhosted.org/packages/01/24/be01e62a7bce89bcffe04729c540382caa5a06bee45ae42136c93e2499f5/coverage-7.2.7-cp310-cp310-macosx_10_9_x86_64.whl"
+              ]
+            }
+          },
+          "pypi__coverage_cp310_x86_64-unknown-linux-gnu": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "build_file_content": "\nfilegroup(\n    name = \"coverage\",\n    srcs = [\"coverage/__main__.py\"],\n    data = glob([\"coverage/*.py\", \"coverage/**/*.py\", \"coverage/*.so\"]),\n    visibility = [\"//visibility:public\"],\n)\n    ",
+              "patch_args": [
+                "-p1"
+              ],
+              "patches": [
+                "@@rules_python~//python/private:coverage.patch"
+              ],
+              "sha256": "31563e97dae5598556600466ad9beea39fb04e0229e61c12eaa206e0aa202063",
+              "type": "zip",
+              "urls": [
+                "https://files.pythonhosted.org/packages/b4/bd/1b2331e3a04f4cc9b7b332b1dd0f3a1261dfc4114f8479bebfcc2afee9e8/coverage-7.2.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+              ]
+            }
+          },
+          "pypi__coverage_cp311_aarch64-apple-darwin": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "build_file_content": "\nfilegroup(\n    name = \"coverage\",\n    srcs = [\"coverage/__main__.py\"],\n    data = glob([\"coverage/*.py\", \"coverage/**/*.py\", \"coverage/*.so\"]),\n    visibility = [\"//visibility:public\"],\n)\n    ",
+              "patch_args": [
+                "-p1"
+              ],
+              "patches": [
+                "@@rules_python~//python/private:coverage.patch"
+              ],
+              "sha256": "5baa06420f837184130752b7c5ea0808762083bf3487b5038d68b012e5937dbe",
+              "type": "zip",
+              "urls": [
+                "https://files.pythonhosted.org/packages/67/d7/cd8fe689b5743fffac516597a1222834c42b80686b99f5b44ef43ccc2a43/coverage-7.2.7-cp311-cp311-macosx_11_0_arm64.whl"
+              ]
+            }
+          },
+          "pypi__coverage_cp311_aarch64-unknown-linux-gnu": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "build_file_content": "\nfilegroup(\n    name = \"coverage\",\n    srcs = [\"coverage/__main__.py\"],\n    data = glob([\"coverage/*.py\", \"coverage/**/*.py\", \"coverage/*.so\"]),\n    visibility = [\"//visibility:public\"],\n)\n    ",
+              "patch_args": [
+                "-p1"
+              ],
+              "patches": [
+                "@@rules_python~//python/private:coverage.patch"
+              ],
+              "sha256": "fdec9e8cbf13a5bf63290fc6013d216a4c7232efb51548594ca3631a7f13c3a3",
+              "type": "zip",
+              "urls": [
+                "https://files.pythonhosted.org/packages/8c/95/16eed713202406ca0a37f8ac259bbf144c9d24f9b8097a8e6ead61da2dbb/coverage-7.2.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"
+              ]
+            }
+          },
+          "pypi__coverage_cp311_x86_64-apple-darwin": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "build_file_content": "\nfilegroup(\n    name = \"coverage\",\n    srcs = [\"coverage/__main__.py\"],\n    data = glob([\"coverage/*.py\", \"coverage/**/*.py\", \"coverage/*.so\"]),\n    visibility = [\"//visibility:public\"],\n)\n    ",
+              "patch_args": [
+                "-p1"
+              ],
+              "patches": [
+                "@@rules_python~//python/private:coverage.patch"
+              ],
+              "sha256": "06a9a2be0b5b576c3f18f1a241f0473575c4a26021b52b2a85263a00f034d51f",
+              "type": "zip",
+              "urls": [
+                "https://files.pythonhosted.org/packages/c6/fa/529f55c9a1029c840bcc9109d5a15ff00478b7ff550a1ae361f8745f8ad5/coverage-7.2.7-cp311-cp311-macosx_10_9_x86_64.whl"
+              ]
+            }
+          },
+          "pypi__coverage_cp311_x86_64-unknown-linux-gnu": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "build_file_content": "\nfilegroup(\n    name = \"coverage\",\n    srcs = [\"coverage/__main__.py\"],\n    data = glob([\"coverage/*.py\", \"coverage/**/*.py\", \"coverage/*.so\"]),\n    visibility = [\"//visibility:public\"],\n)\n    ",
+              "patch_args": [
+                "-p1"
+              ],
+              "patches": [
+                "@@rules_python~//python/private:coverage.patch"
+              ],
+              "sha256": "63426706118b7f5cf6bb6c895dc215d8a418d5952544042c8a2d9fe87fcf09cb",
+              "type": "zip",
+              "urls": [
+                "https://files.pythonhosted.org/packages/a7/cd/3ce94ad9d407a052dc2a74fbeb1c7947f442155b28264eb467ee78dea812/coverage-7.2.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+              ]
+            }
+          }
+        },
+        "recordedRepoMappingEntries": [
+          [
+            "rules_python~",
+            "bazel_skylib",
+            "bazel_skylib~"
+          ],
+          [
+            "rules_python~",
+            "bazel_tools",
+            "bazel_tools"
+          ],
+          [
+            "rules_python~",
+            "rules_python",
+            "rules_python~"
+          ]
+        ]
+      }
+    }
+  }
+}
diff --git a/WORKSPACE b/WORKSPACE
index 737109d..6ba4a02 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -1,331 +1,2 @@
-workspace(name = "jgit")
-
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-load("//tools:bazlets.bzl", "load_bazlets")
-
-load_bazlets(commit = "f9c119e45d9a241bee720b7fbd6c7fdbc952da5f")
-
-load(
-    "@com_googlesource_gerrit_bazlets//tools:maven_jar.bzl",
-    "maven_jar",
-)
-
-http_archive(
-    name = "rules_java",
-    sha256 = "4da3761f6855ad916568e2bfe86213ba6d2637f56b8360538a7fb6125abf6518",
-    urls = [
-        "https://github.com/bazelbuild/rules_java/releases/download/7.5.0/rules_java-7.5.0.tar.gz",
-    ],
-)
-
-load("@rules_java//java:repositories.bzl", "rules_java_dependencies", "rules_java_toolchains")
-
-rules_java_dependencies()
-
-http_archive(
-    name = "ubuntu2204_jdk17",
-    sha256 = "8ea82b81c9707e535ff93ef5349d11e55b2a23c62bcc3b0faaec052144aed87d",
-    strip_prefix = "rbe_autoconfig-5.1.0",
-    urls = [
-        "https://gerrit-bazel.storage.googleapis.com/rbe_autoconfig/v5.1.0.tar.gz",
-        "https://github.com/davido/rbe_autoconfig/releases/download/v5.1.0/v5.1.0.tar.gz",
-    ],
-)
-
-register_toolchains("//tools:error_prone_warnings_toolchain_java17_definition")
-
-register_toolchains("//tools:error_prone_warnings_toolchain_java21_definition")
-
-# Order of registering toolchains matters. rules_java toolchains take precedence
-# over the custom toolchains, so the default jdk21 toolchain gets picked
-# (one without custom package_config). That's why the `rules_java_toolchains()`
-# must be called after the `register_toolchain()` invocation.
-rules_java_toolchains()
-
-JMH_VERS = "1.37"
-
-maven_jar(
-    name = "jmh-core",
-    artifact = "org.openjdk.jmh:jmh-core:" + JMH_VERS,
-    attach_source = False,
-    sha1 = "896f27e49105b35ea1964319c83d12082e7a79ef",
-)
-
-maven_jar(
-    name = "jmh-annotations",
-    artifact = "org.openjdk.jmh:jmh-generator-annprocess:" + JMH_VERS,
-    attach_source = False,
-    sha1 = "da93888682df163144edf9b13d2b78e54166063a",
-)
-
-maven_jar(
-    name = "jopt",
-    artifact = "net.sf.jopt-simple:jopt-simple:5.0.4",
-    attach_source = False,
-    sha1 = "4fdac2fbe92dfad86aa6e9301736f6b4342a3f5c",
-)
-
-maven_jar(
-    name = "math3",
-    artifact = "org.apache.commons:commons-math3:3.6.1",
-    attach_source = False,
-    sha1 = "e4ba98f1d4b3c80ec46392f25e094a6a2e58fcbf",
-)
-
-maven_jar(
-    name = "jsch",
-    artifact = "com.jcraft:jsch:0.1.55",
-    sha1 = "bbd40e5aa7aa3cfad5db34965456cee738a42a50",
-)
-
-maven_jar(
-    name = "jzlib",
-    artifact = "com.jcraft:jzlib:1.1.3",
-    sha1 = "c01428efa717624f7aabf4df319939dda9646b2d",
-)
-
-maven_jar(
-    name = "javaewah",
-    artifact = "com.googlecode.javaewah:JavaEWAH:1.2.3",
-    sha1 = "13a27c856e0c8808cee9a64032c58eee11c3adc9",
-)
-
-maven_jar(
-    name = "httpclient",
-    artifact = "org.apache.httpcomponents:httpclient:4.5.14",
-    sha1 = "1194890e6f56ec29177673f2f12d0b8e627dec98",
-)
-
-maven_jar(
-    name = "httpcore",
-    artifact = "org.apache.httpcomponents:httpcore:4.4.16",
-    sha1 = "51cf043c87253c9f58b539c9f7e44c8894223850",
-)
-
-SSHD_VERS = "2.16.0"
-
-maven_jar(
-    name = "sshd-osgi",
-    artifact = "org.apache.sshd:sshd-osgi:" + SSHD_VERS,
-    sha1 = "87cab2aaa6e06c5d48d746e90f0b3635f8c06419",
-)
-
-maven_jar(
-    name = "sshd-sftp",
-    artifact = "org.apache.sshd:sshd-sftp:" + SSHD_VERS,
-    sha1 = "09d9e7024535fb4a3f74367ba7e0a2f5093af638",
-)
-
-JNA_VERS = "5.18.1"
-
-maven_jar(
-    name = "jna",
-    artifact = "net.java.dev.jna:jna:" + JNA_VERS,
-    sha1 = "b27ba04287cc4abe769642fe8318d39fc89bf937",
-)
-
-maven_jar(
-    name = "jna-platform",
-    artifact = "net.java.dev.jna:jna-platform:" + JNA_VERS,
-    sha1 = "dd817f391efc492041c9ae91127527c13750a789",
-)
-
-maven_jar(
-    name = "commons-codec",
-    artifact = "commons-codec:commons-codec:1.19.0",
-    sha1 = "8c0dbe3ae883fceda9b50a6c76e745e548073388",
-)
-
-maven_jar(
-    name = "commons-logging",
-    artifact = "commons-logging:commons-logging:1.3.5",
-    sha1 = "a3fcc5d3c29b2b03433aa2d2f2d2c1b1638924a1",
-)
-
-SLF4J_VERS = "2.0.17"
-
-maven_jar(
-    name = "log-api",
-    artifact = "org.slf4j:slf4j-api:" + SLF4J_VERS,
-    sha1 = "d9e58ac9c7779ba3bf8142aff6c830617a7fe60f",
-)
-
-maven_jar(
-    name = "slf4j-simple",
-    artifact = "org.slf4j:slf4j-simple:" + SLF4J_VERS,
-    sha1 = "9872a3fd794ffe7b18d17747926a64d61526ca96",
-)
-
-maven_jar(
-    name = "servlet-api",
-    artifact = "jakarta.servlet:jakarta.servlet-api:4.0.4",
-    sha1 = "b8a1142e04838fe54194049c6e7a18dae8f9b960",
-)
-
-maven_jar(
-    name = "commons-compress",
-    artifact = "org.apache.commons:commons-compress:1.28.0",
-    sha1 = "e482f2c7a88dac3c497e96aa420b6a769f59c8d7",
-)
-
-maven_jar(
-    name = "commons-lang3",
-    artifact = "org.apache.commons:commons-lang3:3.19.0",
-    sha1 = "d6524b169a6574cd253760c472d419b47bfd37e6",
-)
-
-maven_jar(
-    name = "commons-io",
-    artifact = "commons-io:commons-io:2.20.0",
-    sha1 = "36f3474daec2849c149e877614e7f979b2082cd2",
-)
-
-maven_jar(
-    name = "tukaani-xz",
-    artifact = "org.tukaani:xz:1.10",
-    sha1 = "1be8166f89e035a56c6bfc67dbc423996fe577e2",
-)
-
-maven_jar(
-    name = "args4j",
-    artifact = "args4j:args4j:2.37",
-    sha1 = "244f60c057d72a785227c0562d3560f42a7ea54b",
-)
-
-maven_jar(
-    name = "junit",
-    artifact = "junit:junit:4.13.2",
-    sha1 = "8ac9e16d933b6fb43bc7f576336b8f4d7eb5ba12",
-)
-
-maven_jar(
-    name = "hamcrest",
-    artifact = "org.hamcrest:hamcrest:3.0",
-    sha1 = "8fd9b78a8e6a6510a078a9e30e9e86a6035cfaf7",
-)
-
-maven_jar(
-    name = "mockito",
-    artifact = "org.mockito:mockito-core:5.20.0",
-    sha1 = "a32f446f38acf636363c5693db6498047731b9e0",
-)
-
-maven_jar(
-    name = "assertj-core",
-    artifact = "org.assertj:assertj-core:3.27.6",
-    sha1 = "8f34ccd6808899ad1d0aac6a770b73191f2f2a53",
-)
-
-BYTE_BUDDY_VERSION = "1.17.8"
-
-maven_jar(
-    name = "bytebuddy",
-    artifact = "net.bytebuddy:byte-buddy:" + BYTE_BUDDY_VERSION,
-    sha1 = "af5735f63d00ca47a9375fae5c7471a36331c6ed",
-)
-
-maven_jar(
-    name = "bytebuddy-agent",
-    artifact = "net.bytebuddy:byte-buddy-agent:" + BYTE_BUDDY_VERSION,
-    sha1 = "f09415827a71be7ed621c7bd02550678f28bc81c",
-)
-
-maven_jar(
-    name = "objenesis",
-    artifact = "org.objenesis:objenesis:3.4",
-    sha1 = "675cbe121a68019235d27f6c34b4f0ac30e07418",
-)
-
-maven_jar(
-    name = "gson",
-    artifact = "com.google.code.gson:gson:2.13.2",
-    sha1 = "48b8230771e573b54ce6e867a9001e75977fe78e",
-)
-
-JETTY_VER = "12.1.3"
-
-maven_jar(
-    name = "jetty-servlet",
-    artifact = "org.eclipse.jetty.ee8:jetty-ee8-servlet:" + JETTY_VER,
-    sha1 = "d69a5afcc26d314f38c694028b8d77b97e8d7a0f",
-)
-
-maven_jar(
-    name = "jetty-nested",
-    artifact = "org.eclipse.jetty.ee8:jetty-ee8-nested:" + JETTY_VER,
-    sha1 = "042d61943b0530d513048ca3c30f35bfa4d74d60",
-)
-
-maven_jar(
-    name = "jetty-security",
-    artifact = "org.eclipse.jetty:jetty-security:" + JETTY_VER,
-    sha1 = "f40cb316ef0e9a168f59eaf0b2d0440b7adcb1f8",
-)
-
-maven_jar(
-    name = "jetty-ee8-security",
-    artifact = "org.eclipse.jetty.ee8:jetty-ee8-security:" + JETTY_VER,
-    sha1 = "166990e1abb82d310147da11ded232390c47f5d4",
-)
-
-maven_jar(
-    name = "jetty-server",
-    artifact = "org.eclipse.jetty:jetty-server:" + JETTY_VER,
-    sha1 = "7741aafcd7d6dc718d04d4cfb883982e361d6577",
-)
-
-maven_jar(
-    name = "jetty-session",
-    artifact = "org.eclipse.jetty:jetty-session:" + JETTY_VER,
-    sha1 = "0837f081a357a2c835a96ceaa09445921a33b0e9",
-)
-
-maven_jar(
-    name = "jetty-http",
-    artifact = "org.eclipse.jetty:jetty-http:" + JETTY_VER,
-    sha1 = "3822fb03ec85e4157cf68c1ac661b5d06fd19b25",
-)
-
-maven_jar(
-    name = "jetty-io",
-    artifact = "org.eclipse.jetty:jetty-io:" + JETTY_VER,
-    sha1 = "2c46bf53f41e40df72ff457c40553da2ace7b956",
-)
-
-maven_jar(
-    name = "jetty-util",
-    artifact = "org.eclipse.jetty:jetty-util:" + JETTY_VER,
-    sha1 = "9606f6cc440419f62214ceaa2c8ab4b312baf6be",
-)
-
-maven_jar(
-    name = "jetty-util-ajax",
-    artifact = "org.eclipse.jetty:jetty-util-ajax:" + JETTY_VER,
-    sha1 = "d0b0a631434ca2cf5a913d2852893779bfecebf8",
-)
-
-BOUNCYCASTLE_VER = "1.82"
-
-maven_jar(
-    name = "bcpg",
-    artifact = "org.bouncycastle:bcpg-jdk18on:" + BOUNCYCASTLE_VER,
-    sha1 = "55cd7f445018b18119e3f2e67978fb39445b791c",
-)
-
-maven_jar(
-    name = "bcprov",
-    artifact = "org.bouncycastle:bcprov-jdk18on:" + BOUNCYCASTLE_VER,
-    sha1 = "e1118397395d21909a1b7b15120d0c2a68d7fd0c",
-)
-
-maven_jar(
-    name = "bcutil",
-    artifact = "org.bouncycastle:bcutil-jdk18on:" + BOUNCYCASTLE_VER,
-    sha1 = "1850911d674c91ce6444783ff10478e2c6e9bbf9",
-)
-
-maven_jar(
-    name = "bcpkix",
-    artifact = "org.bouncycastle:bcpkix-jdk18on:" + BOUNCYCASTLE_VER,
-    sha1 = "ad7b7155abac3e4e4f73579d5176c11f7659c560",
-)
+# This file marks the root of the Bazel workspace.
+# See MODULE.bazel for external dependencies setup.
diff --git a/lib/BUILD b/lib/BUILD
index f67eda9..5994907 100644
--- a/lib/BUILD
+++ b/lib/BUILD
@@ -6,7 +6,7 @@
         "//org.eclipse.jgit.pgm:__pkg__",
         "//org.eclipse.jgit.pgm.test:__pkg__",
     ],
-    exports = ["@args4j//jar"],
+    exports = ["@jgit_deps//:args4j_args4j"],
 )
 
 java_library(
@@ -16,7 +16,7 @@
         "//org.eclipse.jgit.pgm.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@commons-compress//jar"],
+    exports = ["@jgit_deps//:org_apache_commons_commons_compress"],
 )
 
 java_library(
@@ -26,7 +26,7 @@
         "//org.eclipse.jgit.pgm.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@commons-lang3//jar"],
+    exports = ["@jgit_deps//:org_apache_commons_commons_lang3"],
 )
 
 java_library(
@@ -36,7 +36,7 @@
         "//org.eclipse.jgit.pgm.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@commons-io//jar"],
+    exports = ["@jgit_deps//:commons_io_commons_io"],
 )
 
 java_library(
@@ -45,13 +45,13 @@
         "//org.eclipse.jgit:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@commons-codec//jar"],
+    exports = ["@jgit_deps//:commons_codec_commons_codec"],
 )
 
 java_library(
     name = "commons-logging",
     visibility = ["//visibility:public"],
-    exports = ["@commons-logging//jar"],
+    exports = ["@jgit_deps//:commons_logging_commons_logging"],
 )
 
 java_library(
@@ -60,7 +60,7 @@
         "//org.eclipse.jgit.lfs:__pkg__",
         "//org.eclipse.jgit.lfs.server:__pkg__",
     ],
-    exports = ["@gson//jar"],
+    exports = ["@jgit_deps//:com_google_code_gson_gson"],
 )
 
 java_library(
@@ -70,7 +70,7 @@
         "//org.eclipse.jgit.lfs.server.test:__pkg__",
         "//org.eclipse.jgit.pgm:__pkg__",
     ],
-    exports = ["@httpclient//jar"],
+    exports = ["@jgit_deps//:org_apache_httpcomponents_httpclient"],
 )
 
 java_library(
@@ -82,7 +82,7 @@
         "//org.eclipse.jgit.lfs.server.test:__pkg__",
         "//org.eclipse.jgit.pgm:__pkg__",
     ],
-    exports = ["@httpcore//jar"],
+    exports = ["@jgit_deps//:org_apache_httpcomponents_httpcore"],
 )
 
 java_library(
@@ -94,7 +94,7 @@
         "//org.eclipse.jgit.ssh.apache.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@sshd-osgi//jar"],
+    exports = ["@jgit_deps//:org_apache_sshd_sshd_osgi"],
 )
 
 java_library(
@@ -105,7 +105,7 @@
         "//org.eclipse.jgit.ssh.apache.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@sshd-sftp//jar"],
+    exports = ["@jgit_deps//:org_apache_sshd_sshd_sftp"],
 )
 
 java_library(
@@ -113,7 +113,7 @@
     visibility = [
         "//org.eclipse.jgit.ssh.apache.agent:__pkg__",
     ],
-    exports = ["@jna//jar"],
+    exports = ["@jgit_deps//:net_java_dev_jna_jna"],
 )
 
 java_library(
@@ -121,20 +121,20 @@
     visibility = [
         "//org.eclipse.jgit.ssh.apache.agent:__pkg__",
     ],
-    exports = ["@jna-platform//jar"],
+    exports = ["@jgit_deps//:net_java_dev_jna_jna_platform"],
 )
 
 java_library(
     name = "javaewah",
     visibility = ["//visibility:public"],
-    exports = ["@javaewah//jar"],
+    exports = ["@jgit_deps//:com_googlecode_javaewah_JavaEWAH"],
 )
 
 java_library(
     name = "jetty-http",
     # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
     visibility = ["//visibility:public"],
-    exports = ["@jetty-http//jar"],
+    exports = ["@jgit_deps//:org_eclipse_jetty_jetty_http"],
     runtime_deps = [":commons-codec"],
 )
 
@@ -142,28 +142,42 @@
     name = "jetty-io",
     # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
     visibility = ["//visibility:public"],
-    exports = ["@jetty-io//jar"],
+    exports = ["@jgit_deps//:org_eclipse_jetty_jetty_io"],
 )
 
 java_library(
     name = "jetty-security",
     # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
     visibility = ["//visibility:public"],
-    exports = ["@jetty-security//jar"],
+    exports = ["@jgit_deps//:org_eclipse_jetty_jetty_security"],
 )
 
 java_library(
     name = "jetty-session",
     # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
     visibility = ["//visibility:public"],
-    exports = ["@jetty-session//jar"],
+    exports = ["@jgit_deps//:org_eclipse_jetty_jetty_session"],
 )
 
 java_library(
     name = "jetty-server",
     # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
     visibility = ["//visibility:public"],
-    exports = ["@jetty-server//jar"],
+    exports = ["@jgit_deps//:org_eclipse_jetty_jetty_server"],
+)
+
+java_library(
+    name = "jetty-ee8-nested",
+    # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
+    visibility = ["//visibility:public"],
+    exports = ["@jgit_deps//:org_eclipse_jetty_ee8_jetty_ee8_nested"],
+)
+
+java_library(
+    name = "jetty-ee8-security",
+    # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
+    visibility = ["//visibility:public"],
+    exports = ["@jgit_deps//:org_eclipse_jetty_ee8_jetty_ee8_security"],
 )
 
 java_library(
@@ -171,8 +185,8 @@
     # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
     visibility = ["//visibility:public"],
     exports = [
-        "@jetty-servlet//jar",
-        "@jetty-util-ajax//jar",
+        "@jgit_deps//:org_eclipse_jetty_ee8_jetty_ee8_servlet",
+        "@jgit_deps//:org_eclipse_jetty_jetty_util_ajax",
     ],
 )
 
@@ -180,32 +194,17 @@
     name = "jetty-util",
     # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
     visibility = ["//visibility:public"],
-    exports = ["@jetty-util//jar"],
+    exports = ["@jgit_deps//:org_eclipse_jetty_jetty_util"],
 )
 
 java_library(
-    name = "jetty-ee8-nested",
-    # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
-    visibility = ["//visibility:public"],
-    exports = ["@jetty-nested//jar"],
-)
-
-java_library(
-    name = "jetty-ee8-security",
-    # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
-    visibility = ["//visibility:public"],
-    exports = ["@jetty-ee8-security//jar"],
-)
-
-
-java_library(
     name = "jsch",
     visibility = [
         "//org.eclipse.jgit.junit.ssh:__pkg__",
         "//org.eclipse.jgit.ssh.jsch:__pkg__",
         "//org.eclipse.jgit.ssh.jsch.test:__pkg__",
     ],
-    exports = ["@jsch//jar"],
+    exports = ["@jgit_deps//:com_jcraft_jsch"],
 )
 
 java_library(
@@ -217,7 +216,7 @@
         "//org.eclipse.jgit.ssh.apache.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@bcpg//jar"],
+    exports = ["@jgit_deps//:org_bouncycastle_bcpg_jdk18on"],
 )
 
 java_library(
@@ -230,7 +229,7 @@
         "//org.eclipse.jgit.ssh.jsch.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@bcprov//jar"],
+    exports = ["@jgit_deps//:org_bouncycastle_bcprov_jdk18on"],
 )
 
 java_library(
@@ -243,7 +242,7 @@
         "//org.eclipse.jgit.ssh.jsch.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@bcutil//jar"],
+    exports = ["@jgit_deps//:org_bouncycastle_bcutil_jdk18on"],
 )
 
 java_library(
@@ -255,7 +254,7 @@
         "//org.eclipse.jgit.ssh.jsch.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@bcpkix//jar"],
+    exports = ["@jgit_deps//:org_bouncycastle_bcpkix_jdk18on"],
 )
 
 java_library(
@@ -264,7 +263,7 @@
         "//org.eclipse.jgit.ssh.jsch:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@jzlib//jar"],
+    exports = ["@jgit_deps//:com_jcraft_jzlib"],
 )
 
 java_library(
@@ -272,12 +271,12 @@
     testonly = 1,
     visibility = ["//visibility:public"],
     exports = [
-        "@bytebuddy-agent//jar",
-        "@bytebuddy//jar",
-        "@hamcrest//jar",
-        "@junit//jar",
-        "@mockito//jar",
-        "@objenesis//jar",
+        "@jgit_deps//:net_bytebuddy_byte_buddy_agent",
+        "@jgit_deps//:net_bytebuddy_byte_buddy",
+        "@jgit_deps//:org_hamcrest_hamcrest",
+        "@jgit_deps//:junit_junit",
+        "@jgit_deps//:org_mockito_mockito_core",
+        "@jgit_deps//:org_objenesis_objenesis",
     ],
 )
 
@@ -286,10 +285,10 @@
     testonly = 1,
     visibility = ["//visibility:public"],
     exports = [
-        "@bytebuddy-agent//jar",
-        "@bytebuddy//jar",
-        "@mockito//jar",
-        "@objenesis//jar",
+        "@jgit_deps//:net_bytebuddy_byte_buddy_agent",
+        "@jgit_deps//:net_bytebuddy_byte_buddy",
+        "@jgit_deps//:org_mockito_mockito_core",
+        "@jgit_deps//:org_objenesis_objenesis",
     ],
 )
 
@@ -298,7 +297,7 @@
     testonly = 1,
     visibility = ["//visibility:public"],
     exports = [
-        "@assertj-core//jar",
+        "@jgit_deps//:org_assertj_assertj_core",
     ],
 )
 
@@ -313,24 +312,24 @@
         "//org.eclipse.jgit.lfs.server.test:__pkg__",
         "//org.eclipse.jgit.pgm:__pkg__",
     ],
-    exports = ["@servlet-api//jar"],
+    exports = ["@jgit_deps//:jakarta_servlet_jakarta_servlet_api_4_0_4"],
 )
 
 java_library(
     name = "slf4j-api",
     visibility = ["//visibility:public"],
-    exports = ["@log-api//jar"],
+    exports = ["@jgit_deps//:org_slf4j_slf4j_api"],
 )
 
 java_library(
     name = "slf4j-simple",
     visibility = ["//visibility:public"],
-    exports = ["@slf4j-simple//jar"],
+    exports = ["@jgit_deps//:org_slf4j_slf4j_simple"],
 )
 
 java_library(
     name = "xz",
     testonly = 1,
     visibility = ["//visibility:public"],
-    exports = ["@tukaani-xz//jar"],
+    exports = ["@jgit_deps//:org_tukaani_xz"],
 )
diff --git a/lib/jmh/BUILD b/lib/jmh/BUILD
index b15e66c..1bba1a5 100644
--- a/lib/jmh/BUILD
+++ b/lib/jmh/BUILD
@@ -4,9 +4,9 @@
     name = "jmh",
     visibility = ["//visibility:public"],
     exports = [
-        "@jmh-annotations//jar",
-        "@jmh-core//jar",
-        "@jopt//jar",
-        "@math3//jar",
+        "@jgit_deps//:org_openjdk_jmh_jmh_generator_annprocess",
+        "@jgit_deps//:org_openjdk_jmh_jmh_core",
+        "@jgit_deps//:net_sf_jopt_simple_jopt_simple",
+        "@jgit_deps//:org_apache_commons_commons_math3",
     ],
 )
diff --git a/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
index 0157b21..b114e7d 100644
--- a/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
@@ -5,14 +5,14 @@
 Automatic-Module-Name: org.eclipse.jgit.ant.test
 Bundle-SymbolicName: org.eclipse.jgit.ant.test
 Bundle-Vendor: %Bundle-Vendor
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
 Import-Package: org.apache.tools.ant,
- org.eclipse.jgit.ant.tasks;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.junit;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)",
+ org.eclipse.jgit.ant.tasks;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.junit;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)",
  org.hamcrest;version="[3.0.0,4.0.0)",
  org.junit;version="[4.13,5.0.0)"
diff --git a/org.eclipse.jgit.ant.test/pom.xml b/org.eclipse.jgit.ant.test/pom.xml
index 517156a..483e833 100644
--- a/org.eclipse.jgit.ant.test/pom.xml
+++ b/org.eclipse.jgit.ant.test/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ant.test</artifactId>
diff --git a/org.eclipse.jgit.ant/META-INF/MANIFEST.MF b/org.eclipse.jgit.ant/META-INF/MANIFEST.MF
index 5ba344a..18acf74 100644
--- a/org.eclipse.jgit.ant/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ant/META-INF/MANIFEST.MF
@@ -3,14 +3,14 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ant
 Bundle-SymbolicName: org.eclipse.jgit.ant
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
 Import-Package: org.apache.tools.ant,
-  org.eclipse.jgit.storage.file;version="[7.5.0,7.6.0)"
+  org.eclipse.jgit.storage.file;version="[7.6.0,7.7.0)"
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.ant;version="7.5.0",
- org.eclipse.jgit.ant.tasks;version="7.5.0";
+Export-Package: org.eclipse.jgit.ant;version="7.6.0",
+ org.eclipse.jgit.ant.tasks;version="7.6.0";
   uses:="org.apache.tools.ant,
    org.apache.tools.ant.types"
diff --git a/org.eclipse.jgit.ant/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.ant/META-INF/SOURCE-MANIFEST.MF
index df6d400..d9b3241 100644
--- a/org.eclipse.jgit.ant/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ant/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.ant - Sources
 Bundle-SymbolicName: org.eclipse.jgit.ant.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.ant;version="7.5.0.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.ant;version="7.6.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ant/pom.xml b/org.eclipse.jgit.ant/pom.xml
index 4c3d7e1..dab8a3d 100644
--- a/org.eclipse.jgit.ant/pom.xml
+++ b/org.eclipse.jgit.ant/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ant</artifactId>
diff --git a/org.eclipse.jgit.archive/BUILD b/org.eclipse.jgit.archive/BUILD
index d4f5340..7c6d610 100644
--- a/org.eclipse.jgit.archive/BUILD
+++ b/org.eclipse.jgit.archive/BUILD
@@ -12,6 +12,7 @@
     resources = glob(["resources/**"]),
     deps = [
         "//lib:commons-compress",
+        "//lib:commons-io",
         "//lib:commons-lang3",
         # We want these deps to be provided_deps
         "//org.eclipse.jgit:jgit",
diff --git a/org.eclipse.jgit.archive/META-INF/MANIFEST.MF b/org.eclipse.jgit.archive/META-INF/MANIFEST.MF
index 26039e4..3f9d2c1 100644
--- a/org.eclipse.jgit.archive/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.archive/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.archive
 Bundle-SymbolicName: org.eclipse.jgit.archive
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
@@ -14,18 +14,18 @@
  org.apache.commons.compress.compressors.bzip2;version="[1.4,2.0)",
  org.apache.commons.compress.compressors.gzip;version="[1.4,2.0)",
  org.apache.commons.compress.compressors.xz;version="[1.4,2.0)",
- org.eclipse.jgit.api;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.nls;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revwalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)",
+ org.eclipse.jgit.api;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.nls;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revwalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)",
  org.osgi.framework;version="[1.3.0,2.0.0)",
  org.tukaani.xz
 Bundle-ActivationPolicy: lazy
 Bundle-Activator: org.eclipse.jgit.archive.FormatActivator
-Export-Package: org.eclipse.jgit.archive;version="7.5.0";
+Export-Package: org.eclipse.jgit.archive;version="7.6.0";
   uses:="org.apache.commons.compress.archivers,
    org.osgi.framework,
    org.eclipse.jgit.api,
    org.eclipse.jgit.lib",
- org.eclipse.jgit.archive.internal;version="7.5.0";x-internal:=true
+ org.eclipse.jgit.archive.internal;version="7.6.0";x-internal:=true
diff --git a/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF
index 22f6779..86336e3 100644
--- a/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.archive - Sources
 Bundle-SymbolicName: org.eclipse.jgit.archive.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.archive;version="7.5.0.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.archive;version="7.6.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.archive/pom.xml b/org.eclipse.jgit.archive/pom.xml
index fe567b0..bbe279b 100644
--- a/org.eclipse.jgit.archive/pom.xml
+++ b/org.eclipse.jgit.archive/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.archive</artifactId>
diff --git a/org.eclipse.jgit.benchmarks/pom.xml b/org.eclipse.jgit.benchmarks/pom.xml
index 1b185c8..b4daf7d 100644
--- a/org.eclipse.jgit.benchmarks/pom.xml
+++ b/org.eclipse.jgit.benchmarks/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.benchmarks</artifactId>
diff --git a/org.eclipse.jgit.coverage/pom.xml b/org.eclipse.jgit.coverage/pom.xml
index a43893b..80b421d 100644
--- a/org.eclipse.jgit.coverage/pom.xml
+++ b/org.eclipse.jgit.coverage/pom.xml
@@ -14,7 +14,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
@@ -27,88 +27,88 @@
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ant</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.archive</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.http.apache</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.http.server</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs.server</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.pgm</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ui</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ssh.apache</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
 
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.test</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ant.test</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.http.test</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.pgm.test</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs.test</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs.server.test</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ssh.apache.test</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
   </dependencies>
 
diff --git a/org.eclipse.jgit.gpg.bc.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.gpg.bc.test/META-INF/MANIFEST.MF
index 10544b6..647c97d 100644
--- a/org.eclipse.jgit.gpg.bc.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.gpg.bc.test/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.gpg.bc.test
 Bundle-SymbolicName: org.eclipse.jgit.gpg.bc.test
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
@@ -14,9 +14,9 @@
  org.bouncycastle.openpgp.operator;version="[1.80.0,2.0.0)",
  org.bouncycastle.openpgp.operator.jcajce;version="[1.80.0,2.0.0)",
  org.bouncycastle.util.encoders;version="[1.80.0,2.0.0)",
- org.eclipse.jgit.gpg.bc.internal;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.gpg.bc.internal.keys;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util.sha1;version="[7.5.0,7.6.0)",
+ org.eclipse.jgit.gpg.bc.internal;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.gpg.bc.internal.keys;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util.sha1;version="[7.6.0,7.7.0)",
  org.hamcrest;version="[3.0.0,4.0.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.runner;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.gpg.bc.test/pom.xml b/org.eclipse.jgit.gpg.bc.test/pom.xml
index 9bde228..05e504e 100644
--- a/org.eclipse.jgit.gpg.bc.test/pom.xml
+++ b/org.eclipse.jgit.gpg.bc.test/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.gpg.bc.test</artifactId>
diff --git a/org.eclipse.jgit.gpg.bc/META-INF/MANIFEST.MF b/org.eclipse.jgit.gpg.bc/META-INF/MANIFEST.MF
index 6bff1c9..cc6eda7 100644
--- a/org.eclipse.jgit.gpg.bc/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.gpg.bc/META-INF/MANIFEST.MF
@@ -3,10 +3,10 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.gpg.bc
 Bundle-SymbolicName: org.eclipse.jgit.gpg.bc;singleton:=true
-Fragment-Host: org.eclipse.jgit;bundle-version="[7.5.0,7.6.0)"
+Fragment-Host: org.eclipse.jgit;bundle-version="[7.6.0,7.7.0)"
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/gpg_bc
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
 Import-Package: org.bouncycastle.asn1;version="[1.80.0,2.0.0)",
@@ -27,5 +27,5 @@
  org.bouncycastle.openpgp.operator.jcajce;version="[1.80.0,2.0.0)",
  org.bouncycastle.util.encoders;version="[1.80.0,2.0.0)",
  org.slf4j;version="[1.7.0,3.0.0)"
-Export-Package: org.eclipse.jgit.gpg.bc.internal;version="7.5.0";x-friends:="org.eclipse.jgit.gpg.bc.test",
- org.eclipse.jgit.gpg.bc.internal.keys;version="7.5.0";x-friends:="org.eclipse.jgit.gpg.bc.test"
+Export-Package: org.eclipse.jgit.gpg.bc.internal;version="7.6.0";x-friends:="org.eclipse.jgit.gpg.bc.test",
+ org.eclipse.jgit.gpg.bc.internal.keys;version="7.6.0";x-friends:="org.eclipse.jgit.gpg.bc.test"
diff --git a/org.eclipse.jgit.gpg.bc/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.gpg.bc/META-INF/SOURCE-MANIFEST.MF
index 168f1c0..82df526 100644
--- a/org.eclipse.jgit.gpg.bc/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.gpg.bc/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.gpg.bc - Sources
 Bundle-SymbolicName: org.eclipse.jgit.gpg.bc.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.gpg.bc;version="7.5.0.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.gpg.bc;version="7.6.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.gpg.bc/pom.xml b/org.eclipse.jgit.gpg.bc/pom.xml
index 3ffc6a5..bfc3590 100644
--- a/org.eclipse.jgit.gpg.bc/pom.xml
+++ b/org.eclipse.jgit.gpg.bc/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.gpg.bc</artifactId>
diff --git a/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF
index 4935bc7..9b0f12f 100644
--- a/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.http.apache
 Bundle-SymbolicName: org.eclipse.jgit.http.apache
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
 Bundle-Localization: OSGI-INF/l10n/plugin
@@ -27,11 +27,11 @@
  org.apache.http.impl.conn;version="[4.4.0,5.0.0)",
  org.apache.http.params;version="[4.3.0,5.0.0)",
  org.apache.http.ssl;version="[4.3.0,5.0.0)",
- org.eclipse.jgit.annotations;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.nls;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.http;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)"
-Export-Package: org.eclipse.jgit.transport.http.apache;version="7.5.0";
+ org.eclipse.jgit.annotations;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.nls;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.http;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)"
+Export-Package: org.eclipse.jgit.transport.http.apache;version="7.6.0";
   uses:="org.apache.http.client,
    org.eclipse.jgit.transport.http,
    org.apache.http.entity,
diff --git a/org.eclipse.jgit.http.apache/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.http.apache/META-INF/SOURCE-MANIFEST.MF
index 44ff896..cd65a4f 100644
--- a/org.eclipse.jgit.http.apache/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.http.apache/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.http.apache - Sources
 Bundle-SymbolicName: org.eclipse.jgit.http.apache.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.http.apache;version="7.5.0.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.http.apache;version="7.6.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.http.apache/pom.xml b/org.eclipse.jgit.http.apache/pom.xml
index 27ff965..55828b2 100644
--- a/org.eclipse.jgit.http.apache/pom.xml
+++ b/org.eclipse.jgit.http.apache/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.http.apache</artifactId>
diff --git a/org.eclipse.jgit.http.server/.settings/.api_filters b/org.eclipse.jgit.http.server/.settings/.api_filters
index 4675956..ad4bc68 100644
--- a/org.eclipse.jgit.http.server/.settings/.api_filters
+++ b/org.eclipse.jgit.http.server/.settings/.api_filters
@@ -21,6 +21,13 @@
                 <message_argument value="hasChunkedEncodingRequestBug(int[], HttpServletRequest)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="hasChunkedEncodingRequestBug(int[], HttpServletRequest)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/GitFilter.java" type="org.eclipse.jgit.http.server.GitFilter">
         <filter id="337682486">
@@ -75,6 +82,20 @@
                 <message_argument value="addUploadPackFilter(Filter)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="addReceivePackFilter(Filter)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="addUploadPackFilter(Filter)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/GitServlet.java" type="org.eclipse.jgit.http.server.GitServlet">
         <filter id="337682486">
@@ -129,6 +150,20 @@
                 <message_argument value="addUploadPackFilter(Filter)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="addReceivePackFilter(Filter)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="addUploadPackFilter(Filter)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/GitSmartHttpTools.java" type="org.eclipse.jgit.http.server.GitSmartHttpTools">
         <filter id="338792546">
@@ -271,6 +306,55 @@
                 <message_argument value="sendError(HttpServletRequest, HttpServletResponse, int, String)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="getResponseContentType(HttpServletRequest)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="isGitClient(HttpServletRequest)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="isInfoRefs(HttpServletRequest)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="isReceivePack(HttpServletRequest)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="isUploadPack(HttpServletRequest)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="sendError(HttpServletRequest, HttpServletResponse, int)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="sendError(HttpServletRequest, HttpServletResponse, int, String)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/ReceivePackErrorHandler.java" type="org.eclipse.jgit.http.server.ReceivePackErrorHandler">
         <filter id="403804204">
@@ -299,6 +383,13 @@
                 <message_argument value="receive(HttpServletRequest, HttpServletResponse, ReceivePackErrorHandler.ReceivePackRunnable)"/>
             </message_arguments>
         </filter>
+        <filter id="1209008130">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="receive(HttpServletRequest, HttpServletResponse, ReceivePackErrorHandler.ReceivePackRunnable)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/RepositoryFilter.java" type="org.eclipse.jgit.http.server.RepositoryFilter">
         <filter id="337682486">
@@ -421,6 +512,41 @@
                 <message_argument value="sendPlainText(String, HttpServletRequest, HttpServletResponse)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="consumeRequestBody(HttpServletRequest)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="getInputStream(HttpServletRequest)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="getRepository(ServletRequest)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="send(byte[], HttpServletRequest, HttpServletResponse)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="sendPlainText(String, HttpServletRequest, HttpServletResponse)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/UploadPackErrorHandler.java" type="org.eclipse.jgit.http.server.UploadPackErrorHandler">
         <filter id="403804204">
@@ -449,6 +575,13 @@
                 <message_argument value="upload(HttpServletRequest, HttpServletResponse, UploadPackErrorHandler.UploadPackRunnable)"/>
             </message_arguments>
         </filter>
+        <filter id="1209008130">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="upload(HttpServletRequest, HttpServletResponse, UploadPackErrorHandler.UploadPackRunnable)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/glue/ErrorServlet.java" type="org.eclipse.jgit.http.server.glue.ErrorServlet">
         <filter id="337682486">
@@ -587,6 +720,20 @@
                 <message_argument value="with(HttpServlet)"/>
             </message_arguments>
         </filter>
+        <filter id="1209008130">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="through(Filter)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1209008130">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="with(HttpServlet)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/glue/WrappedRequest.java" type="org.eclipse.jgit.http.server.glue.WrappedRequest">
         <filter id="337682486">
@@ -620,6 +767,13 @@
                 <message_argument value="WrappedRequest(HttpServletRequest, String, String)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="WrappedRequest(HttpServletRequest, String, String)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/resolver/AsIsFileService.java" type="org.eclipse.jgit.http.server.resolver.AsIsFileService">
         <filter id="338792546">
@@ -642,6 +796,13 @@
                 <message_argument value="access(HttpServletRequest, Repository)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="access(HttpServletRequest, Repository)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/resolver/DefaultReceivePackFactory.java" type="org.eclipse.jgit.http.server.resolver.DefaultReceivePackFactory">
         <filter id="338792546">
@@ -664,6 +825,13 @@
                 <message_argument value="create(HttpServletRequest, Repository)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="create(HttpServletRequest, Repository)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/resolver/DefaultUploadPackFactory.java" type="org.eclipse.jgit.http.server.resolver.DefaultUploadPackFactory">
         <filter id="338792546">
@@ -686,5 +854,12 @@
                 <message_argument value="create(HttpServletRequest, Repository)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="create(HttpServletRequest, Repository)"/>
+            </message_arguments>
+        </filter>
     </resource>
 </component>
diff --git a/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF
index da533e6..7dd34b1 100644
--- a/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF
@@ -3,31 +3,31 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.http.server
 Bundle-SymbolicName: org.eclipse.jgit.http.server
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Export-Package: org.eclipse.jgit.http.server;version="7.5.0",
- org.eclipse.jgit.http.server.glue;version="7.5.0";
+Export-Package: org.eclipse.jgit.http.server;version="7.6.0",
+ org.eclipse.jgit.http.server.glue;version="7.6.0";
   uses:="javax.servlet,
   	javax.servlet.http",
- org.eclipse.jgit.http.server.resolver;version="7.5.0";
+ org.eclipse.jgit.http.server.resolver;version="7.6.0";
   uses:="javax.servlet.http
    org.eclipse.jgit.transport.resolver,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.transport,
 Import-Package: javax.servlet;version="[4.0.0,5.0.0)",
  javax.servlet.http;version="[4.0.0,5.0.0)",
- org.eclipse.jgit.annotations;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.transport.parser;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.nls;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revwalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.resolver;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)"
+ org.eclipse.jgit.annotations;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.transport.parser;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.nls;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revwalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.resolver;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)"
diff --git a/org.eclipse.jgit.http.server/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.http.server/META-INF/SOURCE-MANIFEST.MF
index 49164d5..3d42568 100644
--- a/org.eclipse.jgit.http.server/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.http.server/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.http.server - Sources
 Bundle-SymbolicName: org.eclipse.jgit.http.server.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.http.server;version="7.5.0.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.http.server;version="7.6.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.http.server/pom.xml b/org.eclipse.jgit.http.server/pom.xml
index bbd1fe1..2be8efe 100644
--- a/org.eclipse.jgit.http.server/pom.xml
+++ b/org.eclipse.jgit.http.server/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.http.server</artifactId>
diff --git a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
index 287353a..d71d636 100644
--- a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.http.test
 Bundle-SymbolicName: org.eclipse.jgit.http.test
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
@@ -29,26 +29,26 @@
  org.eclipse.jetty.util.component;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.util.security;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.util.thread;version="[12.0.0,13.0.0)",
- org.eclipse.jgit.api;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.http.server;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.http.server.glue;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.http.server.resolver;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.junit;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.junit.http;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.nls;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revwalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.http;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.http.apache;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.resolver;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)",
+ org.eclipse.jgit.api;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.http.server;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.http.server.glue;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.http.server.resolver;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.junit;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.junit.http;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.nls;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revwalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.http;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.http.apache;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.resolver;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)",
  org.hamcrest;version="[3.0.0,4.0.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.rules;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.http.test/pom.xml b/org.eclipse.jgit.http.test/pom.xml
index afe30be..ca5c99c 100644
--- a/org.eclipse.jgit.http.test/pom.xml
+++ b/org.eclipse.jgit.http.test/pom.xml
@@ -18,7 +18,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.http.test</artifactId>
diff --git a/org.eclipse.jgit.junit.http/.settings/.api_filters b/org.eclipse.jgit.junit.http/.settings/.api_filters
index f7c1069..fc06291 100644
--- a/org.eclipse.jgit.junit.http/.settings/.api_filters
+++ b/org.eclipse.jgit.junit.http/.settings/.api_filters
@@ -41,6 +41,20 @@
                 <message_argument value="authBasic(ServletContextHandler, String[])"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="addContext(String)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="authBasic(ServletContextHandler, String[])"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/junit/http/HttpTestCase.java" type="org.eclipse.jgit.junit.http.HttpTestCase">
         <filter id="338792546">
@@ -63,6 +77,13 @@
                 <message_argument value="toURIish(ServletContextHandler, String)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="toURIish(ServletContextHandler, String)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/junit/http/MockServletConfig.java" type="org.eclipse.jgit.junit.http.MockServletConfig">
         <filter id="338792546">
diff --git a/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF b/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
index 3ece734..fa7ef45 100644
--- a/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.junit.http
 Bundle-SymbolicName: org.eclipse.jgit.junit.http
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
@@ -26,17 +26,17 @@
  org.eclipse.jetty.util.component;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.util.security;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.util.ssl;version="[12.0.0,13.0.0)",
- org.eclipse.jgit.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.http.server;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.junit;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revwalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.resolver;version="[7.5.0,7.6.0)",
+ org.eclipse.jgit.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.http.server;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.junit;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revwalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.resolver;version="[7.6.0,7.7.0)",
  org.junit;version="[4.13,5.0.0)",
  org.slf4j.helpers;version="[1.7.0,3.0.0)"
-Export-Package: org.eclipse.jgit.junit.http;version="7.5.0";
+Export-Package: org.eclipse.jgit.junit.http;version="7.6.0";
   uses:="org.eclipse.jgit.transport,
    javax.servlet,
    javax.servlet.http,
diff --git a/org.eclipse.jgit.junit.http/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.junit.http/META-INF/SOURCE-MANIFEST.MF
index c8c287c..64d2e4e 100644
--- a/org.eclipse.jgit.junit.http/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.junit.http/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.junit.http - Sources
 Bundle-SymbolicName: org.eclipse.jgit.junit.http.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.junit.http;version="7.5.0.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.junit.http;version="7.6.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit.http/pom.xml b/org.eclipse.jgit.junit.http/pom.xml
index 10b30ff..e549e00 100644
--- a/org.eclipse.jgit.junit.http/pom.xml
+++ b/org.eclipse.jgit.junit.http/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.junit.http</artifactId>
diff --git a/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF b/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
index ab02057..400a5dc 100644
--- a/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.junit.ssh
 Bundle-SymbolicName: org.eclipse.jgit.junit.ssh
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
@@ -34,16 +34,16 @@
  org.apache.sshd.server.subsystem;version="[2.16.0,2.17.0)",
  org.apache.sshd.sftp;version="[2.16.0,2.17.0)",
  org.apache.sshd.sftp.server;version="[2.16.0,2.17.0)",
- org.eclipse.jgit.annotations;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.api;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.api.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.junit;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revwalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)",
+ org.eclipse.jgit.annotations;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.api;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.api.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.junit;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revwalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.experimental.theories;version="[4.13,5.0.0)",
  org.slf4j;version="[1.7.0,3.0.0)"
-Export-Package: org.eclipse.jgit.junit.ssh;version="7.5.0"
+Export-Package: org.eclipse.jgit.junit.ssh;version="7.6.0"
diff --git a/org.eclipse.jgit.junit.ssh/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.junit.ssh/META-INF/SOURCE-MANIFEST.MF
index b87fcbd..9c1adcb 100644
--- a/org.eclipse.jgit.junit.ssh/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.junit.ssh/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.junit.ssh - Sources
 Bundle-SymbolicName: org.eclipse.jgit.junit.ssh.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.junit.ssh;version="7.5.0.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.junit.ssh;version="7.6.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit.ssh/pom.xml b/org.eclipse.jgit.junit.ssh/pom.xml
index 952ff2c..8d6d068 100644
--- a/org.eclipse.jgit.junit.ssh/pom.xml
+++ b/org.eclipse.jgit.junit.ssh/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.junit.ssh</artifactId>
diff --git a/org.eclipse.jgit.junit/META-INF/MANIFEST.MF b/org.eclipse.jgit.junit/META-INF/MANIFEST.MF
index 11fe760..bf52865 100644
--- a/org.eclipse.jgit.junit/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit/META-INF/MANIFEST.MF
@@ -3,38 +3,38 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.junit
 Bundle-SymbolicName: org.eclipse.jgit.junit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Import-Package: org.eclipse.jgit.annotations;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.api;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.api.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.dircache;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.pack;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.util;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.merge;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revwalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.storage.pack;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport;version="7.5.0",
- org.eclipse.jgit.treewalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util.io;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util.time;version="[7.5.0,7.6.0)",
+Import-Package: org.eclipse.jgit.annotations;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.api;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.api.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.dircache;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.util;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.merge;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revwalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.storage.pack;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport;version="7.6.0",
+ org.eclipse.jgit.treewalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util.io;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util.time;version="[7.6.0,7.7.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.rules;version="[4.13,5.0.0)",
  org.junit.runner;version="[4.13,5.0.0)",
  org.junit.runners;version="[4.13,5.0.0)",
  org.junit.runners.model;version="[4.13,5.0.0)",
  org.slf4j;version="[1.7.0,3.0.0)"
-Export-Package: org.eclipse.jgit.junit;version="7.5.0";
+Export-Package: org.eclipse.jgit.junit;version="7.6.0";
   uses:="org.eclipse.jgit.dircache,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
@@ -47,4 +47,4 @@
    org.junit.runners.model,
    org.junit.runner,
    org.eclipse.jgit.util.time",
- org.eclipse.jgit.junit.time;version="7.5.0";uses:="org.eclipse.jgit.util.time"
+ org.eclipse.jgit.junit.time;version="7.6.0";uses:="org.eclipse.jgit.util.time"
diff --git a/org.eclipse.jgit.junit/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.junit/META-INF/SOURCE-MANIFEST.MF
index 0fc04b8..cb07dc9 100644
--- a/org.eclipse.jgit.junit/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.junit/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.junit - Sources
 Bundle-SymbolicName: org.eclipse.jgit.junit.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.junit;version="7.5.0.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.junit;version="7.6.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit/pom.xml b/org.eclipse.jgit.junit/pom.xml
index a6d3c43..fa798c8 100644
--- a/org.eclipse.jgit.junit/pom.xml
+++ b/org.eclipse.jgit.junit/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.junit</artifactId>
diff --git a/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF
index d1b9f06..e877dee 100644
--- a/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs.server.test
 Bundle-SymbolicName: org.eclipse.jgit.lfs.server.test
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
@@ -27,24 +27,24 @@
  org.eclipse.jetty.util.component;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.util.security;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.util.thread;version="[12.0.0,13.0.0)",
- org.eclipse.jgit.api;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.api.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.junit;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.junit.http;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs.server;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs.server.fs;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs.test;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revwalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.treewalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)",
+ org.eclipse.jgit.api;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.api.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.junit;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.junit.http;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs.server;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs.server.fs;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs.test;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revwalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.treewalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)",
  org.hamcrest;version="[3.0.0,4.0.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.rules;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.lfs.server.test/pom.xml b/org.eclipse.jgit.lfs.server.test/pom.xml
index 3ce6cab..2527ab9 100644
--- a/org.eclipse.jgit.lfs.server.test/pom.xml
+++ b/org.eclipse.jgit.lfs.server.test/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.lfs.server.test</artifactId>
diff --git a/org.eclipse.jgit.lfs.server/.settings/.api_filters b/org.eclipse.jgit.lfs.server/.settings/.api_filters
index 2a81240..5694eaa 100644
--- a/org.eclipse.jgit.lfs.server/.settings/.api_filters
+++ b/org.eclipse.jgit.lfs.server/.settings/.api_filters
@@ -83,6 +83,20 @@
                 <message_argument value="sendError(HttpServletResponse, int, String)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="getObjectToTransfer(HttpServletRequest, HttpServletResponse)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="sendError(HttpServletResponse, int, String)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/lfs/server/fs/ObjectDownloadListener.java" type="org.eclipse.jgit.lfs.server.fs.ObjectDownloadListener">
         <filter id="337682486">
@@ -111,6 +125,13 @@
                 <message_argument value="ObjectDownloadListener(FileLfsRepository, AsyncContext, HttpServletResponse, AnyLongObjectId)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="ObjectDownloadListener(FileLfsRepository, AsyncContext, HttpServletResponse, AnyLongObjectId)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/lfs/server/fs/ObjectUploadListener.java" type="org.eclipse.jgit.lfs.server.fs.ObjectUploadListener">
         <filter id="337682486">
@@ -139,5 +160,12 @@
                 <message_argument value="ObjectUploadListener(FileLfsRepository, AsyncContext, HttpServletRequest, HttpServletResponse, AnyLongObjectId)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.6"/>
+                <message_argument value="ObjectUploadListener(FileLfsRepository, AsyncContext, HttpServletRequest, HttpServletResponse, AnyLongObjectId)"/>
+            </message_arguments>
+        </filter>
     </resource>
 </component>
diff --git a/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
index f75a14d..4d024da 100644
--- a/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
@@ -3,21 +3,21 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs.server
 Bundle-SymbolicName: org.eclipse.jgit.lfs.server
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Export-Package: org.eclipse.jgit.lfs.server;version="7.5.0";
+Export-Package: org.eclipse.jgit.lfs.server;version="7.6.0";
   uses:="javax.servlet.http,
    org.eclipse.jgit.lfs.lib",
- org.eclipse.jgit.lfs.server.fs;version="7.5.0";
+ org.eclipse.jgit.lfs.server.fs;version="7.6.0";
   uses:="javax.servlet,
    javax.servlet.http,
    org.eclipse.jgit.lfs.server,
    org.eclipse.jgit.lfs.lib",
- org.eclipse.jgit.lfs.server.internal;version="7.5.0";x-internal:=true,
- org.eclipse.jgit.lfs.server.s3;version="7.5.0";
+ org.eclipse.jgit.lfs.server.internal;version="7.6.0";x-internal:=true,
+ org.eclipse.jgit.lfs.server.s3;version="7.6.0";
   uses:="org.eclipse.jgit.lfs.server,
    org.eclipse.jgit.lfs.lib"
 Import-Package: com.google.gson;version="[2.8.0,3.0.0)",
@@ -25,15 +25,15 @@
  javax.servlet.annotation;version="[4.0.0,5.0.0)",
  javax.servlet.http;version="[4.0.0,5.0.0)",
  org.apache.http;version="[4.3.0,5.0.0)",
- org.eclipse.jgit.annotations;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs.internal;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.nls;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.http;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.http.apache;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)",
+ org.eclipse.jgit.annotations;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs.internal;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.nls;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.http;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.http.apache;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)",
  org.slf4j;version="[1.7.0,3.0.0)"
diff --git a/org.eclipse.jgit.lfs.server/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.lfs.server/META-INF/SOURCE-MANIFEST.MF
index 9869530..c2a8147 100644
--- a/org.eclipse.jgit.lfs.server/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.server/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.lfs.server - Sources
 Bundle-SymbolicName: org.eclipse.jgit.lfs.server.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.lfs.server;version="7.5.0.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.lfs.server;version="7.6.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.lfs.server/pom.xml b/org.eclipse.jgit.lfs.server/pom.xml
index 1c2fc51..1b4a73b 100644
--- a/org.eclipse.jgit.lfs.server/pom.xml
+++ b/org.eclipse.jgit.lfs.server/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.lfs.server</artifactId>
diff --git a/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
index cc1b4cc..d79ae9a 100644
--- a/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
@@ -3,29 +3,29 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs.test
 Bundle-SymbolicName: org.eclipse.jgit.lfs.test
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Import-Package: org.eclipse.jgit.api;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.attributes;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.junit;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs.internal;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revwalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.http;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.treewalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)",
+Import-Package: org.eclipse.jgit.api;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.attributes;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.junit;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs.internal;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revwalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.http;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.treewalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)",
  org.hamcrest;version="[3.0.0,4.0.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.runner;version="[4.13,5.0.0)",
  org.junit.runners;version="[4.13,5.0.0)"
-Export-Package: org.eclipse.jgit.lfs.test;version="7.5.0";x-friends:="org.eclipse.jgit.lfs.server.test"
+Export-Package: org.eclipse.jgit.lfs.test;version="7.6.0";x-friends:="org.eclipse.jgit.lfs.server.test"
diff --git a/org.eclipse.jgit.lfs.test/pom.xml b/org.eclipse.jgit.lfs.test/pom.xml
index 9f50190..4f9de97 100644
--- a/org.eclipse.jgit.lfs.test/pom.xml
+++ b/org.eclipse.jgit.lfs.test/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.lfs.test</artifactId>
diff --git a/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
index 1c311c4..44d8477 100644
--- a/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
@@ -3,33 +3,33 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs
 Bundle-SymbolicName: org.eclipse.jgit.lfs
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Export-Package: org.eclipse.jgit.lfs;version="7.5.0",
- org.eclipse.jgit.lfs.errors;version="7.5.0",
- org.eclipse.jgit.lfs.internal;version="7.5.0";x-friends:="org.eclipse.jgit.lfs.test,org.eclipse.jgit.lfs.server.fs,org.eclipse.jgit.lfs.server",
- org.eclipse.jgit.lfs.lib;version="7.5.0"
+Export-Package: org.eclipse.jgit.lfs;version="7.6.0",
+ org.eclipse.jgit.lfs.errors;version="7.6.0",
+ org.eclipse.jgit.lfs.internal;version="7.6.0";x-friends:="org.eclipse.jgit.lfs.test,org.eclipse.jgit.lfs.server.fs,org.eclipse.jgit.lfs.server",
+ org.eclipse.jgit.lfs.lib;version="7.6.0"
 Import-Package: com.google.gson;version="[2.8.2,3.0.0)",
  com.google.gson.stream;version="[2.8.2,3.0.0)",
- org.eclipse.jgit.annotations;version="[7.5.0,7.6.0)";resolution:=optional,
- org.eclipse.jgit.api.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.attributes;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.diff;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.dircache;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.hooks;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.nls;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revwalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.storage.pack;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.http;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.treewalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util.io;version="[7.5.0,7.6.0)"
+ org.eclipse.jgit.annotations;version="[7.6.0,7.7.0)";resolution:=optional,
+ org.eclipse.jgit.api.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.attributes;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.diff;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.dircache;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.hooks;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.nls;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revwalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.storage.pack;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.http;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.treewalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util.io;version="[7.6.0,7.7.0)"
diff --git a/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF
index 9e7ccc5..cdc7cf9 100644
--- a/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.lfs - Sources
 Bundle-SymbolicName: org.eclipse.jgit.lfs.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.lfs;version="7.5.0.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.lfs;version="7.6.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.lfs/pom.xml b/org.eclipse.jgit.lfs/pom.xml
index f08df55..803606a 100644
--- a/org.eclipse.jgit.lfs/pom.xml
+++ b/org.eclipse.jgit.lfs/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.lfs</artifactId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml
index 70dba10..c5521ee 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jgit"
       label="%featureName"
-      version="7.5.0.qualifier"
+      version="7.6.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml
index 9ba72fe..95ec4e9 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>jgit.tycho.parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.gpg.bc.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.gpg.bc.feature/feature.xml
index 8c5702f..1518beb 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.gpg.bc.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.gpg.bc.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jgit.gpg.bc"
       label="%featureName"
-      version="7.5.0.qualifier"
+      version="7.6.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.jgit" version="7.5.0" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="7.6.0" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.gpg.bc.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.gpg.bc.feature/pom.xml
index a69fdad..f3f10fd 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.gpg.bc.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.gpg.bc.feature/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>jgit.tycho.parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml
index 0e2a1a0..b9815d6 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jgit.http.apache"
       label="%featureName"
-      version="7.5.0.qualifier"
+      version="7.6.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.jgit" version="7.5.0" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="7.6.0" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml
index e858ec1..1f0ad42 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>jgit.tycho.parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml
index a13a299..efbf3c0 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jgit.junit"
       label="%featureName"
-      version="7.5.0.qualifier"
+      version="7.6.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -24,7 +24,7 @@
 
    <requires>
       <import plugin="com.jcraft.jsch"/>
-      <import plugin="org.eclipse.jgit" version="7.5.0" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="7.6.0" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml
index 0e695de..a0f6e92 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>jgit.tycho.parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml
index 7b8e62e..fef54ec 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jgit.lfs"
       label="%featureName"
-      version="7.5.0.qualifier"
+      version="7.6.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="7.5.0" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="7.6.0" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml
index 4679767..74daa11 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>jgit.tycho.parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml
index 83ae321..868aa02 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jgit.pgm"
       label="%featureName"
-      version="7.5.0.qualifier"
+      version="7.6.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -35,9 +35,9 @@
          version="0.0.0"/>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="7.5.0" match="equivalent"/>
-      <import feature="org.eclipse.jgit.lfs" version="7.5.0" match="equivalent"/>
-      <import feature="org.eclipse.jgit.ssh.apache" version="7.5.0" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="7.6.0" match="equivalent"/>
+      <import feature="org.eclipse.jgit.lfs" version="7.6.0" match="equivalent"/>
+      <import feature="org.eclipse.jgit.ssh.apache" version="7.6.0" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/pom.xml
index f3a73b1..8812d72 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>jgit.tycho.parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml
index 848f46c..5c71af5 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>jgit.tycho.parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.repository</artifactId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml
index 1221eb4..bfb5360 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jgit.source"
       label="%featureName"
-      version="7.5.0.qualifier"
+      version="7.6.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="7.5.0" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="7.6.0" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml
index ada5649..4eb2a6d 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>jgit.tycho.parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
@@ -30,7 +30,7 @@
     <dependency>
       <groupId>org.eclipse.jgit.feature</groupId>
       <artifactId>org.eclipse.jgit</artifactId>
-      <version>7.5.0-SNAPSHOT</version>
+      <version>7.6.0-SNAPSHOT</version>
     </dependency>
   </dependencies>
 
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/feature.xml
index 096558c..cc7a9d6 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jgit.ssh.apache"
       label="%featureName"
-      version="7.5.0.qualifier"
+      version="7.6.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="7.5.0" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="7.6.0" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/pom.xml
index 9b92cc8..bd38360 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>jgit.tycho.parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.jsch.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.jsch.feature/feature.xml
index 32a48f2..ab0775e 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.jsch.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.jsch.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jgit.ssh.jsch"
       label="%featureName"
-      version="7.5.0.qualifier"
+      version="7.6.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.jgit" version="7.5.0" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="7.6.0" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.jsch.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.jsch.feature/pom.xml
index 57fc61a..7d881a5 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.jsch.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.jsch.feature/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>jgit.tycho.parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.34.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.34.target
index 6cc6c98..f26a46d 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.34.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.34.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.34" sequenceNumber="1762763960">
+<target name="jgit-4.34" sequenceNumber="1765188982">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -39,7 +39,7 @@
         <dependency>
           <groupId>org.tukaani</groupId>
           <artifactId>xz</artifactId>
-          <version>1.10</version>
+          <version>1.11</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -107,61 +107,61 @@
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-servlet</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-nested</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-security</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -207,13 +207,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.17.8</version>
+          <version>1.18.2</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.17.8</version>
+          <version>1.18.2</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -223,25 +223,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -271,7 +271,7 @@
         <dependency>
           <groupId>commons-codec</groupId>
           <artifactId>commons-codec</artifactId>
-          <version>1.19.0</version>
+          <version>1.20.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -283,13 +283,13 @@
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-lang3</artifactId>
-          <version>3.19.0</version>
+          <version>3.20.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
-          <version>2.20.0</version>
+          <version>2.21.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.35.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.35.target
index b488b0d..86a8150 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.35.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.35.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.35" sequenceNumber="1762763960">
+<target name="jgit-4.35" sequenceNumber="1765188982">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -39,7 +39,7 @@
         <dependency>
           <groupId>org.tukaani</groupId>
           <artifactId>xz</artifactId>
-          <version>1.10</version>
+          <version>1.11</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -107,61 +107,61 @@
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-servlet</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-nested</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-security</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -207,13 +207,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.17.8</version>
+          <version>1.18.2</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.17.8</version>
+          <version>1.18.2</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -223,25 +223,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -271,7 +271,7 @@
         <dependency>
           <groupId>commons-codec</groupId>
           <artifactId>commons-codec</artifactId>
-          <version>1.19.0</version>
+          <version>1.20.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -283,13 +283,13 @@
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-lang3</artifactId>
-          <version>3.19.0</version>
+          <version>3.20.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
-          <version>2.20.0</version>
+          <version>2.21.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.36.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.36.target
index 4886c15..aece501 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.36.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.36.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.36" sequenceNumber="1762763960">
+<target name="jgit-4.36" sequenceNumber="1765188982">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -39,7 +39,7 @@
         <dependency>
           <groupId>org.tukaani</groupId>
           <artifactId>xz</artifactId>
-          <version>1.10</version>
+          <version>1.11</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -107,61 +107,61 @@
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-servlet</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-nested</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-security</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -207,13 +207,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.17.8</version>
+          <version>1.18.2</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.17.8</version>
+          <version>1.18.2</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -223,25 +223,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -271,7 +271,7 @@
         <dependency>
           <groupId>commons-codec</groupId>
           <artifactId>commons-codec</artifactId>
-          <version>1.19.0</version>
+          <version>1.20.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -283,13 +283,13 @@
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-lang3</artifactId>
-          <version>3.19.0</version>
+          <version>3.20.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
-          <version>2.20.0</version>
+          <version>2.21.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.37.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.37.target
index 826f343..ea754a6 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.37.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.37.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.37" sequenceNumber="1762763960">
+<target name="jgit-4.37" sequenceNumber="1765188982">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -39,7 +39,7 @@
         <dependency>
           <groupId>org.tukaani</groupId>
           <artifactId>xz</artifactId>
-          <version>1.10</version>
+          <version>1.11</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -107,61 +107,61 @@
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-servlet</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-nested</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-security</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -207,13 +207,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.17.8</version>
+          <version>1.18.2</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.17.8</version>
+          <version>1.18.2</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -223,25 +223,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -271,7 +271,7 @@
         <dependency>
           <groupId>commons-codec</groupId>
           <artifactId>commons-codec</artifactId>
-          <version>1.19.0</version>
+          <version>1.20.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -283,13 +283,13 @@
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-lang3</artifactId>
-          <version>3.19.0</version>
+          <version>3.20.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
-          <version>2.20.0</version>
+          <version>2.21.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.38.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.38.target
index 59bd128..3eefbe5 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.38.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.38.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.38" sequenceNumber="1762763962">
+<target name="jgit-4.38" sequenceNumber="1765188983">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -39,7 +39,7 @@
         <dependency>
           <groupId>org.tukaani</groupId>
           <artifactId>xz</artifactId>
-          <version>1.10</version>
+          <version>1.11</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -107,61 +107,61 @@
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-servlet</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-nested</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-security</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.1.3</version>
+          <version>12.1.5</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -207,13 +207,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.17.8</version>
+          <version>1.18.2</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.17.8</version>
+          <version>1.18.2</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -223,25 +223,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.82</version>
+          <version>1.83</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -271,7 +271,7 @@
         <dependency>
           <groupId>commons-codec</groupId>
           <artifactId>commons-codec</artifactId>
-          <version>1.19.0</version>
+          <version>1.20.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -283,13 +283,13 @@
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-lang3</artifactId>
-          <version>3.19.0</version>
+          <version>3.20.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
-          <version>2.20.0</version>
+          <version>2.21.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/maven/dependencies.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/maven/dependencies.tpd
index a610a02..04bf070 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/maven/dependencies.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/maven/dependencies.tpd
@@ -10,7 +10,7 @@
 	dependency {
 		groupId = "commons-codec"
 		artifactId = "commons-codec"
-		version = "1.19.0"
+		version = "1.20.0"
 	}
 	dependency {
 		groupId = "org.apache.commons"
@@ -20,12 +20,12 @@
 	dependency {
 		groupId = "org.apache.commons"
 		artifactId = "commons-lang3"
-		version = "3.19.0"
+		version = "3.20.0"
 	}
 	dependency {
 		groupId = "commons-io"
 		artifactId = "commons-io"
-		version = "2.20.0"
+		version = "2.21.0"
 	}
 	dependency {
 		groupId = "commons-logging"
@@ -69,22 +69,22 @@
 	dependency {
 		groupId = "org.bouncycastle"
 		artifactId = "bcpg-jdk18on"
-		version = "1.82"
+		version = "1.83"
 	}
 	dependency {
 		groupId = "org.bouncycastle"
 		artifactId = "bcprov-jdk18on"
-		version = "1.82"
+		version = "1.83"
 	}
 	dependency {
 		groupId = "org.bouncycastle"
 		artifactId = "bcpkix-jdk18on"
-		version = "1.82"
+		version = "1.83"
 	}
 	dependency {
 		groupId = "org.bouncycastle"
 		artifactId = "bcutil-jdk18on"
-		version = "1.82"
+		version = "1.83"
 	}
 }
 
@@ -97,12 +97,12 @@
 	dependency {
 		groupId = "net.bytebuddy"
 		artifactId = "byte-buddy"
-		version = "1.17.8"
+		version = "1.18.2"
 	}
 	dependency {
 		groupId = "net.bytebuddy"
 		artifactId = "byte-buddy-agent"
-		version = "1.17.8"
+		version = "1.18.2"
 	}
 }
 
@@ -154,52 +154,52 @@
 	dependency {
 		groupId = "org.eclipse.jetty.ee8"
 		artifactId = "jetty-ee8-servlet"
-		version = "12.1.3"
+		version = "12.1.5"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty.ee8"
 		artifactId = "jetty-ee8-nested"
-		version = "12.1.3"
+		version = "12.1.5"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty.ee8"
 		artifactId = "jetty-ee8-security"
-		version = "12.1.3"
+		version = "12.1.5"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-http"
-		version = "12.1.3"
+		version = "12.1.5"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-io"
-		version = "12.1.3"
+		version = "12.1.5"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-security"
-		version = "12.1.3"
+		version = "12.1.5"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-server"
-		version = "12.1.3"
+		version = "12.1.5"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-session"
-		version = "12.1.3"
+		version = "12.1.5"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-util"
-		version = "12.1.3"
+		version = "12.1.5"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-util-ajax"
-		version = "12.1.3"
+		version = "12.1.5"
 	}
 	dependency {
 		groupId = "jakarta.servlet"
@@ -284,6 +284,6 @@
 	dependency {
 		groupId = "org.tukaani"
 		artifactId = "xz"
-		version = "1.10"
+		version = "1.11"
 	}
 }
\ No newline at end of file
diff --git a/org.eclipse.jgit.packaging/pom.xml b/org.eclipse.jgit.packaging/pom.xml
index 301ed91..07f6f21 100644
--- a/org.eclipse.jgit.packaging/pom.xml
+++ b/org.eclipse.jgit.packaging/pom.xml
@@ -16,7 +16,7 @@
 
   <groupId>org.eclipse.jgit</groupId>
   <artifactId>jgit.tycho.parent</artifactId>
-  <version>7.5.0-SNAPSHOT</version>
+  <version>7.6.0-SNAPSHOT</version>
   <packaging>pom</packaging>
 
   <name>JGit Tycho Parent</name>
diff --git a/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
index 6b4b3cd..5f81b7d 100644
--- a/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
@@ -3,31 +3,31 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.pgm.test
 Bundle-SymbolicName: org.eclipse.jgit.pgm.test
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Import-Package: org.eclipse.jgit.api;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.api.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.diff;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.dircache;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.diffmergetool;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.junit;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib.internal;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.merge;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.pgm;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.pgm.internal;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.pgm.opt;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revwalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.treewalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util.io;version="[7.5.0,7.6.0)",
+Import-Package: org.eclipse.jgit.api;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.api.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.diff;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.dircache;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.diffmergetool;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.junit;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib.internal;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.merge;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.pgm;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.pgm.internal;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.pgm.opt;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revwalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.treewalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util.io;version="[7.6.0,7.7.0)",
  org.hamcrest.core;bundle-version="[1.1.0,3.0.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.rules;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.pgm.test/pom.xml b/org.eclipse.jgit.pgm.test/pom.xml
index b8aa902..de0a37a 100644
--- a/org.eclipse.jgit.pgm.test/pom.xml
+++ b/org.eclipse.jgit.pgm.test/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.pgm.test</artifactId>
diff --git a/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF b/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF
index 98a722f..95eff34 100644
--- a/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.pgm
 Bundle-SymbolicName: org.eclipse.jgit.pgm
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
@@ -16,50 +16,50 @@
  org.eclipse.jetty.server.handler;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.util;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.util.component;version="[12.0.0,13.0.0)",
- org.eclipse.jgit.api;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.api.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.archive;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.awtui;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.blame;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.diff;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.dircache;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.gitrepo;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.diffmergetool;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.io;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.midx;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.pack;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs.server;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs.server.fs;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs.server.s3;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib.internal;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.merge;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.nls;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.notes;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revplot;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revwalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revwalk.filter;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.storage.pack;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.http.apache;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.resolver;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.ssh.jsch;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.sshd;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.treewalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util.io;version="[7.5.0,7.6.0)",
+ org.eclipse.jgit.api;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.api.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.archive;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.awtui;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.blame;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.diff;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.dircache;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.gitrepo;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.diffmergetool;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.io;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.midx;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs.server;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs.server.fs;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs.server.s3;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib.internal;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.merge;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.nls;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.notes;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revplot;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revwalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revwalk.filter;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.storage.pack;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.http.apache;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.resolver;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.ssh.jsch;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.sshd;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.treewalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util.io;version="[7.6.0,7.7.0)",
  org.kohsuke.args4j;version="[2.33.0,3.0.0)",
  org.kohsuke.args4j.spi;version="[2.33.0,3.0.0)"
-Export-Package: org.eclipse.jgit.console;version="7.5.0";
+Export-Package: org.eclipse.jgit.console;version="7.6.0";
  uses:="org.eclipse.jgit.transport,
   org.eclipse.jgit.util",
- org.eclipse.jgit.pgm;version="7.5.0";
+ org.eclipse.jgit.pgm;version="7.6.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.util.io,
    org.eclipse.jgit.awtui,
@@ -71,14 +71,14 @@
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.api,
    javax.swing",
- org.eclipse.jgit.pgm.debug;version="7.5.0";
+ org.eclipse.jgit.pgm.debug;version="7.6.0";
   uses:="org.eclipse.jgit.util.io,
    org.eclipse.jgit.pgm,
    org.eclipse.jetty.servlet",
- org.eclipse.jgit.pgm.internal;version="7.5.0";
+ org.eclipse.jgit.pgm.internal;version="7.6.0";
   x-friends:="org.eclipse.jgit.pgm.test,
    org.eclipse.jgit.test",
- org.eclipse.jgit.pgm.opt;version="7.5.0";
+ org.eclipse.jgit.pgm.opt;version="7.6.0";
   uses:="org.kohsuke.args4j,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
diff --git a/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF
index 36b0d49..dcb5519 100644
--- a/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.pgm - Sources
 Bundle-SymbolicName: org.eclipse.jgit.pgm.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.pgm;version="7.5.0.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.pgm;version="7.6.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.pgm/pom.xml b/org.eclipse.jgit.pgm/pom.xml
index 88777e9..f1ead81 100644
--- a/org.eclipse.jgit.pgm/pom.xml
+++ b/org.eclipse.jgit.pgm/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.pgm</artifactId>
diff --git a/org.eclipse.jgit.ssh.apache.agent/META-INF/MANIFEST.MF b/org.eclipse.jgit.ssh.apache.agent/META-INF/MANIFEST.MF
index 9841deb..2ef7256 100644
--- a/org.eclipse.jgit.ssh.apache.agent/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache.agent/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.agent;singleton:=true
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/agent
 Bundle-Vendor: %Bundle-Vendor
-Fragment-Host: org.eclipse.jgit.ssh.apache;bundle-version="[7.5.0,7.6.0)"
+Fragment-Host: org.eclipse.jgit.ssh.apache;bundle-version="[7.6.0,7.7.0)"
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.jgit.ssh.apache.agent
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Import-Package: org.eclipse.jgit.transport.sshd;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.nls;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)"
+Import-Package: org.eclipse.jgit.transport.sshd;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.nls;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)"
 Require-Bundle: com.sun.jna;bundle-version="[5.8.0,6.0.0)",
  com.sun.jna.platform;bundle-version="[5.8.0,6.0.0)"
-Export-Package: org.eclipse.jgit.internal.transport.sshd.agent.connector;version="7.5.0";x-internal:=true
+Export-Package: org.eclipse.jgit.internal.transport.sshd.agent.connector;version="7.6.0";x-internal:=true
diff --git a/org.eclipse.jgit.ssh.apache.agent/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.ssh.apache.agent/META-INF/SOURCE-MANIFEST.MF
index 5a0c41a..56d463f 100644
--- a/org.eclipse.jgit.ssh.apache.agent/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache.agent/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.ssh.apache.agent - Sources
 Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.agent.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache.agent;version="7.5.0.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache.agent;version="7.6.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.apache.agent/pom.xml b/org.eclipse.jgit.ssh.apache.agent/pom.xml
index 5c9863f..9c2bf03 100644
--- a/org.eclipse.jgit.ssh.apache.agent/pom.xml
+++ b/org.eclipse.jgit.ssh.apache.agent/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ssh.apache.agent</artifactId>
diff --git a/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
index c10f613..21aa80f 100644
--- a/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ssh.apache.test
 Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.test
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
@@ -26,22 +26,22 @@
  org.apache.sshd.core;version="[2.16.0,2.17.0)",
  org.apache.sshd.server;version="[2.16.0,2.17.0)",
  org.apache.sshd.server.forward;version="[2.16.0,2.17.0)",
- org.eclipse.jgit.annotations;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.api;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.api.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.signing.ssh;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.transport.sshd;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.transport.sshd.proxy;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.junit;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.junit.ssh;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revwalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.sshd;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.sshd.agent;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)",
+ org.eclipse.jgit.annotations;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.api;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.api.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.signing.ssh;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.transport.sshd;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.transport.sshd.proxy;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.junit;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.junit.ssh;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revwalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.sshd;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.sshd.agent;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)",
  org.hamcrest;version="[3.0.0,4.0.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.experimental.theories;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.ssh.apache.test/pom.xml b/org.eclipse.jgit.ssh.apache.test/pom.xml
index ee33400..5a9057f 100644
--- a/org.eclipse.jgit.ssh.apache.test/pom.xml
+++ b/org.eclipse.jgit.ssh.apache.test/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ssh.apache.test</artifactId>
diff --git a/org.eclipse.jgit.ssh.apache/META-INF/MANIFEST.MF b/org.eclipse.jgit.ssh.apache/META-INF/MANIFEST.MF
index 8879e4c..97d5656 100644
--- a/org.eclipse.jgit.ssh.apache/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache/META-INF/MANIFEST.MF
@@ -6,11 +6,11 @@
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-ActivationPolicy: lazy
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Export-Package: org.eclipse.jgit.internal.signing.ssh;version="7.5.0";x-friends:="org.eclipse.jgit.ssh.apache.test",
- org.eclipse.jgit.internal.transport.sshd;version="7.5.0";x-friends:="org.eclipse.jgit.ssh.apache.test";
+Export-Package: org.eclipse.jgit.internal.signing.ssh;version="7.6.0";x-friends:="org.eclipse.jgit.ssh.apache.test",
+ org.eclipse.jgit.internal.transport.sshd;version="7.6.0";x-friends:="org.eclipse.jgit.ssh.apache.test";
   uses:="org.apache.sshd.client,
    org.apache.sshd.client.auth,
    org.apache.sshd.client.auth.keyboard,
@@ -25,19 +25,19 @@
    org.apache.sshd.common.signature,
    org.apache.sshd.common.util.buffer,
    org.eclipse.jgit.transport",
- org.eclipse.jgit.internal.transport.sshd.agent;version="7.5.0";x-internal:=true,
- org.eclipse.jgit.internal.transport.sshd.auth;version="7.5.0";x-internal:=true,
- org.eclipse.jgit.internal.transport.sshd.pkcs11;version="7.5.0";x-internal:=true,
- org.eclipse.jgit.internal.transport.sshd.proxy;version="7.5.0";x-friends:="org.eclipse.jgit.ssh.apache.test",
- org.eclipse.jgit.signing.ssh;version="7.5.0";uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.transport.sshd;version="7.5.0";
+ org.eclipse.jgit.internal.transport.sshd.agent;version="7.6.0";x-internal:=true,
+ org.eclipse.jgit.internal.transport.sshd.auth;version="7.6.0";x-internal:=true,
+ org.eclipse.jgit.internal.transport.sshd.pkcs11;version="7.6.0";x-internal:=true,
+ org.eclipse.jgit.internal.transport.sshd.proxy;version="7.6.0";x-friends:="org.eclipse.jgit.ssh.apache.test",
+ org.eclipse.jgit.signing.ssh;version="7.6.0";uses:="org.eclipse.jgit.lib",
+ org.eclipse.jgit.transport.sshd;version="7.6.0";
   uses:="org.eclipse.jgit.transport,
    org.apache.sshd.client.config.hosts,
    org.apache.sshd.common.keyprovider,
    org.eclipse.jgit.util,
    org.apache.sshd.client.session,
    org.apache.sshd.client.keyverifier",
- org.eclipse.jgit.transport.sshd.agent;version="7.5.0"
+ org.eclipse.jgit.transport.sshd.agent;version="7.6.0"
 Import-Package: org.bouncycastle.jce.provider;version="[1.80.0,2.0.0)",
  org.apache.sshd.agent;version="[2.16.0,2.17.0)",
  org.apache.sshd.client;version="[2.16.0,2.17.0)",
@@ -91,14 +91,14 @@
  org.apache.sshd.sftp;version="[2.16.0,2.17.0)",
  org.apache.sshd.sftp.client;version="[2.16.0,2.17.0)",
  org.apache.sshd.sftp.common;version="[2.16.0,2.17.0)",
- org.eclipse.jgit.annotations;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.api.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.fnmatch;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.nls;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)",
+ org.eclipse.jgit.annotations;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.api.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.fnmatch;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.nls;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)",
  org.slf4j;version="[1.7.0,3.0.0)"
diff --git a/org.eclipse.jgit.ssh.apache/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.ssh.apache/META-INF/SOURCE-MANIFEST.MF
index bd2faa5..5ef864b 100644
--- a/org.eclipse.jgit.ssh.apache/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.ssh.apache - Sources
 Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache;version="7.5.0.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache;version="7.6.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.apache/pom.xml b/org.eclipse.jgit.ssh.apache/pom.xml
index 77e4756..3edf6e6 100644
--- a/org.eclipse.jgit.ssh.apache/pom.xml
+++ b/org.eclipse.jgit.ssh.apache/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ssh.apache</artifactId>
diff --git a/org.eclipse.jgit.ssh.jsch.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.ssh.jsch.test/META-INF/MANIFEST.MF
index 5823845..4632a36 100644
--- a/org.eclipse.jgit.ssh.jsch.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.jsch.test/META-INF/MANIFEST.MF
@@ -3,20 +3,20 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ssh.jsch.test
 Bundle-SymbolicName: org.eclipse.jgit.ssh.jsch.test
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
 Import-Package: com.jcraft.jsch;version="[0.1.54,0.2.0)",
- org.eclipse.jgit.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.junit;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.junit.ssh;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.ssh.jsch;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)",
+ org.eclipse.jgit.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.junit;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.junit.ssh;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.ssh.jsch;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)",
  org.hamcrest;version="[3.0.0,4.0.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.experimental.theories;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.ssh.jsch.test/pom.xml b/org.eclipse.jgit.ssh.jsch.test/pom.xml
index 467154f..70b0af0 100644
--- a/org.eclipse.jgit.ssh.jsch.test/pom.xml
+++ b/org.eclipse.jgit.ssh.jsch.test/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ssh.jsch.test</artifactId>
diff --git a/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF b/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF
index 0e09896..436d251 100644
--- a/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF
@@ -3,20 +3,20 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ssh.jsch
 Bundle-SymbolicName: org.eclipse.jgit.ssh.jsch;singleton:=true
-Fragment-Host: org.eclipse.jgit;bundle-version="[7.5.0,7.6.0)"
+Fragment-Host: org.eclipse.jgit;bundle-version="[7.6.0,7.7.0)"
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/jsch
 Bundle-ActivationPolicy: lazy
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Export-Package: org.eclipse.jgit.transport.ssh.jsch;version="7.5.0"
+Export-Package: org.eclipse.jgit.transport.ssh.jsch;version="7.6.0"
 Import-Package: com.jcraft.jsch;version="[0.1.37,0.2.0)",
- org.eclipse.jgit.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.nls;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util.io;version="[7.5.0,7.6.0)",
+ org.eclipse.jgit.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.nls;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util.io;version="[7.6.0,7.7.0)",
  org.slf4j;version="[1.7.0,3.0.0)"
diff --git a/org.eclipse.jgit.ssh.jsch/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.ssh.jsch/META-INF/SOURCE-MANIFEST.MF
index ba5619c..7cba329 100644
--- a/org.eclipse.jgit.ssh.jsch/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.jsch/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.ssh.jsch - Sources
 Bundle-SymbolicName: org.eclipse.jgit.ssh.jsch.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.jsch;version="7.5.0.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.ssh.jsch;version="7.6.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.jsch/pom.xml b/org.eclipse.jgit.ssh.jsch/pom.xml
index 59d8b0b..91caa5e 100644
--- a/org.eclipse.jgit.ssh.jsch/pom.xml
+++ b/org.eclipse.jgit.ssh.jsch/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ssh.jsch</artifactId>
diff --git a/org.eclipse.jgit.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.test/META-INF/MANIFEST.MF
index c724d35..bee0f49 100644
--- a/org.eclipse.jgit.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.test/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.test
 Bundle-SymbolicName: org.eclipse.jgit.test
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Localization: plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-RequiredExecutionEnvironment: JavaSE-17
@@ -21,66 +21,66 @@
  org.apache.commons.io.output;version="[2.15.0,3.0.0)",
  org.apache.commons.lang3;version="[3.17.0,4.0.0)",
  org.assertj.core.api;version="[3.14.0,4.0.0)",
- org.eclipse.jgit.annotations;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.api;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.api.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.archive;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.attributes;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.awtui;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.blame;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.blame.cache;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.diff;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.dircache;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.events;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.fnmatch;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.gitrepo;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.hooks;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.ignore;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.ignore.internal;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.diff;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.diffmergetool;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.fsck;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.revwalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.commitgraph;version="7.5.0",
- org.eclipse.jgit.internal.storage.dfs;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.io;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.memory;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.midx;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.pack;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.transport.connectivity;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.transport.http;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.transport.parser;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.junit;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.junit.time;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lfs;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib.internal;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.logging;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.merge;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.nls;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.notes;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.patch;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.pgm;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.pgm.internal;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revplot;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revwalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revwalk.filter;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.storage.file;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.storage.pack;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.submodule;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.http;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport.resolver;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.treewalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util.io;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util.sha1;version="[7.5.0,7.6.0)",
+ org.eclipse.jgit.annotations;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.api;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.api.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.archive;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.attributes;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.awtui;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.blame;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.blame.cache;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.diff;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.dircache;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.events;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.fnmatch;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.gitrepo;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.hooks;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.ignore;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.ignore.internal;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.diff;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.diffmergetool;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.fsck;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.revwalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.commitgraph;version="7.6.0",
+ org.eclipse.jgit.internal.storage.dfs;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.io;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.memory;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.midx;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.transport.connectivity;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.transport.http;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.transport.parser;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.junit;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.junit.time;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lfs;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib.internal;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.logging;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.merge;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.nls;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.notes;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.patch;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.pgm;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.pgm.internal;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revplot;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revwalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revwalk.filter;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.storage.file;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.storage.pack;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.submodule;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.http;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport.resolver;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.treewalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util.io;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util.sha1;version="[7.6.0,7.7.0)",
  org.hamcrest;version="[3.0.0,4.0.0)",
  org.hamcrest.collection;version="[3.0.0,4.0.0)",
  org.junit;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.test/pom.xml b/org.eclipse.jgit.test/pom.xml
index 1483319..387f168 100644
--- a/org.eclipse.jgit.test/pom.xml
+++ b/org.eclipse.jgit.test/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.test</artifactId>
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/ignore/BasicRuleTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/ignore/BasicRuleTest.java
index 6983eaa..f5f6bd3 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/ignore/BasicRuleTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/ignore/BasicRuleTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014, Andrey Loskutov <loskutov@gmx.de> and others
+ * Copyright (C) 2014, 2025 Andrey Loskutov <loskutov@gmx.de> and others
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Distribution License v. 1.0 which is available at
@@ -58,14 +58,4 @@ public void testStripTrailingChar() {
 		assertEquals("a", Strings.stripTrailing("a///", '/'));
 		assertEquals("a/ ", Strings.stripTrailing("a/ ", '/'));
 	}
-
-	@Test
-	public void testStripTrailingWhitespace() {
-		assertEquals("", Strings.stripTrailingWhitespace(""));
-		assertEquals("", Strings.stripTrailingWhitespace("   "));
-		assertEquals("a", Strings.stripTrailingWhitespace("a"));
-		assertEquals("a", Strings.stripTrailingWhitespace("a "));
-		assertEquals("a", Strings.stripTrailingWhitespace("a  "));
-		assertEquals("a", Strings.stripTrailingWhitespace("a \t"));
-	}
 }
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/ignore/CGitIgnoreTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/ignore/CGitIgnoreTest.java
index 083e6cd..14e4150 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/ignore/CGitIgnoreTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/ignore/CGitIgnoreTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 Thomas Wolf <thomas.wolf@paranor.ch> and others
+ * Copyright (C) 2017, 2025 Thomas Wolf <twolf@apache.org> and others
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Distribution License v. 1.0 which is available at
@@ -15,14 +15,14 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.IOException;
-import java.io.InputStreamReader;
+import java.io.InputStream;
 import java.nio.file.Files;
+import java.util.ArrayList;
 import java.util.LinkedHashSet;
+import java.util.List;
 import java.util.Set;
 
 import org.eclipse.jgit.junit.RepositoryTestCase;
@@ -72,7 +72,7 @@ private String toString(TemporaryBuffer b) throws IOException {
 	private String[] cgitIgnored() throws Exception {
 		FS fs = db.getFS();
 		ProcessBuilder builder = fs.runInShell("git", new String[] { "ls-files",
-				"--ignored", "--exclude-standard", "-o" });
+				"--ignored", "--exclude-standard", "-o", "-z" });
 		builder.directory(db.getWorkTree());
 		builder.environment().put("HOME", fs.userHome().getAbsolutePath());
 		ExecutionResult result = fs.execute(builder,
@@ -80,17 +80,13 @@ private String toString(TemporaryBuffer b) throws IOException {
 		String errorOut = toString(result.getStderr());
 		assertEquals("External git failed", "exit 0\n",
 				"exit " + result.getRc() + '\n' + errorOut);
-		try (BufferedReader r = new BufferedReader(new InputStreamReader(
-				new BufferedInputStream(result.getStdout().openInputStream()),
-				UTF_8))) {
-			return r.lines().toArray(String[]::new);
-		}
+		return readLines(result.getStdout());
 	}
 
 	private String[] cgitUntracked() throws Exception {
 		FS fs = db.getFS();
 		ProcessBuilder builder = fs.runInShell("git",
-				new String[] { "ls-files", "--exclude-standard", "-o" });
+				new String[] { "ls-files", "--exclude-standard", "-o", "-z" });
 		builder.directory(db.getWorkTree());
 		builder.environment().put("HOME", fs.userHome().getAbsolutePath());
 		ExecutionResult result = fs.execute(builder,
@@ -98,10 +94,26 @@ private String toString(TemporaryBuffer b) throws IOException {
 		String errorOut = toString(result.getStderr());
 		assertEquals("External git failed", "exit 0\n",
 				"exit " + result.getRc() + '\n' + errorOut);
-		try (BufferedReader r = new BufferedReader(new InputStreamReader(
-				new BufferedInputStream(result.getStdout().openInputStream()),
-				UTF_8))) {
-			return r.lines().toArray(String[]::new);
+		return readLines(result.getStdout());
+	}
+
+	private String[] readLines(TemporaryBuffer buf) throws IOException {
+		try (InputStream in = buf.openInputStreamWithAutoDestroy()) {
+			byte[] data = in.readAllBytes();
+			int from = 0;
+			int to = 0;
+			List<String> items = new ArrayList<>();
+			while (to < data.length) {
+				if (data[to++] == 0) {
+					items.add(new String(data, from, to - from - 1, UTF_8));
+					from = to;
+				}
+			}
+			if (from < data.length) {
+				// Last item not terminated by NUL
+				items.add(new String(data, from, to - from, UTF_8));
+			}
+			return items.toArray(new String[0]);
 		}
 	}
 
@@ -119,7 +131,7 @@ private void jgitIgnoredAndUntracked(LinkedHashSet<String> ignored,
 					ignored.add(walk.getPathString());
 				} else {
 					// tests of this class won't add any files to the index,
-					// hence everything what is not ignored is untracked
+					// hence everything not ignored is untracked
 					untracked.add(walk.getPathString());
 				}
 			}
@@ -302,6 +314,48 @@ public void testSimpleRootGitIgnoreGlobalNegation1() throws Exception {
 	}
 
 	@Test
+	public void testSingleBackslash() throws Exception {
+		createFiles("foo\\", "foo/foo\\", "bar");
+		writeTrashFile(".gitignore", "foo\\");
+		assertSameAsCGit("foo\\", "foo/foo\\", "bar");
+	}
+
+	@Test
+	public void testDoubleBackslash() throws Exception {
+		createFiles("foo\\", "foo/foo\\", "bar");
+		writeTrashFile(".gitignore", "foo\\\\");
+		assertSameAsCGit("bar");
+	}
+
+	@Test
+	public void testSingleBackslashRegexp() throws Exception {
+		createFiles("foobar\\", "foo/foobar\\", "bar");
+		writeTrashFile(".gitignore", "fo*r\\");
+		assertSameAsCGit("foobar\\", "foo/foobar\\", "bar");
+	}
+
+	@Test
+	public void testDoubleBackslashRegexp() throws Exception {
+		createFiles("foobar\\", "foo/foobar\\", "bar");
+		writeTrashFile(".gitignore", "fo*r\\\\");
+		assertSameAsCGit("bar");
+	}
+
+	@Test
+	public void testSingleBackslashRegexpInside() throws Exception {
+		createFiles("fo\\obar", "foo/fo\\obar", "bar", "foobar");
+		writeTrashFile(".gitignore", "fo\\o*r");
+		assertSameAsCGit("fo\\obar", "foo/fo\\obar", "bar");
+	}
+
+	@Test
+	public void testDoubleBackslashRegexpInside() throws Exception {
+		createFiles("fo\\obar", "foo/fo\\obar", "bar", "foobar");
+		writeTrashFile(".gitignore", "fo\\\\o*r");
+		assertSameAsCGit("bar", "foobar");
+	}
+
+	@Test
 	public void testRepeatedNegationInDifferentFiles5() throws Exception {
 		// see IgnoreNodeTest.testRepeatedNegationInDifferentFiles5
 		createFiles("a/b/e/nothere.o");
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/ignore/IgnoreRuleSpecialCasesTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/ignore/IgnoreRuleSpecialCasesTest.java
index 28e6858..103059a 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/ignore/IgnoreRuleSpecialCasesTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/ignore/IgnoreRuleSpecialCasesTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008, Florian Köberle <florianskarten@web.de> and others
+ * Copyright (C) 2008, 2025 Florian Köberle <florianskarten@web.de> and others
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Distribution License v. 1.0 which is available at
@@ -10,7 +10,6 @@
 package org.eclipse.jgit.ignore;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assume.assumeTrue;
 
 import org.junit.Test;
 
@@ -18,17 +17,6 @@
 public class IgnoreRuleSpecialCasesTest {
 
 	private void assertMatch(final String pattern, final String input,
-			final boolean matchExpected, Boolean... assume) {
-		boolean assumeDir = input.endsWith("/");
-		FastIgnoreRule matcher = new FastIgnoreRule(pattern);
-		if (assume.length == 0 || !assume[0].booleanValue()) {
-			assertEquals(matchExpected, matcher.isMatch(input, assumeDir));
-		} else {
-			assumeTrue(matchExpected == matcher.isMatch(input, assumeDir));
-		}
-	}
-
-	private void assertFileNameMatch(final String pattern, final String input,
 			final boolean matchExpected) {
 		boolean assumeDir = input.endsWith("/");
 		FastIgnoreRule matcher = new FastIgnoreRule(pattern);
@@ -739,7 +727,7 @@ public void testSpecialGroupCase9() throws Exception {
 
 	@Test
 	public void testSpecialGroupCase10() throws Exception {
-		// Second bracket is threated literally, so both [ and : should match
+		// Second bracket is treated literally, so both [ and : should match
 		assertMatch("[[:]", ":", true);
 		assertMatch("[[:]", "[", true);
 	}
@@ -835,6 +823,8 @@ public void testNotEscapingBackslash() throws Exception {
 		assertMatch("c:\\/", "a/c:/", true);
 		assertMatch("c:\\tmp", "c:tmp", true);
 		assertMatch("c:\\tmp", "a/c:tmp", true);
+		assertMatch("foo\\/bar", "foo/bar", true);
+		assertMatch("foo\\/bar\\/", "foo/bar/", true);
 	}
 
 	@Test
@@ -844,14 +834,21 @@ public void testMultipleEscapedCharacters1() throws Exception {
 
 	@Test
 	public void testBackslash() throws Exception {
-		assertMatch("a\\", "a", true);
+		assertMatch("a\\", "a", false);
 		assertMatch("\\a", "a", true);
-		assertMatch("a/\\", "a/", true);
-		assertMatch("a/b\\", "a/b", true);
+		assertMatch("a/\\", "a/", false);
+		assertMatch("a/b\\", "a/b", false);
 		assertMatch("\\a/b", "a/b", true);
 		assertMatch("/\\a", "/a", true);
-		assertMatch("\\a\\b\\c\\", "abc", true);
-		assertMatch("/\\a/\\b/\\c\\", "a/b/c", true);
+		assertMatch("\\a\\b\\c\\", "abc", false);
+		assertMatch("\\a\\b\\c", "abc", true);
+		assertMatch("/\\a/\\b/\\c\\", "a/b/c", false);
+		assertMatch("/\\a/\\b/\\c", "a/b/c", true);
+		assertMatch("/\\a\\/\\b\\/\\c", "a/b/c", true);
+
+		assertMatch("foo\\", "foo", false);
+		assertMatch("foo\\", "foo\\", false);
+		assertMatch("foo\\\\", "foo\\", true);
 
 		// empty path segment doesn't match
 		assertMatch("\\/a", "/a", false);
@@ -859,6 +856,27 @@ public void testBackslash() throws Exception {
 	}
 
 	@Test
+	public void testBackslashInRegexp() throws Exception {
+		assertMatch("f*[\\x]y", "f\\y", false);
+		assertMatch("f*[\\x]y", "fxy", true);
+		assertMatch("f*[\\\\x]y", "f\\y", true);
+		assertMatch("f*[\\\\x]y", "fxy", true);
+		assertMatch("f*[\\x]y", "foo\\y", false);
+		assertMatch("f*[\\x]y", "fooxy", true);
+		assertMatch("f*[\\\\x]y", "foo\\y", true);
+		assertMatch("f*[\\\\x]y", "fooxy", true);
+		assertMatch("f*a\\y", "fa\\y", false);
+		assertMatch("f*a\\y", "fay", true);
+		assertMatch("f*a\\y", "fooa\\y", false);
+		assertMatch("f*a\\y", "fooay", true);
+		assertMatch("f*a\\\\y", "fa\\y", true);
+		assertMatch("f*a\\\\y", "fooa\\y", true);
+		assertMatch("f\\*y", "fooy", false);
+		assertMatch("f\\*y", "f*y", true);
+		assertMatch("/\\a*A\\/\\b*B\\/\\c*C", "afooA/bfooB/cC", true);
+	}
+
+	@Test
 	public void testDollar() throws Exception {
 		assertMatch("$", "$", true);
 		assertMatch("$x", "$x", true);
@@ -991,27 +1009,27 @@ public void testBracketsRandom() throws Exception {
 
 	@Test
 	public void testFilePathSimpleCase() throws Exception {
-		assertFileNameMatch("a/b", "a/b", true);
+		assertMatch("a/b", "a/b", true);
 	}
 
 	@Test
 	public void testFilePathCase0() throws Exception {
-		assertFileNameMatch("a*b", "a/b", false);
+		assertMatch("a*b", "a/b", false);
 	}
 
 	@Test
 	public void testFilePathCase1() throws Exception {
-		assertFileNameMatch("a?b", "a/b", false);
+		assertMatch("a?b", "a/b", false);
 	}
 
 	@Test
 	public void testFilePathCase2() throws Exception {
-		assertFileNameMatch("a*b", "a\\b", true);
+		assertMatch("a*b", "a\\b", true);
 	}
 
 	@Test
 	public void testFilePathCase3() throws Exception {
-		assertFileNameMatch("a?b", "a\\b", true);
+		assertMatch("a?b", "a\\b", true);
 	}
 
 }
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsBlockMidxTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsBlockMidxTest.java
index 0e12707..8ac77c6 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsBlockMidxTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsBlockMidxTest.java
@@ -25,7 +25,7 @@
 public class DfsBlockMidxTest {
 
 	private static final DfsStreamKey key = DfsStreamKey
-			.of(new DfsRepositoryDescription("repo"), "pack-1", PackExt.PACK);;
+			.of(new DfsRepositoryDescription("repo"), "pack-1", PackExt.PACK);
 
 	@Test
 	public void block_boundaries() {
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsPackFileMidxTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsPackFileMidxNPacksTest.java
similarity index 97%
rename from org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsPackFileMidxTest.java
rename to org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsPackFileMidxNPacksTest.java
index 3fd4e2c..758ac1f 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsPackFileMidxTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsPackFileMidxNPacksTest.java
@@ -36,7 +36,9 @@
 import java.util.zip.Deflater;
 
 import org.eclipse.jgit.annotations.Nullable;
+import org.eclipse.jgit.internal.storage.dfs.DfsPackFileMidx.DfsPackOffset;
 import org.eclipse.jgit.internal.storage.dfs.DfsPackFileMidx.VOffsetCalculator;
+import org.eclipse.jgit.internal.storage.dfs.DfsPackFileMidxNPacks.VOffsetCalculatorNPacks;
 import org.eclipse.jgit.internal.storage.file.PackBitmapIndex;
 import org.eclipse.jgit.internal.storage.file.PackIndex;
 import org.eclipse.jgit.internal.storage.midx.MultiPackIndex.PackOffset;
@@ -61,7 +63,7 @@
 import org.junit.Before;
 import org.junit.Test;
 
-public class DfsPackFileMidxTest {
+public class DfsPackFileMidxNPacksTest {
 
 	private static final ObjectId NOT_IN_PACK = ObjectId
 			.fromString("3f306cb3fcd5116919fecad615524bd6e6ea4ba7");
@@ -315,7 +317,7 @@ public void midx_findOffset() throws IOException {
 
 		try (DfsReader ctx = db.getObjectDatabase().newReader()) {
 			long posOne = midx.findOffset(ctx, o1);
-			DfsPackFileMidx.DfsPackOffset po = midx.getOffsetCalculator()
+			DfsPackOffset po = midx.getOffsetCalculator()
 					.decode(posOne);
 			assertEquals(12, po.getPackOffset());
 			assertEquals(packThreeSize + packTwoSize, po.getPackStart());
@@ -980,7 +982,7 @@ public void voffsetcalculator_encode() {
 		DfsPackFile two = createDfsPackFile(1200);
 		DfsPackFile three = createDfsPackFile(900);
 
-		VOffsetCalculator calc = VOffsetCalculator
+		VOffsetCalculatorNPacks calc = VOffsetCalculatorNPacks
 				.fromPacks(new DfsPackFile[] { one, two, three }, null);
 
 		PackOffset po = PackOffset.create(0, 12);
@@ -997,11 +999,11 @@ public void voffsetcalculator_decode() {
 		DfsPackFile two = createDfsPackFile(1200);
 		DfsPackFile three = createDfsPackFile(900);
 
-		VOffsetCalculator calc = VOffsetCalculator
+		VOffsetCalculator calc = VOffsetCalculatorNPacks
 				.fromPacks(new DfsPackFile[] { one, two, three }, null);
 
 		// In first pack
-		DfsPackFileMidx.DfsPackOffset decoded = calc.decode(130);
+		DfsPackOffset decoded = calc.decode(130);
 		assertEquals(one.getPackDescription(),
 				decoded.getPack().getPackDescription());
 		assertEquals(130, decoded.getPackOffset());
@@ -1028,7 +1030,7 @@ public void voffsetcalculator_notFound() {
 		DfsPackFile two = createDfsPackFile(1200);
 		DfsPackFile three = createDfsPackFile(900);
 
-		VOffsetCalculator calc = VOffsetCalculator
+		VOffsetCalculatorNPacks calc = VOffsetCalculatorNPacks
 				.fromPacks(new DfsPackFile[] { one, two, three }, null);
 
 		assertEquals(-1, calc.encode(null));
@@ -1045,7 +1047,7 @@ public void voffsetcalculator_maxOffset() {
 				+ two.getPackDescription().getFileSize(PACK)
 				+ three.getPackDescription().getFileSize(PACK);
 
-		VOffsetCalculator calc = VOffsetCalculator
+		VOffsetCalculator calc = VOffsetCalculatorNPacks
 				.fromPacks(new DfsPackFile[] { one, two, three }, null);
 
 		assertEquals(totalSize, calc.getMaxOffset());
@@ -1057,14 +1059,14 @@ public void voffsetcalculator_withBase_encode() {
 		DfsPackFile two = createDfsPackFile(1200);
 		DfsPackFile three = createDfsPackFile(900);
 
-		VOffsetCalculator baseCalc = VOffsetCalculator
+		VOffsetCalculator baseCalc = VOffsetCalculatorNPacks
 				.fromPacks(new DfsPackFile[] { one, two, three }, null);
 
 		DfsPackFile four = createDfsPackFile(900);
 		DfsPackFile five = createDfsPackFile(1300);
 		DfsPackFile six = createDfsPackFile(1000);
 
-		VOffsetCalculator calc = VOffsetCalculator
+		VOffsetCalculatorNPacks calc = VOffsetCalculatorNPacks
 				.fromPacks(new DfsPackFile[] { four, five, six }, baseCalc);
 
 		// These packIds are now from the second top midx
@@ -1082,18 +1084,18 @@ public void voffsetcalculator_withBase_decode() {
 		DfsPackFile one = createDfsPackFile(800);
 		DfsPackFile two = createDfsPackFile(1200);
 		DfsPackFile three = createDfsPackFile(900);
-		VOffsetCalculator baseCalc = VOffsetCalculator
+		VOffsetCalculator baseCalc = VOffsetCalculatorNPacks
 				.fromPacks(new DfsPackFile[] { one, two, three }, null);
 
 		DfsPackFile four = createDfsPackFile(900);
 		DfsPackFile five = createDfsPackFile(1300);
 		DfsPackFile six = createDfsPackFile(1000);
 
-		VOffsetCalculator calc = VOffsetCalculator
+		VOffsetCalculator calc = VOffsetCalculatorNPacks
 				.fromPacks(new DfsPackFile[] { four, five, six }, baseCalc);
 
 		// In pack 1
-		DfsPackFileMidx.DfsPackOffset decoded = calc.decode(130);
+		DfsPackOffset decoded = calc.decode(130);
 		assertEquals(one.getPackDescription(),
 				decoded.getPack().getPackDescription());
 		assertEquals(130, decoded.getPackOffset());
@@ -1128,14 +1130,14 @@ public void voffsetcalculator_withBase_maxOffset() {
 		DfsPackFile two = createDfsPackFile(1200);
 		DfsPackFile three = createDfsPackFile(900);
 
-		VOffsetCalculator baseCalc = VOffsetCalculator
+		VOffsetCalculator baseCalc = VOffsetCalculatorNPacks
 				.fromPacks(new DfsPackFile[] { one, two, three }, null);
 
 		DfsPackFile four = createDfsPackFile(900);
 		DfsPackFile five = createDfsPackFile(1300);
 		DfsPackFile six = createDfsPackFile(1000);
 
-		VOffsetCalculator calc = VOffsetCalculator
+		VOffsetCalculator calc = VOffsetCalculatorNPacks
 				.fromPacks(new DfsPackFile[] { four, five, six }, baseCalc);
 
 		int expectedMaxOffset = 800 + 1200 + 900 + 900 + 1300 + 1000;
@@ -1229,7 +1231,7 @@ private static final class CounterProgressMonitor
 
 		@Override
 		public void start(int totalTasks) {
-
+			// empty
 		}
 
 		@Override
@@ -1244,7 +1246,7 @@ public void update(int completed) {
 
 		@Override
 		public void endTask() {
-
+			// empty
 		}
 
 		@Override
@@ -1254,7 +1256,7 @@ public boolean isCancelled() {
 
 		@Override
 		public void showDuration(boolean enabled) {
-
+			// empty
 		}
 	}
 
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/MidxPackListTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/MidxPackListTest.java
index 6ab1156..f20ca38 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/MidxPackListTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/MidxPackListTest.java
@@ -12,8 +12,10 @@
 import static java.util.Arrays.asList;
 import static org.eclipse.jgit.lib.Constants.OBJ_BLOB;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.List;
 import java.util.zip.Deflater;
@@ -188,7 +190,102 @@ public void findAllImpactedMidxs_nestedMidx() throws IOException {
 						.size());
 	}
 
+	@Test
+	public void getTopMidxPack_noMidx_null() throws IOException {
+		setupThreePacks();
+		MidxPackList packList = MidxPackList
+				.create(db.getObjectDatabase().getPacks());
+		assertNull(packList.getTopMidxPack());
+	}
 
+	@Test
+	public void getTopMidxPack_oneMidx_returned() throws IOException {
+		DfsPackFileMidx midx = setupThreePacksAndMidx();
+		MidxPackList packList = MidxPackList
+				.create(db.getObjectDatabase().getPacks());
+		assertEquals(midx.getPackDescription(),
+				packList.getTopMidxPack().getPackDescription());
+	}
+
+	@Test
+	public void getTopMidxPack_multipleMidx_mostRecent() throws IOException {
+		writePackWithRandomBlob(100);
+		writePackWithRandomBlob(300);
+		writePackWithRandomBlob(50);
+		writePackWithRandomBlob(400);
+		writePackWithRandomBlob(130);
+		writePackWithRandomBlob(500);
+		DfsPackFile[] packs = db.getObjectDatabase().getPacks();
+		assertEquals(6, packs.length);
+
+		// midx covers first two packs
+		writeMultipackIndex(Arrays.copyOfRange(packs, 4, 6), null);
+
+		// chain of midxs covering all
+		DfsPackFileMidx midxBase = writeMultipackIndex(
+				Arrays.copyOfRange(packs, 4, 6), null);
+		DfsPackFileMidx midxMid = writeMultipackIndex(
+				Arrays.copyOfRange(packs, 2, 4), midxBase);
+		DfsPackFileMidx chainTwo = writeMultipackIndex(
+				Arrays.copyOfRange(packs, 0, 2), midxMid);
+
+		MidxPackList packList = MidxPackList
+				.create(db.getObjectDatabase().getPacks());
+		assertEquals(chainTwo.getPackDescription(),
+				packList.getTopMidxPack().getPackDescription());
+	}
+
+	@Test
+	public void getPlainPacksNotCoveredBy_null_all() throws IOException {
+		setupThreePacks();
+		MidxPackList packList = MidxPackList
+				.create(db.getObjectDatabase().getPacks());
+		assertEquals(3, packList.getPlainPacksNotCoveredBy(null).size());
+	}
+
+	@Test
+	public void getPlainPacksNotCoveredBy_midxCoversAll_nothing()
+			throws IOException {
+		DfsPackFileMidx midx = setupThreePacksAndMidx();
+		MidxPackList packList = MidxPackList
+				.create(db.getObjectDatabase().getPacks());
+		assertEquals(0, packList.getPlainPacksNotCoveredBy(midx).size());
+	}
+
+	@Test
+	public void getPlainPacksNotCoveredBy_midxMissesOne_one()
+			throws IOException {
+		DfsPackFileMidx midx = setupThreePacksAndMidx();
+		writePackWithBlob("getPlainPacksNotCovered_missingone"
+				.getBytes(StandardCharsets.UTF_8));
+		MidxPackList packList = MidxPackList
+				.create(db.getObjectDatabase().getPacks());
+		assertEquals(1, packList.getPlainPacksNotCoveredBy(midx).size());
+	}
+
+	@Test
+	public void getPlainPacksNotCoveredBy_midxChain() throws IOException {
+		writePackWithRandomBlob(100);
+		writePackWithRandomBlob(300);
+		writePackWithRandomBlob(50);
+		writePackWithRandomBlob(400);
+		writePackWithRandomBlob(130);
+		writePackWithRandomBlob(500);
+		DfsPackFile[] packs = db.getObjectDatabase().getPacks();
+		assertEquals(6, packs.length);
+		DfsPackFileMidx midxBase = writeMultipackIndex(
+				Arrays.copyOfRange(packs, 4, 6), null);
+		DfsPackFileMidx midxMid = writeMultipackIndex(
+				Arrays.copyOfRange(packs, 2, 4), midxBase);
+		DfsPackFileMidx midxTip = writeMultipackIndex(
+				Arrays.copyOfRange(packs, 0, 2), midxMid);
+
+		MidxPackList packList = MidxPackList
+				.create(db.getObjectDatabase().getPacks());
+		assertEquals(4, packList.getPlainPacksNotCoveredBy(midxBase).size());
+		assertEquals(2, packList.getPlainPacksNotCoveredBy(midxMid).size());
+		assertEquals(0, packList.getPlainPacksNotCoveredBy(midxTip).size());
+	}
 
 	private void setupThreePacks() throws IOException {
 		writePackWithRandomBlob(100);
@@ -196,11 +293,11 @@ private void setupThreePacks() throws IOException {
 		writePackWithRandomBlob(50);
 	}
 
-	private void setupThreePacksAndMidx() throws IOException {
+	private DfsPackFileMidx setupThreePacksAndMidx() throws IOException {
 		writePackWithRandomBlob(100);
 		writePackWithRandomBlob(300);
 		writePackWithRandomBlob(50);
-		writeMultipackIndex();
+		return writeMultipackIndex();
 	}
 
 	private void setupSixPacksThreeMidx() throws IOException {
@@ -221,8 +318,8 @@ private void setupSixPacksThreeMidx() throws IOException {
 				db.getObjectDatabase().getPacks().length);
 	}
 
-	private void writeMultipackIndex() throws IOException {
-		writeMultipackIndex(db.getObjectDatabase().getPacks(), null);
+	private DfsPackFileMidx writeMultipackIndex() throws IOException {
+		return writeMultipackIndex(db.getObjectDatabase().getPacks(), null);
 	}
 
 	private DfsPackFileMidx writeMultipackIndex(DfsPackFile[] packs,
diff --git a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF
index 72dea20..b3ecf33 100644
--- a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF
@@ -4,15 +4,15 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ui
 Bundle-SymbolicName: org.eclipse.jgit.ui
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Export-Package: org.eclipse.jgit.awtui;version="7.5.0"
-Import-Package: org.eclipse.jgit.errors;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.lib;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.nls;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revplot;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.revwalk;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.transport;version="[7.5.0,7.6.0)",
- org.eclipse.jgit.util;version="[7.5.0,7.6.0)"
+Export-Package: org.eclipse.jgit.awtui;version="7.6.0"
+Import-Package: org.eclipse.jgit.errors;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.lib;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.nls;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revplot;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.revwalk;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.transport;version="[7.6.0,7.7.0)",
+ org.eclipse.jgit.util;version="[7.6.0,7.7.0)"
diff --git a/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF
index dda039e..e20c4f2 100644
--- a/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.ui - Sources
 Bundle-SymbolicName: org.eclipse.jgit.ui.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.ui;version="7.5.0.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.ui;version="7.6.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ui/pom.xml b/org.eclipse.jgit.ui/pom.xml
index 6b32bf4..2acf0e0 100644
--- a/org.eclipse.jgit.ui/pom.xml
+++ b/org.eclipse.jgit.ui/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ui</artifactId>
diff --git a/org.eclipse.jgit/META-INF/MANIFEST.MF b/org.eclipse.jgit/META-INF/MANIFEST.MF
index d760003..15ae6ef 100644
--- a/org.eclipse.jgit/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit
 Bundle-SymbolicName: org.eclipse.jgit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
@@ -11,8 +11,8 @@
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
 Service-Component: OSGI-INF/org.eclipse.jgit.internal.util.CleanupService.xml
 Eclipse-ExtensibleAPI: true
-Export-Package: org.eclipse.jgit.annotations;version="7.5.0",
- org.eclipse.jgit.api;version="7.5.0";
+Export-Package: org.eclipse.jgit.annotations;version="7.6.0",
+ org.eclipse.jgit.api;version="7.6.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.notes,
    org.eclipse.jgit.dircache,
@@ -27,21 +27,21 @@
    org.eclipse.jgit.revwalk.filter,
    org.eclipse.jgit.blame,
    org.eclipse.jgit.merge",
- org.eclipse.jgit.api.errors;version="7.5.0";
+ org.eclipse.jgit.api.errors;version="7.6.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.errors",
- org.eclipse.jgit.attributes;version="7.5.0";
+ org.eclipse.jgit.attributes;version="7.6.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.treewalk",
- org.eclipse.jgit.blame;version="7.5.0";
+ org.eclipse.jgit.blame;version="7.6.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.blame.cache,
    org.eclipse.jgit.diff,
    org.eclipse.jgit.treewalk.filter",
- org.eclipse.jgit.blame.cache;version="7.5.0";
+ org.eclipse.jgit.blame.cache;version="7.6.0";
   uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.diff;version="7.5.0";
+ org.eclipse.jgit.diff;version="7.6.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.patch,
@@ -49,55 +49,55 @@
    org.eclipse.jgit.treewalk.filter,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.util",
- org.eclipse.jgit.dircache;version="7.5.0";
+ org.eclipse.jgit.dircache;version="7.6.0";
   uses:="org.eclipse.jgit.events,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.attributes,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.util",
- org.eclipse.jgit.errors;version="7.5.0";
+ org.eclipse.jgit.errors;version="7.6.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.dircache,
    org.eclipse.jgit.lib",
- org.eclipse.jgit.events;version="7.5.0";
+ org.eclipse.jgit.events;version="7.6.0";
   uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.fnmatch;version="7.5.0",
- org.eclipse.jgit.gitrepo;version="7.5.0";
+ org.eclipse.jgit.fnmatch;version="7.6.0",
+ org.eclipse.jgit.gitrepo;version="7.6.0";
   uses:="org.xml.sax.helpers,
    org.eclipse.jgit.api,
    org.eclipse.jgit.api.errors,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.xml.sax",
- org.eclipse.jgit.gitrepo.internal;version="7.5.0";x-internal:=true,
- org.eclipse.jgit.hooks;version="7.5.0";
+ org.eclipse.jgit.gitrepo.internal;version="7.6.0";x-internal:=true,
+ org.eclipse.jgit.hooks;version="7.6.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.util",
- org.eclipse.jgit.ignore;version="7.5.0",
- org.eclipse.jgit.ignore.internal;version="7.5.0";
+ org.eclipse.jgit.ignore;version="7.6.0",
+ org.eclipse.jgit.ignore.internal;version="7.6.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal;version="7.5.0";
+ org.eclipse.jgit.internal;version="7.6.0";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.http.test",
- org.eclipse.jgit.internal.diff;version="7.5.0";
+ org.eclipse.jgit.internal.diff;version="7.6.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.diffmergetool;version="7.5.0";
+ org.eclipse.jgit.internal.diffmergetool;version="7.6.0";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.pgm.test,
    org.eclipse.jgit.pgm,
    org.eclipse.egit.ui",
- org.eclipse.jgit.internal.fsck;version="7.5.0";
+ org.eclipse.jgit.internal.fsck;version="7.6.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.revwalk;version="7.5.0";
+ org.eclipse.jgit.internal.revwalk;version="7.6.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.commitgraph;version="7.5.0";
+ org.eclipse.jgit.internal.storage.commitgraph;version="7.6.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.dfs;version="7.5.0";
+ org.eclipse.jgit.internal.storage.dfs;version="7.6.0";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.http.server,
    org.eclipse.jgit.http.test,
    org.eclipse.jgit.lfs.test",
- org.eclipse.jgit.internal.storage.file;version="7.5.0";
+ org.eclipse.jgit.internal.storage.file;version="7.6.0";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.junit,
    org.eclipse.jgit.junit.http,
@@ -109,39 +109,39 @@
    org.eclipse.jgit.ssh.apache,
    org.eclipse.jgit.ssh.apache.test,
    org.eclipse.jgit.ssh.jsch.test",
- org.eclipse.jgit.internal.storage.io;version="7.5.0";
+ org.eclipse.jgit.internal.storage.io;version="7.6.0";
   x-friends:="org.eclipse.jgit.junit,
    org.eclipse.jgit.test,
    org.eclipse.jgit.pgm",
- org.eclipse.jgit.internal.storage.memory;version="7.5.0";
+ org.eclipse.jgit.internal.storage.memory;version="7.6.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.midx;version="7.5.0";
+ org.eclipse.jgit.internal.storage.midx;version="7.6.0";
   x-friends:="org.eclipse.jgit.pgm,
    org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.pack;version="7.5.0";
+ org.eclipse.jgit.internal.storage.pack;version="7.6.0";
   x-friends:="org.eclipse.jgit.junit,
    org.eclipse.jgit.test,
    org.eclipse.jgit.pgm",
- org.eclipse.jgit.internal.storage.reftable;version="7.5.0";
+ org.eclipse.jgit.internal.storage.reftable;version="7.6.0";
   x-friends:="org.eclipse.jgit.http.test,
    org.eclipse.jgit.junit,
    org.eclipse.jgit.test,
    org.eclipse.jgit.pgm",
- org.eclipse.jgit.internal.submodule;version="7.5.0";x-internal:=true,
- org.eclipse.jgit.internal.transport.connectivity;version="7.5.0";
+ org.eclipse.jgit.internal.submodule;version="7.6.0";x-internal:=true,
+ org.eclipse.jgit.internal.transport.connectivity;version="7.6.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.http;version="7.5.0";
+ org.eclipse.jgit.internal.transport.http;version="7.6.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.parser;version="7.5.0";
+ org.eclipse.jgit.internal.transport.parser;version="7.6.0";
   x-friends:="org.eclipse.jgit.http.server,
    org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.ssh;version="7.5.0";
+ org.eclipse.jgit.internal.transport.ssh;version="7.6.0";
   x-friends:="org.eclipse.jgit.ssh.apache,
    org.eclipse.jgit.ssh.jsch,
    org.eclipse.jgit.test",
- org.eclipse.jgit.internal.util;version="7.5.0";
+ org.eclipse.jgit.internal.util;version="7.6.0";
   x-friends:="org.eclipse.jgit.junit",
- org.eclipse.jgit.lib;version="7.5.0";
+ org.eclipse.jgit.lib;version="7.6.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.util.sha1,
    org.eclipse.jgit.dircache,
@@ -156,12 +156,12 @@
    org.eclipse.jgit.util,
    org.eclipse.jgit.submodule,
    org.eclipse.jgit.util.time",
- org.eclipse.jgit.lib.internal;version="7.5.0";
+ org.eclipse.jgit.lib.internal;version="7.6.0";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.pgm,
    org.eclipse.egit.ui",
- org.eclipse.jgit.logging;version="7.5.0",
- org.eclipse.jgit.merge;version="7.5.0";
+ org.eclipse.jgit.logging;version="7.6.0",
+ org.eclipse.jgit.merge;version="7.6.0";
   uses:="org.eclipse.jgit.dircache,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
@@ -170,42 +170,42 @@
    org.eclipse.jgit.util,
    org.eclipse.jgit.api,
    org.eclipse.jgit.attributes",
- org.eclipse.jgit.nls;version="7.5.0",
- org.eclipse.jgit.notes;version="7.5.0";
+ org.eclipse.jgit.nls;version="7.6.0",
+ org.eclipse.jgit.notes;version="7.6.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.merge",
- org.eclipse.jgit.patch;version="7.5.0";
+ org.eclipse.jgit.patch;version="7.6.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.diff",
- org.eclipse.jgit.revplot;version="7.5.0";
+ org.eclipse.jgit.revplot;version="7.6.0";
   uses:="org.eclipse.jgit.revwalk,
    org.eclipse.jgit.lib",
- org.eclipse.jgit.revwalk;version="7.5.0";
+ org.eclipse.jgit.revwalk;version="7.6.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk.filter,
    org.eclipse.jgit.diff,
    org.eclipse.jgit.treewalk.filter,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.internal.storage.commitgraph",
- org.eclipse.jgit.revwalk.filter;version="7.5.0";
+ org.eclipse.jgit.revwalk.filter;version="7.6.0";
   uses:="org.eclipse.jgit.revwalk,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.util",
- org.eclipse.jgit.storage.file;version="7.5.0";
+ org.eclipse.jgit.storage.file;version="7.6.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.util",
- org.eclipse.jgit.storage.pack;version="7.5.0";
+ org.eclipse.jgit.storage.pack;version="7.6.0";
   uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.submodule;version="7.5.0";
+ org.eclipse.jgit.submodule;version="7.6.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.treewalk.filter,
    org.eclipse.jgit.diff,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.util",
- org.eclipse.jgit.transport;version="7.5.0";
+ org.eclipse.jgit.transport;version="7.6.0";
   uses:="javax.crypto,
    org.eclipse.jgit.hooks,
    org.eclipse.jgit.util.io,
@@ -218,21 +218,21 @@
    org.eclipse.jgit.transport.resolver,
    org.eclipse.jgit.storage.pack,
    org.eclipse.jgit.errors",
- org.eclipse.jgit.transport.http;version="7.5.0";
+ org.eclipse.jgit.transport.http;version="7.6.0";
   uses:="javax.net.ssl",
- org.eclipse.jgit.transport.resolver;version="7.5.0";
+ org.eclipse.jgit.transport.resolver;version="7.6.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.lib",
- org.eclipse.jgit.treewalk;version="7.5.0";
+ org.eclipse.jgit.treewalk;version="7.6.0";
   uses:="org.eclipse.jgit.dircache,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.attributes,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.treewalk.filter,
    org.eclipse.jgit.util",
- org.eclipse.jgit.treewalk.filter;version="7.5.0";
+ org.eclipse.jgit.treewalk.filter;version="7.6.0";
   uses:="org.eclipse.jgit.treewalk",
- org.eclipse.jgit.util;version="7.5.0";
+ org.eclipse.jgit.util;version="7.6.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.hooks,
    org.eclipse.jgit.revwalk,
@@ -245,12 +245,12 @@
    org.eclipse.jgit.treewalk,
    javax.net.ssl,
    org.eclipse.jgit.util.time",
- org.eclipse.jgit.util.io;version="7.5.0";
+ org.eclipse.jgit.util.io;version="7.6.0";
   uses:="org.eclipse.jgit.attributes,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.treewalk",
- org.eclipse.jgit.util.sha1;version="7.5.0",
- org.eclipse.jgit.util.time;version="7.5.0"
+ org.eclipse.jgit.util.sha1;version="7.6.0",
+ org.eclipse.jgit.util.time;version="7.6.0"
 Import-Package: com.googlecode.javaewah;version="[1.1.6,2.0.0)",
  javax.crypto,
  javax.management,
diff --git a/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF
index c83ff44..48db010 100644
--- a/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit - Sources
 Bundle-SymbolicName: org.eclipse.jgit.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.5.0.qualifier
+Bundle-Version: 7.6.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit;version="7.5.0.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit;version="7.6.0.qualifier";roots="."
diff --git a/org.eclipse.jgit/pom.xml b/org.eclipse.jgit/pom.xml
index 9213e7a..890cb9c 100644
--- a/org.eclipse.jgit/pom.xml
+++ b/org.eclipse.jgit/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>org.eclipse.jgit-parent</artifactId>
-    <version>7.5.0-SNAPSHOT</version>
+    <version>7.6.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit</artifactId>
diff --git a/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties b/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
index 6158032..e0f593a 100644
--- a/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
+++ b/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
@@ -68,6 +68,7 @@
 bitmapsMustBePrepared=Bitmaps must be prepared before they may be written.
 bitmapUseNoopNoListener=Use NOOP instance for no listener
 blameNotCommittedYet=Not Committed Yet
+blameRegionCoverAllLines=Cached blame should cover all lines
 blockLimitNotMultipleOfBlockSize=blockLimit {0} must be a multiple of blockSize {1}
 blockLimitNotPositive=blockLimit must be positive: {0}
 blockSizeNotPowerOf2=blockSize must be a power of 2
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameRegionMerger.java b/org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameRegionMerger.java
index 67bc6fb..8ad50b5 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameRegionMerger.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameRegionMerger.java
@@ -15,6 +15,7 @@
 import java.util.List;
 
 import org.eclipse.jgit.blame.cache.CacheRegion;
+import org.eclipse.jgit.internal.JGitText;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.revwalk.RevCommit;
@@ -72,8 +73,7 @@ Candidate mergeCandidate(Candidate candidate) {
 	List<Candidate> mergeOneRegion(Region region) throws IOException {
 		List<CacheRegion> overlaps = findOverlaps(region);
 		if (overlaps.isEmpty()) {
-			throw new IOException(
-					"Cached blame should cover all lines");
+			throw new IOException(JGitText.get().blameRegionCoverAllLines);
 		}
 		/*
 		 * Cached regions cover the whole file. We find first which ones overlap
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/FastIgnoreRule.java b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/FastIgnoreRule.java
index b041729..6e26999 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/FastIgnoreRule.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/FastIgnoreRule.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014, 2021 Andrey Loskutov <loskutov@gmx.de> and others
+ * Copyright (C) 2014, 2025 Andrey Loskutov <loskutov@gmx.de> and others
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Distribution License v. 1.0 which is available at
@@ -12,7 +12,6 @@
 import static org.eclipse.jgit.ignore.IMatcher.NO_MATCH;
 import static org.eclipse.jgit.ignore.internal.Strings.isDirectoryPattern;
 import static org.eclipse.jgit.ignore.internal.Strings.stripTrailing;
-import static org.eclipse.jgit.ignore.internal.Strings.stripTrailingWhitespace;
 
 import java.text.MessageFormat;
 
@@ -72,7 +71,7 @@ void parse(String pattern) throws InvalidPatternException {
 		if (pattern == null) {
 			throw new IllegalArgumentException("Pattern must not be null!"); //$NON-NLS-1$
 		}
-		if (pattern.length() == 0) {
+		if (pattern.isEmpty() || pattern.charAt(0) == '#') {
 			dirOnly = false;
 			inverse = false;
 			this.matcher = NO_MATCH;
@@ -81,29 +80,19 @@ void parse(String pattern) throws InvalidPatternException {
 		inverse = pattern.charAt(0) == '!';
 		if (inverse) {
 			pattern = pattern.substring(1);
-			if (pattern.length() == 0) {
+			if (pattern.isEmpty()
+					|| (pattern.length() == 1 && pattern.charAt(0) == '\\')) {
 				dirOnly = false;
 				this.matcher = NO_MATCH;
 				return;
 			}
 		}
-		if (pattern.charAt(0) == '#') {
-			this.matcher = NO_MATCH;
-			dirOnly = false;
-			return;
-		}
-		if (pattern.charAt(0) == '\\' && pattern.length() > 1) {
-			char next = pattern.charAt(1);
-			if (next == '!' || next == '#') {
-				// remove backslash escaping first special characters
-				pattern = pattern.substring(1);
-			}
-		}
 		dirOnly = isDirectoryPattern(pattern);
 		if (dirOnly) {
-			pattern = stripTrailingWhitespace(pattern);
+			pattern = pattern.stripTrailing();
 			pattern = stripTrailing(pattern, PATH_SEPARATOR);
-			if (pattern.length() == 0) {
+			if (pattern.isEmpty()
+					|| (pattern.length() == 1 && pattern.charAt(0) == '\\')) {
 				this.matcher = NO_MATCH;
 				return;
 			}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/NameMatcher.java b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/NameMatcher.java
index 4f8e149..9cf5505 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/NameMatcher.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/NameMatcher.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014, Andrey Loskutov <loskutov@gmx.de> and others
+ * Copyright (C) 2014, 2025 Andrey Loskutov <loskutov@gmx.de> and others
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Distribution License v. 1.0 which is available at
@@ -28,7 +28,7 @@ public class NameMatcher extends AbstractMatcher {
 		super(pattern, dirOnly);
 		slash = getPathSeparator(pathSeparator);
 		if (deleteBackslash) {
-			pattern = Strings.deleteBackslash(pattern);
+			pattern = Strings.unescape(pattern);
 		}
 		beginning = pattern.length() == 0 ? false : pattern.charAt(0) == slash;
 		if (!beginning) {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/PathMatcher.java b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/PathMatcher.java
index a40568d..dc77687 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/PathMatcher.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/PathMatcher.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014, Andrey Loskutov <loskutov@gmx.de> and others
+ * Copyright (C) 2014, 2025 Andrey Loskutov <loskutov@gmx.de> and others
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Distribution License v. 1.0 which is available at
@@ -97,11 +97,17 @@ public static IMatcher createPathMatcher(String pattern,
 			Character pathSeparator, boolean dirOnly)
 			throws InvalidPatternException {
 		pattern = trim(pattern);
+		if (isEscape(pattern, pattern.length() - 1) && !dirOnly) {
+			// Last character is a backslash that is an escape: never matches or
+			// produces an error.
+			return IMatcher.NO_MATCH; // Or throw an exception?
+		}
 		char slash = Strings.getPathSeparator(pathSeparator);
 		// ignore possible leading and trailing slash
 		int slashIdx = pattern.indexOf(slash, 1);
-		if (slashIdx > 0 && slashIdx < pattern.length() - 1)
+		if (slashIdx > 0 && slashIdx < pattern.length() - 1) {
 			return new PathMatcher(pattern, pathSeparator, dirOnly);
+		}
 		return createNameMatcher0(pattern, pathSeparator, dirOnly, true);
 	}
 
@@ -114,18 +120,32 @@ public static IMatcher createPathMatcher(String pattern,
 	 * @return trimmed pattern
 	 */
 	private static String trim(String pattern) {
-		while (pattern.length() > 0
-				&& pattern.charAt(pattern.length() - 1) == ' ') {
-			if (pattern.length() > 1
-					&& pattern.charAt(pattern.length() - 2) == '\\') {
-				// last space was escaped by backslash: remove backslash and
-				// keep space
-				pattern = pattern.substring(0, pattern.length() - 2) + " "; //$NON-NLS-1$
-				return pattern;
-			}
-			pattern = pattern.substring(0, pattern.length() - 1);
+		int i = pattern.length() - 1;
+		while (i >= 0 && pattern.charAt(i) == ' ') {
+			i--;
 		}
-		return pattern;
+		if (i < 0) {
+			return ""; //$NON-NLS-1$
+		} else if (i == pattern.length() - 1) {
+			// Last character was not a space.
+			return pattern;
+		}
+		// i is on the last non-space
+		if (isEscape(pattern, i)) {
+			// Last space was escaped by backslash: remove backslash and
+			// keep space
+			return pattern.substring(0, i) + ' ';
+		}
+		return pattern.substring(0, i + 1);
+	}
+
+	private static boolean isEscape(String pattern, int from) {
+		// Count backslashes, if odd the last one is an escape
+		int i = from;
+		while (i >= 0 && pattern.charAt(i) == '\\') {
+			i--;
+		}
+		return ((from - i) & 1) != 0;
 	}
 
 	private static IMatcher createNameMatcher0(String segment,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/Strings.java b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/Strings.java
index 3305a74..d048559 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/Strings.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/Strings.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014, 2017 Andrey Loskutov <loskutov@gmx.de> and others
+ * Copyright (C) 2014, 2025 Andrey Loskutov <loskutov@gmx.de> and others
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Distribution License v. 1.0 which is available at
@@ -56,26 +56,6 @@ public static String stripTrailing(String pattern, char c) {
 	}
 
 	/**
-	 * Strip trailing whitespace characters
-	 *
-	 * @param pattern
-	 *            non null
-	 * @return new string with all trailing whitespace removed
-	 */
-	public static String stripTrailingWhitespace(String pattern) {
-		for (int i = pattern.length() - 1; i >= 0; i--) {
-			char charAt = pattern.charAt(i);
-			if (!Character.isWhitespace(charAt)) {
-				if (i == pattern.length() - 1) {
-					return pattern;
-				}
-				return pattern.substring(0, i + 1);
-			}
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
 	 * Check if pattern is a directory pattern ending with a path separator
 	 *
 	 * @param pattern
@@ -153,8 +133,7 @@ static boolean isWildCard(String pattern) {
 	}
 
 	private static boolean isComplexWildcard(String pattern) {
-		int idx1 = pattern.indexOf('[');
-		if (idx1 != -1) {
+		if (pattern.indexOf('[') != -1) {
 			return true;
 		}
 		if (pattern.indexOf('?') != -1) {
@@ -169,30 +148,28 @@ private static boolean isComplexWildcard(String pattern) {
 				return false;
 			}
 			char nextChar = pattern.charAt(nextIdx);
-			if (escapedByBackslash(nextChar)) {
-				return true;
-			}
-			return false;
+			// If the backslash _might_ escape a metacharacter, we have
+			// something complex
+			return nextChar == '?' || nextChar == '*' || nextChar == '[';
 		}
 		return false;
 	}
 
-	private static boolean escapedByBackslash(char nextChar) {
-		return nextChar == '?' || nextChar == '*' || nextChar == '[';
-	}
-
 	static PatternState checkWildCards(String pattern) {
-		if (isComplexWildcard(pattern))
+		if (isComplexWildcard(pattern)) {
 			return PatternState.COMPLEX;
+		}
 		int startIdx = pattern.indexOf('*');
-		if (startIdx < 0)
+		if (startIdx < 0) {
 			return PatternState.NONE;
+		}
 
-		if (startIdx == pattern.length() - 1)
+		if (startIdx == pattern.length() - 1) {
 			return PatternState.TRAILING_ASTERISK_ONLY;
-		if (pattern.lastIndexOf('*') == 0)
+		}
+		if (pattern.lastIndexOf('*') == 0) {
 			return PatternState.LEADING_ASTERISK_ONLY;
-
+		}
 		return PatternState.COMPLEX;
 	}
 
@@ -287,7 +264,7 @@ static Pattern convertGlob(String pattern) throws InvalidPatternException {
 				break;
 
 			case '.':
-				if (seenEscape)
+				if (seenEscape || in_brackets > 0)
 					sb.append(c);
 				else
 					sb.append('\\').append('.');
@@ -305,7 +282,7 @@ static Pattern convertGlob(String pattern) throws InvalidPatternException {
 					if (lookBehind(sb) == '['
 							&& isLetter(lookAhead(pattern, i)))
 						in_char_class = true;
-				sb.append(':');
+				sb.append(c);
 				break;
 
 			case '-':
@@ -315,22 +292,30 @@ && isLetter(lookAhead(pattern, i)))
 					else
 						sb.append(c);
 				} else
-					sb.append('-');
+					sb.append(c);
 				break;
 
 			case '\\':
-				if (in_brackets > 0) {
-					char lookAhead = lookAhead(pattern, i);
-					if (lookAhead == ']' || lookAhead == '[')
-						ignoreLastBracket = true;
-				} else {
-					//
-					char lookAhead = lookAhead(pattern, i);
-					if (lookAhead != '\\' && lookAhead != '['
-							&& lookAhead != '?' && lookAhead != '*'
-							&& lookAhead != ' ' && lookBehind(sb) != '\\') {
-						break;
-					}
+				if (seenEscape) {
+					sb.append(c);
+					seenEscape = false;
+					continue;
+				}
+				if (i + 1 == pattern.length()) {
+					// Lone backslash at end of pattern is dropped.
+					break;
+				}
+				char lookAhead = lookAhead(pattern, i);
+				if (in_brackets > 0 && (lookAhead == ']' || lookAhead == '[')) {
+					ignoreLastBracket = true;
+				}
+				if (lookAhead == '0' || (lookAhead >= 'a' && lookAhead <= 'z')
+						|| (lookAhead >= 'A' && lookAhead <= 'Z')) {
+					// Can be escaped in a glob pattern, but don't need to.
+					// Escaping these is invalid in a Java regexp. Glob patterns
+					// do not have the escaped constructs a Java regexp has
+					// (like \d, \Q, \x, or also \0).
+					break;
 				}
 				sb.append(c);
 				break;
@@ -473,28 +458,25 @@ private static String checkPosixCharClass(char[] buffer) {
 		return null;
 	}
 
-	static String deleteBackslash(String s) {
+	static String unescape(String s) {
 		if (s.indexOf('\\') < 0) {
 			return s;
 		}
-		StringBuilder sb = new StringBuilder(s.length());
-		for (int i = 0; i < s.length(); i++) {
+		int len = s.length();
+		StringBuilder sb = new StringBuilder(len);
+		for (int i = 0; i < len; i++) {
 			char ch = s.charAt(i);
 			if (ch == '\\') {
-				if (i + 1 == s.length()) {
-					continue;
+				if (i + 1 < len) {
+					char next = s.charAt(i + 1);
+					if (next == '\\') {
+						sb.append(ch);
+						i++;
+					}
 				}
-				char next = s.charAt(i + 1);
-				if (next == '\\') {
-					sb.append(ch);
-					i++;
-					continue;
-				}
-				if (!escapedByBackslash(next)) {
-					continue;
-				}
+			} else {
+				sb.append(ch);
 			}
-			sb.append(ch);
 		}
 		return sb.toString();
 	}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java
index 9bd99ed..539d00e 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java
@@ -98,6 +98,7 @@ public static JGitText get() {
 	/***/ public String bitmapsMustBePrepared;
 	/***/ public String bitmapUseNoopNoListener;
 	/***/ public String blameNotCommittedYet;
+	/***/ public String blameRegionCoverAllLines;
 	/***/ public String blockLimitNotMultipleOfBlockSize;
 	/***/ public String blockLimitNotPositive;
 	/***/ public String blockSizeNotPowerOf2;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFileMidx.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFileMidx.java
index 742fe6c..5ef395d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFileMidx.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFileMidx.java
@@ -9,227 +9,76 @@
  */
 package org.eclipse.jgit.internal.storage.dfs;
 
-import static org.eclipse.jgit.internal.storage.pack.PackExt.MULTI_PACK_INDEX;
-import static org.eclipse.jgit.internal.storage.pack.PackExt.PACK;
-
 import java.io.IOException;
-import java.nio.channels.Channels;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicReference;
-import java.util.function.Function;
-import java.util.stream.Collectors;
 import java.util.zip.DataFormatException;
 
 import org.eclipse.jgit.annotations.Nullable;
 import org.eclipse.jgit.errors.StoredObjectRepresentationNotAvailableException;
-import org.eclipse.jgit.internal.storage.commitgraph.CommitGraph;
-import org.eclipse.jgit.internal.storage.file.PackBitmapIndex;
 import org.eclipse.jgit.internal.storage.file.PackIndex;
 import org.eclipse.jgit.internal.storage.file.PackReverseIndex;
-import org.eclipse.jgit.internal.storage.midx.MultiPackIndex;
-import org.eclipse.jgit.internal.storage.midx.MultiPackIndex.PackOffset;
-import org.eclipse.jgit.internal.storage.midx.MultiPackIndexLoader;
-import org.eclipse.jgit.internal.storage.pack.ObjectToPack;
 import org.eclipse.jgit.internal.storage.pack.PackOutputStream;
-import org.eclipse.jgit.lib.AbbreviatedObjectId;
-import org.eclipse.jgit.lib.AnyObjectId;
-import org.eclipse.jgit.lib.BitmapIndex;
-import org.eclipse.jgit.lib.ObjectId;
-import org.eclipse.jgit.lib.ObjectIdSet;
 import org.eclipse.jgit.lib.ObjectLoader;
-import org.eclipse.jgit.util.BlockList;
 
 /**
- * Implementation of a DfsPackfile that tries to solve the queries in a
- * multipack index before resorting to the real packs.
+ * DfsPackFile with the extra methods to support midx.
  * <p>
- * It uses the position in the multipack index of the objects as their "offset".
+ * This is an abstract class to keep the inheritance from DfsPackFile and allow
+ * a dummy implementation for single packs.
+ * <p>
+ * We implement at this level methods that just translate midx to pack offsets
+ * and forward to the pack.
  */
-public final class DfsPackFileMidx extends DfsPackFile {
+public abstract sealed class DfsPackFileMidx extends DfsPackFile
+		permits DfsPackFileMidxNPacks {
 
-	private static final int REF_POSITION = 0;
-
-	private final List<DfsPackFile> packs;
-
-	// The required packs, in the order specified in the multipack index
-	// Initialized lazily, when the midx is loaded
-	private final DfsPackFile[] packsInIdOrder;
-
-	private MultiPackIndex midx;
-
-	private final DfsPackFileMidx base;
-
-	private final VOffsetCalculator offsetCalculator;
-
-	static DfsPackFileMidx create(DfsBlockCache cache, DfsPackDescription desc,
-			List<DfsPackFile> reqPacks, DfsPackFileMidx base) {
-		return new DfsPackFileMidx(cache, desc, reqPacks, base);
-	}
-
-	private DfsPackFileMidx(DfsBlockCache cache, DfsPackDescription desc,
-			List<DfsPackFile> requiredPacks, @Nullable DfsPackFileMidx base) {
-		super(cache, desc);
-		this.base = base;
-		this.packs = requiredPacks;
-		String[] coveredPackNames = desc.getCoveredPacks().stream()
-				.map(DfsPackDescription::getPackName).toArray(String[]::new);
-		packsInIdOrder = getPacksInMidxIdOrder(coveredPackNames);
-		offsetCalculator = VOffsetCalculator.fromPacks(packsInIdOrder,
-				base != null ? base.getOffsetCalculator() : null);
-		this.length = offsetCalculator.getMaxOffset();
-	}
-
-	private MultiPackIndex midx(DfsReader ctx) throws IOException {
-		if (midx != null) {
-			return midx;
-		}
-
-		DfsStreamKey revKey = desc.getStreamKey(MULTI_PACK_INDEX);
-		// Keep the value parsed in the loader, in case the Ref<> is
-		// nullified in ClockBlockCacheTable#reserveSpace
-		// before we read its value.
-		AtomicReference<MultiPackIndex> loadedRef = new AtomicReference<>(null);
-		DfsBlockCache.Ref<MultiPackIndex> cachedRef = cache.getOrLoadRef(revKey,
-				REF_POSITION, () -> {
-					RefWithSize midx1 = loadMultiPackIndex(ctx, desc);
-					loadedRef.set(midx1.idx);
-					return new DfsBlockCache.Ref<>(revKey, REF_POSITION,
-							midx1.size, midx1.idx);
-				});
-		// if (loadedRef.get() == null) {
-		// ctx.stats.ridxCacheHit;
-		// }
-		midx = cachedRef.get() != null ? cachedRef.get() : loadedRef.get();
-		return midx;
-	}
-
-	private static RefWithSize loadMultiPackIndex(DfsReader ctx,
-			DfsPackDescription desc) throws IOException {
-		try (ReadableChannel rc = ctx.db.openFile(desc, MULTI_PACK_INDEX)) {
-			MultiPackIndex midx = MultiPackIndexLoader
-					.read(Channels.newInputStream(rc));
-			// ctx.stats.readIdxBytes += rc.position();
-			return new RefWithSize(midx, midx.getMemorySize());
-		}
-	}
-
-	private record RefWithSize(MultiPackIndex idx, long size) {
-	}
-
-	private DfsPackFile[] getPacksInMidxIdOrder(String[] packNames) {
-		Map<String, DfsPackFile> byName = packs.stream()
-				.collect(Collectors.toUnmodifiableMap(
-						p -> p.getPackDescription().getPackName(),
-						Function.identity()));
-		DfsPackFile[] result = new DfsPackFile[desc.getCoveredPacks().size()];
-		for (int i = 0; i < packNames.length; i++) {
-			DfsPackFile pack = byName.get(packNames[i]);
-			if (pack == null) {
-				// This should have been checked in the object db
-				// when the pack description was loaded
-				throw new IllegalStateException("Required pack missing"); //$NON-NLS-1$
-			}
-			result[i] = pack;
-		}
-		return result;
-	}
-
-	// Visible for testing
-	VOffsetCalculator getOffsetCalculator() {
-		return offsetCalculator;
-	}
-
-	@Override
-	public PackIndex getPackIndex(DfsReader ctx) {
-		throw new IllegalStateException(
-				"Shouldn't use multipack index if the primary index is needed"); //$NON-NLS-1$
-	}
-
-	@Override
-	public ObjectIdSet asObjectIdSet(DfsReader ctx) throws IOException {
-		MultiPackIndex multiPackIndex = midx(ctx);
-		return objectId -> multiPackIndex.hasObject(objectId);
-	}
-
-	@Override
-	public PackReverseIndex getReverseIdx(DfsReader ctx) {
-		throw new IllegalStateException(
-				"Shouldn't use multipack index if the reverse index is needed"); //$NON-NLS-1$
-	}
-
-	@Override
-	public PackBitmapIndex getBitmapIndex(DfsReader ctx) throws IOException {
-		// TODO(ifrade): at some point we will have bitmaps over the multipack
-		// index
-		// At the moment bitmap is in GC, at the end of the chain
-		if (base != null) {
-			return base.getBitmapIndex(ctx);
-		}
-
-		for (DfsPackFile pack : packsInIdOrder) {
-			PackBitmapIndex bitmapIndex = pack.getBitmapIndex(ctx);
-			if (bitmapIndex != null) {
-				return bitmapIndex;
-			}
-		}
-		return null;
-	}
-
-	@Override
-	List<DfsPackFile> fullyIncludedIn(DfsReader ctx,
-			BitmapIndex.BitmapBuilder need) throws IOException {
-		List<DfsPackFile> fullyIncluded = new ArrayList<>();
-		for (DfsPackFile pack : packs) {
-			List<DfsPackFile> includedPacks = pack.fullyIncludedIn(ctx, need);
-			if (!includedPacks.isEmpty()) {
-				fullyIncluded.addAll(includedPacks);
-			}
-		}
-
-		if (base != null) {
-			fullyIncluded.addAll(base.fullyIncludedIn(ctx, need));
-		}
-
-		return fullyIncluded;
-	}
-
-	@Override
-	public CommitGraph getCommitGraph(DfsReader ctx) throws IOException {
-		for (DfsPackFile pack : packs) {
-			CommitGraph cg = pack.getCommitGraph(ctx);
-			if (cg != null) {
-				return cg;
-			}
-		}
-		return null;
+	/**
+	 * Create a midx pack
+	 *
+	 * @param cache
+	 *            dfs block cache
+	 * @param desc
+	 *            description of the pack, covering at least one other pack
+	 * @param requiredPacks
+	 *            DfsPackFile instances of the covered packs
+	 * @param base
+	 *            midx acting a base of this
+	 * @return a midx pack
+	 */
+	public static DfsPackFileMidx create(DfsBlockCache cache,
+			DfsPackDescription desc, List<DfsPackFile> requiredPacks,
+			@Nullable DfsPackFileMidx base) {
+		return new DfsPackFileMidxNPacks(cache, desc, requiredPacks, base);
 	}
 
 	/**
-	 * Count of objects in this <b>pack</> (i.e. including, recursively, its
-	 * base)
+	 * Default constructor
 	 *
-	 * @param ctx
-	 *            a reader
-	 * @return count of objects in this pack, including its bases
-	 * @throws IOException
-	 *             an error reading a midx in the chain
+	 * @param cache
+	 *            dfs block cache
+	 * @param desc
+	 *            midx pack description
 	 */
-	private int getObjectCount(DfsReader ctx) throws IOException {
-		int baseObjectCount = base == null ? 0 : base.getObjectCount(ctx);
-		return midx(ctx).getObjectCount() + baseObjectCount;
+	protected DfsPackFileMidx(DfsBlockCache cache, DfsPackDescription desc) {
+		super(cache, desc);
 	}
 
 	/**
+	 * Base of this multipack index
+	 * <p>
+	 * If this midx is part of a chain, this is its parent
+	 *
+	 * @return the base of this multipack index
+	 */
+	public abstract DfsPackFileMidx getMultipackIndexBase();
+
+	/**
 	 * Packs indexed by this multipack index (base NOT included)
 	 *
 	 * @return packs indexed by this multipack index
 	 */
-	public List<DfsPackFile> getCoveredPacks() {
-		return packs;
-	}
+	public abstract List<DfsPackFile> getCoveredPacks();
 
 	/**
 	 * All packs indexed by this multipack index and its chain
@@ -240,7 +89,7 @@ public List<DfsPackFile> getCoveredPacks() {
 	 * @return packs indexed by this multipack index and its parents.
 	 */
 	public List<DfsPackFile> getAllCoveredPacks() {
-		List<DfsPackFile> coveredPacks = new ArrayList<>(packs);
+		List<DfsPackFile> coveredPacks = new ArrayList<>(getCoveredPacks());
 		DfsPackFileMidx base = getMultipackIndexBase();
 		while (base != null) {
 			coveredPacks.addAll(base.getCoveredPacks());
@@ -251,62 +100,34 @@ public List<DfsPackFile> getAllCoveredPacks() {
 	}
 
 	/**
-	 * Base of this multipack index
-	 * <p>
-	 * If this midx is part of a chain, this is its parent
+	 * Count of objects in this <b>pack</b> (i.e. including, recursively, its
+	 * base)
 	 *
-	 * @return the base of this multipack index
+	 * @param ctx
+	 *            a reader
+	 * @return count of objects in this pack, including its bases
+	 * @throws IOException
+	 *             an error reading a midx in the chain
 	 */
-	public DfsPackFileMidx getMultipackIndexBase() {
-		return base;
+	protected int getObjectCount(DfsReader ctx) throws IOException {
+		return (int) getPackDescription().getObjectCount();
 	}
 
 	@Override
-	public int findIdxPosition(DfsReader ctx, AnyObjectId id)
-			throws IOException {
-		int p = midx(ctx).findPosition(id);
-		if (p >= 0) {
-			int baseObjects = base == null ? 0 : base.getObjectCount(ctx);
-			return p + baseObjects;
-		}
-
-		if (base == null) {
-			return -1;
-		}
-
-		return base.findIdxPosition(ctx, id);
+	public PackIndex getPackIndex(DfsReader ctx) {
+		throw new IllegalStateException(
+				"Shouldn't use multipack index if the primary index is needed"); //$NON-NLS-1$
 	}
 
 	@Override
-	public boolean hasObject(DfsReader ctx, AnyObjectId id) throws IOException {
-		if (midx(ctx).hasObject(id)) {
-			return true;
-		}
-
-		if (base == null) {
-			return false;
-		}
-
-		return base.hasObject(ctx, id);
-	}
-
-	@Override
-	ObjectLoader get(DfsReader ctx, AnyObjectId id) throws IOException {
-		PackOffset location = midx(ctx).find(id);
-		if (location != null) {
-			return packsInIdOrder[location.getPackId()].get(ctx, id);
-		}
-
-		if (base == null) {
-			return null;
-		}
-
-		return base.get(ctx, id);
+	public PackReverseIndex getReverseIdx(DfsReader ctx) {
+		throw new IllegalStateException(
+				"Shouldn't use multipack index if the reverse index is needed"); //$NON-NLS-1$
 	}
 
 	@Override
 	ObjectLoader load(DfsReader ctx, long midxOffset) throws IOException {
-		DfsPackOffset location = offsetCalculator.decode(midxOffset);
+		DfsPackOffset location = getOffsetCalculator().decode(midxOffset);
 		if (location == null) {
 			return null;
 		}
@@ -314,41 +135,6 @@ ObjectLoader load(DfsReader ctx, long midxOffset) throws IOException {
 	}
 
 	@Override
-	long findOffset(DfsReader ctx, AnyObjectId id) throws IOException {
-		PackOffset location = midx(ctx).find(id);
-		if (location != null) {
-			return offsetCalculator.encode(location);
-		}
-
-		if (base == null) {
-			return -1;
-		}
-
-		return base.findOffset(ctx, id);
-	}
-
-	@Override
-	void resolve(DfsReader ctx, Set<ObjectId> matches, AbbreviatedObjectId id,
-			int matchLimit) throws IOException {
-		midx(ctx).resolve(matches, id, matchLimit);
-		if (matches.size() < matchLimit && base != null) {
-			base.resolve(ctx, matches, id, matchLimit);
-		}
-	}
-
-	@Override
-	void copyPackAsIs(PackOutputStream out, DfsReader ctx) throws IOException {
-		// Assumming the order of the packs does not really matter
-		for (DfsPackFile pack : packs) {
-			pack.copyPackAsIs(out, ctx);
-		}
-
-		if (base != null) {
-			base.copyPackAsIs(out, ctx);
-		}
-	}
-
-	@Override
 	void copyAsIs(PackOutputStream out, DfsObjectToPack src, boolean validate,
 			DfsReader ctx) throws IOException,
 			StoredObjectRepresentationNotAvailableException {
@@ -357,7 +143,7 @@ void copyAsIs(PackOutputStream out, DfsObjectToPack src, boolean validate,
 					"pack mismatch in object description"); //$NON-NLS-1$
 		}
 
-		DfsPackOffset location = offsetCalculator.decode(src.offset);
+		DfsPackOffset location = getOffsetCalculator().decode(src.offset);
 		// The real pack requires the real offset
 		src.offset = location.getPackOffset();
 		location.getPack().copyAsIs(out, src, validate, ctx);
@@ -366,90 +152,31 @@ void copyAsIs(PackOutputStream out, DfsObjectToPack src, boolean validate,
 	}
 
 	@Override
-	byte[] getDeltaHeader(DfsReader ctx, long pos)
+	final byte[] getDeltaHeader(DfsReader ctx, long pos)
 			throws IOException, DataFormatException {
-		DfsPackOffset location = offsetCalculator.decode(pos);
+		DfsPackOffset location = getOffsetCalculator().decode(pos);
 		return location.getPack().getDeltaHeader(ctx, location.getPackOffset());
 	}
 
 	@Override
-	int getObjectType(DfsReader ctx, long pos) throws IOException {
-		DfsPackOffset location = offsetCalculator.decode(pos);
+	final int getObjectType(DfsReader ctx, long pos) throws IOException {
+		DfsPackOffset location = getOffsetCalculator().decode(pos);
 		return location.getPack().getObjectType(ctx, location.getPackOffset());
 	}
 
 	@Override
-	long getObjectSize(DfsReader ctx, AnyObjectId id) throws IOException {
-		PackOffset local = midx(ctx).find(id);
-		if (local != null) {
-			return packsInIdOrder[local.getPackId()].getObjectSize(ctx, id);
-		}
-
-		if (base == null) {
-			return -1;
-		}
-
-		return base.getObjectSize(ctx, id);
-	}
-
-	@Override
-	long getObjectSize(DfsReader ctx, long pos) throws IOException {
+	final long getObjectSize(DfsReader ctx, long pos) throws IOException {
 		if (pos < 0) {
 			return -1;
 		}
-		DfsPackOffset location = offsetCalculator.decode(pos);
+		DfsPackOffset location = getOffsetCalculator().decode(pos);
 		return location.getPack().getObjectSize(ctx, location.getPackOffset());
 	}
 
 	@Override
-	boolean hasObjectSizeIndex(DfsReader ctx) {
-		return false;
-	}
-
-	@Override
-	int getObjectSizeIndexThreshold(DfsReader ctx) {
-		return Integer.MAX_VALUE;
-	}
-
-	@Override
-	long getIndexedObjectSize(DfsReader ctx, int idxPosition) {
-		// TODO(ifrade): if we forward to the pack, it reads its primary index
-		return -1;
-	}
-
-	@Override
-	List<DfsObjectToPack> findAllFromPack(DfsReader ctx,
-			Iterable<ObjectToPack> objects, boolean skipFound)
-			throws IOException {
-		List<DfsObjectToPack> tmp = new BlockList<>();
-		List<ObjectToPack> notFoundHere = new BlockList<>();
-		for (ObjectToPack obj : objects) {
-			DfsObjectToPack otp = (DfsObjectToPack) obj;
-			if (skipFound && otp.isFound()) {
-				continue;
-			}
-			long p = offsetCalculator.encode(midx(ctx).find(otp));
-			if (p < 0) {
-				notFoundHere.add(otp);
-				continue;
-			}
-			otp.setOffset(p);
-			tmp.add(otp);
-		}
-
-		if (base != null && !notFoundHere.isEmpty()) {
-			List<DfsObjectToPack> inChain = base.findAllFromPack(ctx,
-					notFoundHere, skipFound);
-			tmp.addAll(inChain);
-		}
-		tmp.sort(OFFSET_SORT);
-		return tmp;
-	}
-
-	@Override
-	void fillRepresentation(DfsObjectRepresentation r, long offset,
+	final void fillRepresentation(DfsObjectRepresentation r, long offset,
 			DfsReader ctx) throws IOException {
-		DfsPackOffset location = offsetCalculator.decode(offset);
+		DfsPackOffset location = getOffsetCalculator().decode(offset);
 		if (location == null) {
 			throw new IllegalArgumentException("Invalid offset in midx"); //$NON-NLS-1$
 		}
@@ -462,16 +189,16 @@ void fillRepresentation(DfsObjectRepresentation r, long offset,
 	}
 
 	@Override
-	void fillRepresentation(DfsObjectRepresentation r, long offset,
+	final void fillRepresentation(DfsObjectRepresentation r, long offset,
 			DfsReader ctx, PackReverseIndex rev) {
 		// This method shouldn't be called on the midx pack
 		throw new UnsupportedOperationException();
 	}
 
 	@Override
-	boolean isCorrupt(long offset) {
+	final boolean isCorrupt(long offset) {
 		// The index must have been loaded before to have this offset
-		DfsPackOffset location = offsetCalculator.decode(offset);
+		DfsPackOffset location = getOffsetCalculator().decode(offset);
 		if (location == null) {
 			throw new IllegalArgumentException("Invalid offset in midx"); //$NON-NLS-1$
 		}
@@ -479,105 +206,102 @@ boolean isCorrupt(long offset) {
 	}
 
 	@Override
-	DfsBlock readOneBlock(long pos, DfsReader ctx, ReadableChannel rc)
+	final DfsBlock readOneBlock(long pos, DfsReader ctx, ReadableChannel rc)
 			throws IOException {
 		// The index must have been loaded before to have this offset
-		DfsPackOffset location = offsetCalculator.decode(pos);
+		DfsPackOffset location = getOffsetCalculator().decode(pos);
 		return new DfsBlockMidx(location.getPack().readOneBlock(
 				location.getPackOffset(), ctx, rc), location.getPackStart());
 	}
 
 	@Override
-	DfsBlock getOrLoadBlock(long pos, DfsReader ctx) throws IOException {
+	final DfsBlock getOrLoadBlock(long pos, DfsReader ctx) throws IOException {
 		// The index must have been loaded before to have this offset
-		DfsPackOffset location = offsetCalculator.decode(pos);
+		DfsPackOffset location = getOffsetCalculator().decode(pos);
 		return new DfsBlockMidx(location.getPack().getOrLoadBlock(
 				location.getPackOffset(), ctx), location.getPackStart());
 	}
 
-	// Visible for testing
-	static class VOffsetCalculator {
-		private final DfsPackFile[] packs;
+	/**
+	 * Get the object calculator of this midx
+	 *
+	 * @return an offset calculator for this midx (including its chain)
+	 */
+	protected abstract VOffsetCalculator getOffsetCalculator();
 
-		private final long[] accSizes;
+	/**
+	 * Translates from midx-offset (considering all packs concatenated in midx
+	 * order) to (pack, offset) pair. This covers the whole midx chain.
+	 *
+	 * @implNote implementations take care of the encoding and chaining offset
+	 *           calculators.
+	 */
+	protected interface VOffsetCalculator {
+		/**
+		 * Return the pair of pack and offset from a midx offset
+		 *
+		 * @param voffset
+		 *            an offset in the midx chain
+		 * @return the corresponding pack and offset pair
+		 */
+		DfsPackOffset decode(long voffset);
 
-		private final long baseMaxOffset;
-
-		private final VOffsetCalculator baseOffsetCalculator;
-
-		private final DfsPackOffset poBuffer = new DfsPackOffset();
-
-		static VOffsetCalculator fromPacks(DfsPackFile[] packsInIdOrder,
-				VOffsetCalculator baseOffsetCalculator) {
-			long[] accSizes = new long[packsInIdOrder.length + 1];
-			accSizes[0] = 0;
-			for (int i = 0; i < packsInIdOrder.length; i++) {
-				accSizes[i + 1] = accSizes[i] + packsInIdOrder[i]
-						.getPackDescription().getFileSize(PACK);
-			}
-			return new VOffsetCalculator(packsInIdOrder, accSizes,
-					baseOffsetCalculator);
-		}
-
-		VOffsetCalculator(DfsPackFile[] packs, long[] packSizes,
-				VOffsetCalculator baseOffsetCalculator) {
-			this.packs = packs;
-			this.baseOffsetCalculator = baseOffsetCalculator;
-			this.baseMaxOffset = baseOffsetCalculator != null
-					? baseOffsetCalculator.getMaxOffset()
-					: 0;
-			accSizes = packSizes;
-		}
-
-		long encode(PackOffset location) {
-			if (location == null) {
-				return -1;
-			}
-			return location.getOffset() + accSizes[location.getPackId()]
-					+ baseMaxOffset;
-		}
-
-		DfsPackOffset decode(long voffset) {
-			if (voffset == -1) {
-				return null;
-			}
-
-			if (voffset < baseMaxOffset) {
-				return baseOffsetCalculator.decode(voffset);
-			}
-
-			long localOffset = voffset - baseMaxOffset;
-			for (int i = 0; i < accSizes.length; i++) {
-				if (localOffset <= accSizes[i]) {
-					return poBuffer.setValues(packs[i - 1],
-							accSizes[i - 1] + baseMaxOffset, voffset);
-				}
-			}
-			throw new IllegalArgumentException("Asking offset beyond limits"); //$NON-NLS-1$
-		}
-
-		long getMaxOffset() {
-			return accSizes[accSizes.length - 1] + baseMaxOffset;
-		}
+		/**
+		 * Max offset for this DfsPackFileMidx
+		 *
+		 * @return max offset for this pack (including its parents)
+		 */
+		long getMaxOffset();
 	}
 
-	static class DfsPackOffset {
+	/**
+	 * Data object that keeps a location readable as midx-offset or as
+	 * (pack/offset).
+	 * <p>
+	 * midx-offset is the offset considering the concatenation of all covered
+	 * packs in midx order. Only in the first pack of the base of the midx
+	 * chain, the pack offsets match the midx offsets.
+	 */
+	protected static final class DfsPackOffset {
 		private DfsPackFile pack;
 
 		private long packStart;
 
-		private long offset;
+		private long midxOffset;
 
-		private DfsPackOffset setValues(DfsPackFile pack, long packStart,
-				long globalOffset) {
+		/**
+		 * Set a location in this instance
+		 *
+		 * @param pack
+		 *            the pack that contains the object
+		 * @param packStart
+		 *            midx-offset where the pack starts
+		 * @param midxOffset
+		 *            midx-offset
+		 * @return an instance with this data
+		 */
+		DfsPackOffset setValues(DfsPackFile pack, long packStart,
+				long midxOffset) {
 			this.pack = pack;
 			this.packStart = packStart;
-			this.offset = globalOffset;
+			this.midxOffset = midxOffset;
 			return this;
 		}
 
 		/**
-		 * The pack
+		 * Set only the midx-offset
+		 *
+		 * @param midxOffset
+		 *            offset in the midx
+		 * @return and updated DfsPackOffset instance
+		 */
+		DfsPackOffset setMidxOffset(long midxOffset) {
+			this.midxOffset = midxOffset;
+			return this;
+		}
+
+		/**
+		 * The pack containing the object
 		 *
 		 * @return the pack
 		 */
@@ -601,10 +325,10 @@ long getPackStart() {
 		/**
 		 * Offset inside the pack (regular offset)
 		 *
-		 * @return offset inside this pack
+		 * @return offset inside the pack
 		 */
 		long getPackOffset() {
-			return offset - packStart;
+			return midxOffset - packStart;
 		}
 	}
 }
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFileMidxNPacks.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFileMidxNPacks.java
new file mode 100644
index 0000000..6ff078a
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFileMidxNPacks.java
@@ -0,0 +1,434 @@
+/*
+ * Copyright (C) 2025, Google LLC.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.internal.storage.dfs;
+
+import static org.eclipse.jgit.internal.storage.pack.PackExt.MULTI_PACK_INDEX;
+import static org.eclipse.jgit.internal.storage.pack.PackExt.PACK;
+
+import java.io.IOException;
+import java.nio.channels.Channels;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+import org.eclipse.jgit.annotations.Nullable;
+import org.eclipse.jgit.internal.storage.commitgraph.CommitGraph;
+import org.eclipse.jgit.internal.storage.file.PackBitmapIndex;
+import org.eclipse.jgit.internal.storage.midx.MultiPackIndex;
+import org.eclipse.jgit.internal.storage.midx.MultiPackIndex.PackOffset;
+import org.eclipse.jgit.internal.storage.midx.MultiPackIndexLoader;
+import org.eclipse.jgit.internal.storage.pack.ObjectToPack;
+import org.eclipse.jgit.internal.storage.pack.PackOutputStream;
+import org.eclipse.jgit.lib.AbbreviatedObjectId;
+import org.eclipse.jgit.lib.AnyObjectId;
+import org.eclipse.jgit.lib.BitmapIndex;
+import org.eclipse.jgit.lib.ObjectId;
+import org.eclipse.jgit.lib.ObjectIdSet;
+import org.eclipse.jgit.lib.ObjectLoader;
+import org.eclipse.jgit.util.BlockList;
+
+/**
+ * Implementation of a DfsPackfile that tries to solve the queries in a
+ * multipack index before resorting to the real packs.
+ * <p>
+ * It uses the position in the multipack index of the objects as their "offset".
+ */
+public final class DfsPackFileMidxNPacks extends DfsPackFileMidx {
+
+	private static final int REF_POSITION = 0;
+
+	private final List<DfsPackFile> packs;
+
+	// The required packs, in the order specified in the multipack index
+	// Initialized lazily, when the midx is loaded
+	private final DfsPackFile[] packsInIdOrder;
+
+	private MultiPackIndex midx;
+
+	private final DfsPackFileMidx base;
+
+	private final VOffsetCalculatorNPacks offsetCalculator;
+
+	DfsPackFileMidxNPacks(DfsBlockCache cache, DfsPackDescription desc,
+			List<DfsPackFile> requiredPacks, @Nullable DfsPackFileMidx base) {
+		super(cache, desc);
+		this.base = base;
+		this.packs = requiredPacks;
+		String[] coveredPackNames = desc.getCoveredPacks().stream()
+				.map(DfsPackDescription::getPackName).toArray(String[]::new);
+		packsInIdOrder = getPacksInMidxIdOrder(coveredPackNames);
+		offsetCalculator = VOffsetCalculatorNPacks.fromPacks(packsInIdOrder,
+				base != null ? base.getOffsetCalculator() : null);
+		this.length = offsetCalculator.getMaxOffset();
+	}
+
+	private MultiPackIndex midx(DfsReader ctx) throws IOException {
+		if (midx != null) {
+			return midx;
+		}
+
+		DfsStreamKey revKey = desc.getStreamKey(MULTI_PACK_INDEX);
+		// Keep the value parsed in the loader, in case the Ref<> is
+		// nullified in ClockBlockCacheTable#reserveSpace
+		// before we read its value.
+		AtomicReference<MultiPackIndex> loadedRef = new AtomicReference<>(null);
+		DfsBlockCache.Ref<MultiPackIndex> cachedRef = cache.getOrLoadRef(revKey,
+				REF_POSITION, () -> {
+					RefWithSize midx1 = loadMultiPackIndex(ctx, desc);
+					loadedRef.set(midx1.idx);
+					return new DfsBlockCache.Ref<>(revKey, REF_POSITION,
+							midx1.size, midx1.idx);
+				});
+		// if (loadedRef.get() == null) {
+		// ctx.stats.ridxCacheHit;
+		// }
+		midx = cachedRef.get() != null ? cachedRef.get() : loadedRef.get();
+		return midx;
+	}
+
+	private static RefWithSize loadMultiPackIndex(DfsReader ctx,
+			DfsPackDescription desc) throws IOException {
+		try (ReadableChannel rc = ctx.db.openFile(desc, MULTI_PACK_INDEX)) {
+			MultiPackIndex midx = MultiPackIndexLoader
+					.read(Channels.newInputStream(rc));
+			// ctx.stats.readIdxBytes += rc.position();
+			return new RefWithSize(midx, midx.getMemorySize());
+		}
+	}
+
+	private record RefWithSize(MultiPackIndex idx, long size) {
+	}
+
+	private DfsPackFile[] getPacksInMidxIdOrder(String[] packNames) {
+		Map<String, DfsPackFile> byName = packs.stream()
+				.collect(Collectors.toUnmodifiableMap(
+						p -> p.getPackDescription().getPackName(),
+						Function.identity()));
+		DfsPackFile[] result = new DfsPackFile[desc.getCoveredPacks().size()];
+		for (int i = 0; i < packNames.length; i++) {
+			DfsPackFile pack = byName.get(packNames[i]);
+			if (pack == null) {
+				// This should have been checked in the object db
+				// when the pack description was loaded
+				throw new IllegalStateException("Required pack missing"); //$NON-NLS-1$
+			}
+			result[i] = pack;
+		}
+		return result;
+	}
+
+	// Visible for testing
+	@Override
+	protected VOffsetCalculator getOffsetCalculator() {
+		return offsetCalculator;
+	}
+
+	@Override
+	public ObjectIdSet asObjectIdSet(DfsReader ctx) throws IOException {
+		MultiPackIndex multiPackIndex = midx(ctx);
+		return multiPackIndex::hasObject;
+	}
+
+
+	@Override
+	public PackBitmapIndex getBitmapIndex(DfsReader ctx) throws IOException {
+		// TODO(ifrade): at some point we will have bitmaps over the multipack
+		// index
+		// At the moment bitmap is in GC, at the end of the chain
+		if (base != null) {
+			return base.getBitmapIndex(ctx);
+		}
+
+		for (DfsPackFile pack : packsInIdOrder) {
+			PackBitmapIndex bitmapIndex = pack.getBitmapIndex(ctx);
+			if (bitmapIndex != null) {
+				return bitmapIndex;
+			}
+		}
+		return null;
+	}
+
+	@Override
+	List<DfsPackFile> fullyIncludedIn(DfsReader ctx,
+			BitmapIndex.BitmapBuilder need) throws IOException {
+		List<DfsPackFile> fullyIncluded = new ArrayList<>();
+		for (DfsPackFile pack : packs) {
+			List<DfsPackFile> includedPacks = pack.fullyIncludedIn(ctx, need);
+			if (!includedPacks.isEmpty()) {
+				fullyIncluded.addAll(includedPacks);
+			}
+		}
+
+		if (base != null) {
+			fullyIncluded.addAll(base.fullyIncludedIn(ctx, need));
+		}
+
+		return fullyIncluded;
+	}
+
+	@Override
+	public CommitGraph getCommitGraph(DfsReader ctx) throws IOException {
+		for (DfsPackFile pack : packs) {
+			CommitGraph cg = pack.getCommitGraph(ctx);
+			if (cg != null) {
+				return cg;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Count of objects in this <b>pack</b> (i.e. including, recursively, its
+	 * base)
+	 *
+	 * @param ctx
+	 *            a reader
+	 * @return count of objects in this pack, including its bases
+	 * @throws IOException
+	 *             an error reading a midx in the chain
+	 */
+	@Override
+	protected int getObjectCount(DfsReader ctx) throws IOException {
+		int baseObjectCount = base == null ? 0 : base.getObjectCount(ctx);
+		return midx(ctx).getObjectCount() + baseObjectCount;
+	}
+
+	/**
+	 * Packs indexed by this multipack index (base NOT included)
+	 *
+	 * @return packs indexed by this multipack index
+	 */
+	@Override
+	public List<DfsPackFile> getCoveredPacks() {
+		return packs;
+	}
+
+	/**
+	 * Base of this multipack index
+	 * <p>
+	 * If this midx is part of a chain, this is its parent
+	 *
+	 * @return the base of this multipack index
+	 */
+	@Override
+	public DfsPackFileMidx getMultipackIndexBase() {
+		return base;
+	}
+
+	@Override
+	public int findIdxPosition(DfsReader ctx, AnyObjectId id)
+			throws IOException {
+		int p = midx(ctx).findPosition(id);
+		if (p >= 0) {
+			int baseObjects = base == null ? 0 : base.getObjectCount(ctx);
+			return p + baseObjects;
+		}
+
+		if (base == null) {
+			return -1;
+		}
+
+		return base.findIdxPosition(ctx, id);
+	}
+
+	@Override
+	public boolean hasObject(DfsReader ctx, AnyObjectId id) throws IOException {
+		if (midx(ctx).hasObject(id)) {
+			return true;
+		}
+
+		if (base == null) {
+			return false;
+		}
+
+		return base.hasObject(ctx, id);
+	}
+
+	@Override
+	ObjectLoader get(DfsReader ctx, AnyObjectId id) throws IOException {
+		PackOffset location = midx(ctx).find(id);
+		if (location != null) {
+			return packsInIdOrder[location.getPackId()].get(ctx, id);
+		}
+
+		if (base == null) {
+			return null;
+		}
+
+		return base.get(ctx, id);
+	}
+
+	@Override
+	long findOffset(DfsReader ctx, AnyObjectId id) throws IOException {
+		PackOffset location = midx(ctx).find(id);
+		if (location != null) {
+			return offsetCalculator.encode(location);
+		}
+
+		if (base == null) {
+			return -1;
+		}
+
+		return base.findOffset(ctx, id);
+	}
+
+	@Override
+	void resolve(DfsReader ctx, Set<ObjectId> matches, AbbreviatedObjectId id,
+			int matchLimit) throws IOException {
+		midx(ctx).resolve(matches, id, matchLimit);
+		if (matches.size() < matchLimit && base != null) {
+			base.resolve(ctx, matches, id, matchLimit);
+		}
+	}
+
+	@Override
+	void copyPackAsIs(PackOutputStream out, DfsReader ctx) throws IOException {
+		// Assumming the order of the packs does not really matter
+		for (DfsPackFile pack : packs) {
+			pack.copyPackAsIs(out, ctx);
+		}
+
+		if (base != null) {
+			base.copyPackAsIs(out, ctx);
+		}
+	}
+
+	@Override
+	long getObjectSize(DfsReader ctx, AnyObjectId id) throws IOException {
+		PackOffset local = midx(ctx).find(id);
+		if (local != null) {
+			return packsInIdOrder[local.getPackId()].getObjectSize(ctx, id);
+		}
+
+		if (base == null) {
+			return -1;
+		}
+
+		return base.getObjectSize(ctx, id);
+	}
+
+	@Override
+	boolean hasObjectSizeIndex(DfsReader ctx) {
+		return false;
+	}
+
+	@Override
+	int getObjectSizeIndexThreshold(DfsReader ctx) {
+		return Integer.MAX_VALUE;
+	}
+
+	@Override
+	long getIndexedObjectSize(DfsReader ctx, int idxPosition) {
+		// TODO(ifrade): if we forward to the pack, it reads its primary index
+		return -1;
+	}
+
+	@Override
+	List<DfsObjectToPack> findAllFromPack(DfsReader ctx,
+			Iterable<ObjectToPack> objects, boolean skipFound)
+			throws IOException {
+		List<DfsObjectToPack> tmp = new BlockList<>();
+		List<ObjectToPack> notFoundHere = new BlockList<>();
+		for (ObjectToPack obj : objects) {
+			DfsObjectToPack otp = (DfsObjectToPack) obj;
+			if (skipFound && otp.isFound()) {
+				continue;
+			}
+			long p = offsetCalculator.encode(midx(ctx).find(otp));
+			if (p < 0) {
+				notFoundHere.add(otp);
+				continue;
+			}
+			otp.setOffset(p);
+			tmp.add(otp);
+		}
+
+		if (base != null && !notFoundHere.isEmpty()) {
+			List<DfsObjectToPack> inChain = base.findAllFromPack(ctx,
+					notFoundHere, skipFound);
+			tmp.addAll(inChain);
+		}
+		tmp.sort(OFFSET_SORT);
+		return tmp;
+	}
+
+
+	// Visible for testing
+	static class VOffsetCalculatorNPacks implements VOffsetCalculator {
+		private final DfsPackFile[] packs;
+
+		private final long[] accSizes;
+
+		private final long baseMaxOffset;
+
+		private final VOffsetCalculator baseOffsetCalculator;
+
+		private final DfsPackOffset poBuffer = new DfsPackOffset();
+
+		static VOffsetCalculatorNPacks fromPacks(DfsPackFile[] packsInIdOrder,
+				VOffsetCalculator baseOffsetCalculator) {
+			long[] accSizes = new long[packsInIdOrder.length + 1];
+			accSizes[0] = 0;
+			for (int i = 0; i < packsInIdOrder.length; i++) {
+				accSizes[i + 1] = accSizes[i] + packsInIdOrder[i]
+						.getPackDescription().getFileSize(PACK);
+			}
+			return new VOffsetCalculatorNPacks(packsInIdOrder, accSizes,
+					baseOffsetCalculator);
+		}
+
+		VOffsetCalculatorNPacks(DfsPackFile[] packs, long[] packSizes,
+				VOffsetCalculator baseOffsetCalculator) {
+			this.packs = packs;
+			this.baseOffsetCalculator = baseOffsetCalculator;
+			this.baseMaxOffset = baseOffsetCalculator != null
+					? baseOffsetCalculator.getMaxOffset()
+					: 0;
+			accSizes = packSizes;
+		}
+
+		long encode(MultiPackIndex.PackOffset location) {
+			if (location == null) {
+				return -1;
+			}
+			return location.getOffset() + accSizes[location.getPackId()]
+					+ baseMaxOffset;
+		}
+
+		@Override
+		public DfsPackOffset decode(long voffset) {
+			if (voffset == -1) {
+				return null;
+			}
+
+			if (voffset < baseMaxOffset) {
+				return baseOffsetCalculator.decode(voffset);
+			}
+
+			long localOffset = voffset - baseMaxOffset;
+			for (int i = 0; i < accSizes.length; i++) {
+				if (localOffset <= accSizes[i]) {
+					return poBuffer.setValues(packs[i - 1],
+							accSizes[i - 1] + baseMaxOffset, voffset);
+				}
+			}
+			throw new IllegalArgumentException("Asking offset beyond limits"); //$NON-NLS-1$
+		}
+
+		@Override
+		public long getMaxOffset() {
+			return accSizes[accSizes.length - 1] + baseMaxOffset;
+		}
+	}
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/MidxPackList.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/MidxPackList.java
index d26b157..f485725 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/MidxPackList.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/MidxPackList.java
@@ -17,10 +17,13 @@
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
+import java.util.Optional;
 import java.util.Queue;
 import java.util.Set;
 import java.util.TreeSet;
 
+import org.eclipse.jgit.annotations.Nullable;
+
 /**
  * Helper class to manipulate a list of packs with (maybe) midxs.
  **/
@@ -152,6 +155,51 @@ public Set<DfsPackFileMidx> findAllCoveringMidxs(
 		return impactedMidxs;
 	}
 
+	/**
+	 * Return the top midx of the chain in the repo
+	 *
+	 * <p>
+	 * In the unlikely case of multiple unconnected midxs, take the most recent.
+	 *
+	 * @return top midx
+	 */
+	public DfsPackFileMidx getTopMidxPack() {
+		List<DfsPackFileMidx> topLevelMidxs = packs.stream().filter(
+				p -> p.getPackDescription().hasFileExt(MULTI_PACK_INDEX))
+				.map(p -> (DfsPackFileMidx) p).toList();
+		if (topLevelMidxs.isEmpty()) {
+			return null;
+		}
+
+		if (topLevelMidxs.size() == 1) {
+			return topLevelMidxs.get(0);
+		}
+
+		Optional<DfsPackFileMidx> newest = topLevelMidxs.stream().max(Comparator
+				.comparingLong(p -> p.getPackDescription().getLastModified()));
+		return newest.orElse(null);
+	}
+
+	/**
+	 * Return all the plain packs not covered by this midx or its parents.
+	 *
+	 * @param midx
+	 *            a multipack index. Null midx returns all packs in db.
+	 * @return all the packs in the db that are not covered by this midx or its
+	 *         parents.
+	 */
+	public List<DfsPackFile> getPlainPacksNotCoveredBy(
+			@Nullable DfsPackFileMidx midx) {
+		if (midx == null) {
+			return getAllPlainPacks();
+		}
+		TreeSet<DfsPackFile> covered = asSet(midx.getAllCoveredPacks());
+		// We cannot just take "all packs that are not midx" from the list
+		// because this midx could be the middle in a chain.
+		return getAllPlainPacks().stream().filter(p -> !covered.contains(p))
+				.toList();
+	}
+
 	private static boolean containsAny(List<DfsPackFile> inMidx,
 			List<DfsPackFile> queryPacks) {
 		Set<DfsPackFile> inMidxSet = asSet(inMidx);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java
index 5f2015b..01f9a07 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java
@@ -189,7 +189,7 @@ private static PackExt getPackExt(String endsWithExtension) {
 				return ext;
 			}
 
-			if (endsWithExtension.equals("old-" + ext.getExtension())) {
+			if (endsWithExtension.equals("old-" + ext.getExtension())) { //$NON-NLS-1$
 				return ext;
 			}
 		}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackedBatchRefUpdate.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackedBatchRefUpdate.java
index 5584f13..4b5566e 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackedBatchRefUpdate.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackedBatchRefUpdate.java
@@ -172,7 +172,7 @@ public void execute(RevWalk walk, ProgressMonitor monitor,
 			}
 
 			packedRefsLock = refdb.lockPackedRefsOrThrow();
-			PackedRefList oldPackedList = refdb.refreshPackedRefs();
+			PackedRefList oldPackedList = refdb.getLockedPackedRefs(packedRefsLock);
 			RefList<Ref> newRefs = applyUpdates(walk, oldPackedList, pending);
 			if (newRefs == null) {
 				return;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java
index a439f43..9c262e9 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java
@@ -720,7 +720,7 @@ void delete(RefDirectoryUpdate update) throws IOException {
 				PackedRefList packed = getPackedRefs();
 				if (packed.contains(name)) {
 					// Force update our packed-refs snapshot before writing
-					packed = refreshPackedRefs();
+					packed = getLockedPackedRefs(lck);
 					int idx = packed.find(name);
 					if (0 <= idx) {
 						commitPackedRefs(lck, packed.remove(idx), packed, true);
@@ -788,7 +788,7 @@ private void pack(Collection<String> refs,
 		try {
 			LockFile lck = lockPackedRefsOrThrow();
 			try {
-				PackedRefList oldPacked = refreshPackedRefs();
+				PackedRefList oldPacked = getLockedPackedRefs(lck);
 				RefList<Ref> newPacked = oldPacked;
 
 				// Iterate over all refs to be packed
@@ -971,6 +971,15 @@ else if (0 <= (idx = packed.find(dst.getName())))
 	}
 
 	PackedRefList getPackedRefs() throws IOException {
+		return refreshPackedRefsIfNeeded();
+	}
+
+	PackedRefList getLockedPackedRefs(LockFile packedRefsFileLock) throws IOException {
+		packedRefsFileLock.requireLock();
+		return refreshPackedRefsIfNeeded();
+	}
+
+	PackedRefList refreshPackedRefsIfNeeded() throws IOException {
 		PackedRefList curList = packedRefs.get();
 		if (!curList.shouldRefresh()) {
 			return curList;
@@ -985,23 +994,29 @@ private PackedRefsRefresher getPackedRefsRefresher(PackedRefList curList)
 			return refresher;
 		}
 		// This synchronized is NOT needed for correctness. Instead it is used
-		// as a throttling mechanism to ensure that only one "read" thread does
-		// the work to refresh the file. In order to avoid stalling writes which
-		// must already be serialized and tend to be a bottleneck,
-		// the refreshPackedRefs() need not be synchronized.
+		// as a mechanism to try to avoid parallel reads of the same file content
+		// since repeating work, even in parallel, hurts performance.
+		// Unfortunately, this approach can still lead to some unnecessary re-reads
+		// during the "racy" window of the snapshot timestamp.
 		synchronized (this) {
 			if (packedRefsRefresher.get() != refresher) {
 				refresher = packedRefsRefresher.get();
 				if (refresher != null) {
-					// Refresher now guaranteed to have been created after the
-					// current thread entered getPackedRefsRefresher(), even if
-					// it's currently out of date.
+					// Refresher now guaranteed to have not started refreshing until
+					// after the current thread entered getPackedRefsRefresher(),
+					// even if it's currently out of date. And if the packed-refs
+					// lock is held before calling this method, then it is also
+					// guaranteed to not be out-of date even during the "racy"
+					// window of the snapshot timestamp.
 					return refresher;
 				}
 			}
-			refresher = createPackedRefsRefresherAsLatest(curList);
+			refresher = new PackedRefsRefresher(curList);
+			packedRefsRefresher.set(refresher);
 		}
-		return runAndClear(refresher);
+		refresher.run();
+		packedRefsRefresher.compareAndSet(refresher, null);
+		return refresher;
 	}
 
 	private boolean shouldRefreshPackedRefs(FileSnapshot snapshot) throws IOException {
@@ -1027,23 +1042,6 @@ private boolean shouldRefreshPackedRefs(FileSnapshot snapshot) throws IOExceptio
 		return true;
 	}
 
-	PackedRefList refreshPackedRefs() throws IOException {
-		return runAndClear(createPackedRefsRefresherAsLatest(packedRefs.get()))
-				.getOrThrowIOException();
-	}
-
-	private PackedRefsRefresher createPackedRefsRefresherAsLatest(PackedRefList curList) {
-		PackedRefsRefresher refresher = new PackedRefsRefresher(curList);
-		packedRefsRefresher.set(refresher);
-		return refresher;
-	}
-
-	private PackedRefsRefresher runAndClear(PackedRefsRefresher refresher) {
-		refresher.run();
-		packedRefsRefresher.compareAndSet(refresher, null);
-		return refresher;
-	}
-
 	private PackedRefList refreshPackedRefs(PackedRefList curList)
 			throws IOException {
 		final PackedRefList newList = readPackedRefs();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateParser.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateParser.java
index c9f0dec..5e9ac97 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateParser.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateParser.java
@@ -375,7 +375,7 @@ receivedNonce, sentNonce(), db, stateless, nonceSlopLimit)
 			// Read push-option lines (if any) before the empty line separator
 			String line;
 			while (!(line = reader.read()).isEmpty()) {
-				if (line.startsWith(PUSH_OPTION + " ")) {
+				if (line.startsWith(PUSH_OPTION + " ")) { //$NON-NLS-1$
 					pushOptions.add(parseHeader(line, PUSH_OPTION));
 				} else {
 					// Not a push-option, should be empty line
diff --git a/pom.xml b/pom.xml
index 3f918c7..f84160c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,7 +18,7 @@
   <groupId>org.eclipse.jgit</groupId>
   <artifactId>org.eclipse.jgit-parent</artifactId>
   <packaging>pom</packaging>
-  <version>7.5.0-SNAPSHOT</version>
+  <version>7.6.0-SNAPSHOT</version>
 
   <name>JGit - Parent</name>
   <url>${jgit-url}</url>
@@ -118,7 +118,7 @@
 
     <project.build.outputTimestamp>${commit.time.iso}</project.build.outputTimestamp>
 
-    <jgit-last-release-version>7.4.0.202509020913-r</jgit-last-release-version>
+    <jgit-last-release-version>7.5.0.202512021534-r</jgit-last-release-version>
     <ant-version>1.10.15</ant-version>
     <apache-sshd-version>2.16.0</apache-sshd-version>
     <jsch-version>0.1.55</jsch-version>
@@ -130,25 +130,25 @@
     <commons-compress-version>1.28.0</commons-compress-version>
     <osgi-core-version>6.0.0</osgi-core-version>
     <servlet-api-version>4.0.4</servlet-api-version>
-    <jetty-version>12.1.3</jetty-version>
-    <japicmp-version>0.24.1</japicmp-version>
+    <jetty-version>12.1.5</jetty-version>
+    <japicmp-version>0.24.2</japicmp-version>
     <httpclient-version>4.5.14</httpclient-version>
     <httpcore-version>4.4.16</httpcore-version>
     <slf4j-version>2.0.17</slf4j-version>
     <maven-javadoc-plugin-version>3.12.0</maven-javadoc-plugin-version>
     <gson-version>2.13.2</gson-version>
-    <bouncycastle-version>1.82</bouncycastle-version>
-    <spotbugs-maven-plugin-version>4.9.6.0</spotbugs-maven-plugin-version>
+    <bouncycastle-version>1.83</bouncycastle-version>
+    <spotbugs-maven-plugin-version>4.9.8.1</spotbugs-maven-plugin-version>
     <maven-project-info-reports-plugin-version>3.9.0</maven-project-info-reports-plugin-version>
     <maven-jxr-plugin-version>3.6.0</maven-jxr-plugin-version>
     <maven-surefire-plugin-version>3.5.4</maven-surefire-plugin-version>
     <maven-surefire-report-plugin-version>${maven-surefire-plugin-version}</maven-surefire-report-plugin-version>
     <maven-compiler-plugin-version>3.14.1</maven-compiler-plugin-version>
-    <plexus-compiler-version>2.13.0</plexus-compiler-version>
+    <plexus-compiler-version>2.16.0</plexus-compiler-version>
     <hamcrest-version>3.0</hamcrest-version>
     <assertj-version>3.27.6</assertj-version>
     <jna-version>5.18.1</jna-version>
-    <byte-buddy-version>1.17.8</byte-buddy-version>
+    <byte-buddy-version>1.18.2</byte-buddy-version>
 
     <!-- Properties to enable jacoco code coverage analysis -->
     <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
@@ -300,12 +300,12 @@
         <plugin>
           <groupId>org.eclipse.cbi.maven.plugins</groupId>
           <artifactId>eclipse-jarsigner-plugin</artifactId>
-          <version>1.5.2</version>
+          <version>1.5.3</version>
         </plugin>
         <plugin>
           <groupId>org.jacoco</groupId>
           <artifactId>jacoco-maven-plugin</artifactId>
-          <version>0.8.13</version>
+          <version>0.8.14</version>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
@@ -609,7 +609,7 @@
         <artifactId>cyclonedx-maven-plugin</artifactId>
         <configuration>
           <projectType>library</projectType>
-          <schemaVersion>1.4</schemaVersion>
+          <schemaVersion>1.6</schemaVersion>
           <includeBomSerialNumber>true</includeBomSerialNumber>
           <includeCompileScope>true</includeCompileScope>
           <includeProvidedScope>true</includeProvidedScope>
@@ -899,7 +899,7 @@
       <dependency>
         <groupId>commons-codec</groupId>
         <artifactId>commons-codec</artifactId>
-        <version>1.19.0</version>
+        <version>1.20.0</version>
       </dependency>
 
       <dependency>
@@ -911,7 +911,7 @@
       <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-io</artifactId>
-        <version>2.20.0</version>
+        <version>2.21.0</version>
       </dependency>
 
       <dependency>
@@ -923,7 +923,7 @@
       <dependency>
         <groupId>org.tukaani</groupId>
         <artifactId>xz</artifactId>
-        <version>1.10</version>
+        <version>1.11</version>
         <optional>true</optional>
       </dependency>
 
@@ -1129,7 +1129,7 @@
               <dependency>
                 <groupId>org.eclipse.jdt</groupId>
                 <artifactId>ecj</artifactId>
-                <version>3.40.0</version>
+                <version>3.43.0</version>
               </dependency>
             </dependencies>
           </plugin>
diff --git a/tools/bazlets.bzl b/tools/bazlets.bzl
deleted file mode 100644
index f089af4..0000000
--- a/tools/bazlets.bzl
+++ /dev/null
@@ -1,18 +0,0 @@
-load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
-
-NAME = "com_googlesource_gerrit_bazlets"
-
-def load_bazlets(
-        commit,
-        local_path = None):
-    if not local_path:
-        git_repository(
-            name = NAME,
-            remote = "https://gerrit.googlesource.com/bazlets",
-            commit = commit,
-        )
-    else:
-        native.local_repository(
-            name = NAME,
-            path = local_path,
-        )
diff --git a/tools/remote-bazelrc b/tools/remote-bazelrc
index f8aabd2..39797b8 100644
--- a/tools/remote-bazelrc
+++ b/tools/remote-bazelrc
@@ -30,11 +30,11 @@
 
 # Set several flags related to specifying the platform, toolchain and java
 # properties.
-build:remote --crosstool_top=@ubuntu2204_jdk17//cc:toolchain
-build:remote --extra_toolchains=@ubuntu2204_jdk17//config:cc-toolchain
-build:remote --extra_execution_platforms=@ubuntu2204_jdk17//config:platform
-build:remote --host_platform=@ubuntu2204_jdk17//config:platform
-build:remote --platforms=@ubuntu2204_jdk17//config:platform
+build:remote --crosstool_top=@rbe_autoconfig//cc:toolchain
+build:remote --extra_toolchains=@rbe_autoconfig//config:cc-toolchain
+build:remote --extra_execution_platforms=@rbe_autoconfig//config:platform
+build:remote --host_platform=@rbe_autoconfig//config:platform
+build:remote --platforms=@rbe_autoconfig//config:platform
 
 # Set various strategies so that all actions execute remotely. Mixing remote
 # and local execution will lead to errors unless the toolchain and remote
