diff --git a/.bazelrc b/.bazelrc
index 0006880..0712ec2 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -1,3 +1,8 @@
+# TODO(davido): Migrate all dependencies from WORKSPACE to MODULE.bazel
+# https://issues.gerritcodereview.com/issues/303819949
+common --noenable_bzlmod
+common --enable_workspace
+
 build --workspace_status_command="python3 ./tools/workspace_status.py"
 build --repository_cache=~/.gerritcodereview/bazel-cache/repository
 build --incompatible_strict_action_env
diff --git a/.bazelversion b/.bazelversion
index 2b0aa21..e8be684 100644
--- a/.bazelversion
+++ b/.bazelversion
@@ -1 +1 @@
-8.2.1
+7.6.1
diff --git a/Documentation/config-options.md b/Documentation/config-options.md
index 4dde8f8..4c74855 100644
--- a/Documentation/config-options.md
+++ b/Documentation/config-options.md
@@ -131,6 +131,7 @@
 | `pack.searchForReuseTimeout` | | &#x20DE; | Search for reuse phase timeout. Expressed as a `Duration`, i.e.: `50sec`. |
 | `pack.singlePack` | `false` | &#x20DE; | Whether all of `refs/*` should be packed in a single pack. |
 | `pack.threads` | `0` (auto-detect number of processors) | &#x2705; | Number of threads to use for delta compression. |
+| `pack.useObjectSizeIndex` | `false` | &#x20DE; | Whether to use the object size index when available. |
 | `pack.waitPreventRacyPack` | `false` | &#x20DE; | Whether we wait before opening a newly written pack to prevent its lastModified timestamp could be racy. |
 | `pack.window` | `10` | &#x2705; | Number of objects to try when looking for a delta base per thread searching for deltas. |
 | `pack.windowMemory` | `0` (unlimited) | &#x2705; | Maximum number of bytes to put into the delta search window. |
diff --git a/MODULE.bazel b/MODULE.bazel
index dc2bfbc..0b932b8 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -1,101 +1,2 @@
-module(name = "jgit")
-
-bazel_dep(name = "rules_java", version = "8.11.0")
-bazel_dep(name = "rules_jvm_external", version = "6.7")
-
-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",
-)
-
-http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-
-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",
-    ],
-)
-
-BOUNCYCASTLE_VERSION = "1.80"
-
-BYTE_BUDDY_VERSION = "1.17.5"
-
-JETTY_VERSION = "12.0.21"
-
-JMH_VERSION = "1.37"
-
-JNA_VERSION = "5.17.0"
-
-SLF4J_VERSION = "1.7.36"
-
-SSHD_VERSION = "2.15.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.1",
-        "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.18.0",
-        "commons-io:commons-io:2.19.0",
-        "commons-logging:commons-logging:1.3.5",
-        "jakarta.servlet:jakarta.servlet-api:6.1.0",
-        "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.27.1",
-        "org.apache.commons:commons-lang3:3.17.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.3",
-        "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.ee10:jetty-ee10-servlet:" + JETTY_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.hamcrest:hamcrest:2.2",
-        "org.mockito:mockito-core:5.18.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.10",
-    ],
-    duplicate_version_warning = "error",
-    fail_on_missing_checksum = True,
-    fetch_sources = True,
-    repositories = [
-        "https://repo1.maven.org/maven2",
-    ],
-    strict_visibility = True,
-)
-use_repo(maven, "jgit_deps")
+# TODO(davido): Migrate all dependencies from WORKSPACE to MODULE.bazel
+# https://issues.gerritcodereview.com/issues/303819949
diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock
deleted file mode 100644
index bdc8104..0000000
--- a/MODULE.bazel.lock
+++ /dev/null
@@ -1,221 +0,0 @@
-{
-  "lockFileVersion": 18,
-  "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.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16",
-    "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915",
-    "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed",
-    "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da",
-    "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd",
-    "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8",
-    "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d",
-    "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.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b",
-    "https://bcr.bazel.build/modules/bazel_features/1.21.0/source.json": "3e8379efaaef53ce35b7b8ba419df829315a880cb0a030e5bb45c96d6d5ecb5f",
-    "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7",
-    "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a",
-    "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8",
-    "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e",
-    "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.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651",
-    "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.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d",
-    "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/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb",
-    "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4",
-    "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6",
-    "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4",
-    "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f",
-    "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/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902",
-    "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/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7",
-    "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c",
-    "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d",
-    "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df",
-    "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e",
-    "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981",
-    "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0",
-    "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e",
-    "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022",
-    "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206",
-    "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4",
-    "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.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191",
-    "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac",
-    "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc",
-    "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87",
-    "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a",
-    "https://bcr.bazel.build/modules/rules_cc/0.0.17/source.json": "4db99b3f55c90ab28d14552aa0632533e3e8e5e9aea0f5c24ac0014282c2a7c5",
-    "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_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6",
-    "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8",
-    "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e",
-    "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/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39",
-    "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6",
-    "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31",
-    "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a",
-    "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.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2",
-    "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe",
-    "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/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d",
-    "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4",
-    "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0",
-    "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.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59",
-    "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/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff",
-    "https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a",
-    "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/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2",
-    "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1",
-    "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f",
-    "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300",
-    "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382",
-    "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed",
-    "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58",
-    "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c",
-    "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7",
-    "https://bcr.bazel.build/modules/rules_python/0.40.0/source.json": "939d4bd2e3110f27bfb360292986bb79fd8dcefb874358ccd6cdaa7bda029320",
-    "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c",
-    "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.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef",
-    "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c",
-    "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7",
-    "https://bcr.bazel.build/modules/stardoc/0.7.1/source.json": "b6500ffcd7b48cd72c29bb67bcac781e12701cc0d6d55d266a652583cfcdab01",
-    "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.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79",
-    "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d",
-    "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198"
-  },
-  "selectedYankedVersions": {},
-  "moduleExtensions": {
-    "@@platforms//host:extension.bzl%host_platform": {
-      "general": {
-        "bzlTransitiveDigest": "xelQcPZH8+tmuOHVjL9vDxMnnQNMlwj0SlvgoqBkm4U=",
-        "usagesDigest": "SeQiIN/f8/Qt9vYQk7qcXp4I4wJeEC0RnQDiaaJ4tb8=",
-        "recordedFileInputs": {},
-        "recordedDirentsInputs": {},
-        "envVariables": {},
-        "generatedRepoSpecs": {
-          "host_platform": {
-            "repoRuleId": "@@platforms//host:extension.bzl%host_platform_repo",
-            "attributes": {}
-          }
-        },
-        "recordedRepoMappingEntries": []
-      }
-    },
-    "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": {
-      "general": {
-        "bzlTransitiveDigest": "sFhcgPbDQehmbD1EOXzX4H1q/CD5df8zwG4kp4jbvr8=",
-        "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=",
-        "recordedFileInputs": {},
-        "recordedDirentsInputs": {},
-        "envVariables": {},
-        "generatedRepoSpecs": {
-          "com_github_jetbrains_kotlin_git": {
-            "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%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": {
-            "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository",
-            "attributes": {
-              "git_repository_name": "com_github_jetbrains_kotlin_git",
-              "compiler_version": "1.9.23"
-            }
-          },
-          "com_github_google_ksp": {
-            "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%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": {
-            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file",
-            "attributes": {
-              "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985",
-              "urls": [
-                "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint"
-              ],
-              "executable": true
-            }
-          },
-          "rules_android": {
-            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%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"
-          ]
-        ]
-      }
-    }
-  }
-}
diff --git a/WORKSPACE b/WORKSPACE
index 6ba4a02..17a6179 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -1,2 +1,317 @@
-# This file marks the root of the Bazel workspace.
-# See MODULE.bazel for external dependencies setup.
+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.17.0"
+
+maven_jar(
+    name = "jna",
+    artifact = "net.java.dev.jna:jna:" + JNA_VERS,
+    sha1 = "33d12735bef894440780fce64f9758d420c7bae2",
+)
+
+maven_jar(
+    name = "jna-platform",
+    artifact = "net.java.dev.jna:jna-platform:" + JNA_VERS,
+    sha1 = "a4934c44d25a9d8c2ddf4203affd20330cb3426f",
+)
+
+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",
+)
+
+maven_jar(
+    name = "log-api",
+    artifact = "org.slf4j:slf4j-api:1.7.36",
+    sha1 = "6c62681a2f655b49963a5983b8b0950a6120ae14",
+)
+
+maven_jar(
+    name = "slf4j-simple",
+    artifact = "org.slf4j:slf4j-simple:1.7.36",
+    sha1 = "a41f9cfe6faafb2eb83a1c7dd2d0dfd844e2a936",
+)
+
+maven_jar(
+    name = "servlet-api",
+    artifact = "jakarta.servlet:jakarta.servlet-api:6.1.0",
+    sha1 = "1169a246913fe3823782af7943e7a103634867c5",
+)
+
+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.18.0",
+    sha1 = "fb14946f0e39748a6571de0635acbe44e7885491",
+)
+
+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:2.2",
+    sha1 = "1820c0968dba3a11a1b30669bb1f01978a91dedc",
+)
+
+maven_jar(
+    name = "mockito",
+    artifact = "org.mockito:mockito-core:5.19.0",
+    sha1 = "82b320935809e3c8ff92c2007dae5dff88d76f32",
+)
+
+maven_jar(
+    name = "assertj-core",
+    artifact = "org.assertj:assertj-core:3.27.4",
+    sha1 = "65e62575f7e422df6d290dc1cb15f3c97108b2b1",
+)
+
+BYTE_BUDDY_VERSION = "1.17.7"
+
+maven_jar(
+    name = "bytebuddy",
+    artifact = "net.bytebuddy:byte-buddy:" + BYTE_BUDDY_VERSION,
+    sha1 = "3856bfab61beb23e099a0d6629f2ba8de4b98ace",
+)
+
+maven_jar(
+    name = "bytebuddy-agent",
+    artifact = "net.bytebuddy:byte-buddy-agent:" + BYTE_BUDDY_VERSION,
+    sha1 = "fbf3d6d649ed37fc9e9c59480a05be0a26e3c2da",
+)
+
+maven_jar(
+    name = "objenesis",
+    artifact = "org.objenesis:objenesis:3.4",
+    sha1 = "675cbe121a68019235d27f6c34b4f0ac30e07418",
+)
+
+maven_jar(
+    name = "gson",
+    artifact = "com.google.code.gson:gson:2.13.1",
+    sha1 = "853ce06c11316b33a8eae5e9095da096a9528b8f",
+)
+
+JETTY_VER = "12.1.0"
+
+maven_jar(
+    name = "jetty-servlet",
+    artifact = "org.eclipse.jetty.ee10:jetty-ee10-servlet:" + JETTY_VER,
+    sha1 = "56c5180952f23a6af4d8f7e34e84a838c7d284cb",
+)
+
+maven_jar(
+    name = "jetty-security",
+    artifact = "org.eclipse.jetty:jetty-security:" + JETTY_VER,
+    sha1 = "5fb2a02cc342fd132e5a358ecbb4479aabf58a3a",
+)
+
+maven_jar(
+    name = "jetty-server",
+    artifact = "org.eclipse.jetty:jetty-server:" + JETTY_VER,
+    sha1 = "a53a5d0d03aaeab03908ff854cdd5e9ee256efca",
+)
+
+maven_jar(
+    name = "jetty-session",
+    artifact = "org.eclipse.jetty:jetty-session:" + JETTY_VER,
+    sha1 = "be1be354522861b72fdaade01f798ad7f6ffbac4",
+)
+
+maven_jar(
+    name = "jetty-http",
+    artifact = "org.eclipse.jetty:jetty-http:" + JETTY_VER,
+    sha1 = "d74935bc8eb25780453dfd0a2e93c2729b566e79",
+)
+
+maven_jar(
+    name = "jetty-io",
+    artifact = "org.eclipse.jetty:jetty-io:" + JETTY_VER,
+    sha1 = "611910afde7e9a2cfda3cad1ec1466cdba55e444",
+)
+
+maven_jar(
+    name = "jetty-util",
+    artifact = "org.eclipse.jetty:jetty-util:" + JETTY_VER,
+    sha1 = "e0d96b47d0289006941757352c6fe7e5d9370c3b",
+)
+
+maven_jar(
+    name = "jetty-util-ajax",
+    artifact = "org.eclipse.jetty:jetty-util-ajax:" + JETTY_VER,
+    sha1 = "26c44a954086af8518fcb311c94c5703f1d3093b",
+)
+
+BOUNCYCASTLE_VER = "1.81"
+
+maven_jar(
+    name = "bcpg",
+    artifact = "org.bouncycastle:bcpg-jdk18on:" + BOUNCYCASTLE_VER,
+    sha1 = "7cd50193dd6a080a203716d993f7a246c8d94291",
+)
+
+maven_jar(
+    name = "bcprov",
+    artifact = "org.bouncycastle:bcprov-jdk18on:" + BOUNCYCASTLE_VER,
+    sha1 = "d17c094daef57dbd80af71687a475aa6df7cbe54",
+)
+
+maven_jar(
+    name = "bcutil",
+    artifact = "org.bouncycastle:bcutil-jdk18on:" + BOUNCYCASTLE_VER,
+    sha1 = "e2dd79395ab435094142b6aba219f35adcba0f01",
+)
+
+maven_jar(
+    name = "bcpkix",
+    artifact = "org.bouncycastle:bcpkix-jdk18on:" + BOUNCYCASTLE_VER,
+    sha1 = "819fd6f5d170c8b8bf8c5acc73816e9c36574042",
+)
diff --git a/lib/BUILD b/lib/BUILD
index cd96abd..551383b 100644
--- a/lib/BUILD
+++ b/lib/BUILD
@@ -6,7 +6,7 @@
         "//org.eclipse.jgit.pgm:__pkg__",
         "//org.eclipse.jgit.pgm.test:__pkg__",
     ],
-    exports = ["@jgit_deps//:args4j_args4j"],
+    exports = ["@args4j//jar"],
 )
 
 java_library(
@@ -16,7 +16,7 @@
         "//org.eclipse.jgit.pgm.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@jgit_deps//:org_apache_commons_commons_compress"],
+    exports = ["@commons-compress//jar"],
 )
 
 java_library(
@@ -26,7 +26,7 @@
         "//org.eclipse.jgit.pgm.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@jgit_deps//:org_apache_commons_commons_lang3"],
+    exports = ["@commons-lang3//jar"],
 )
 
 java_library(
@@ -36,7 +36,7 @@
         "//org.eclipse.jgit.pgm.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@jgit_deps//:commons_io_commons_io"],
+    exports = ["@commons-io//jar"],
 )
 
 java_library(
@@ -45,13 +45,13 @@
         "//org.eclipse.jgit:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@jgit_deps//:commons_codec_commons_codec"],
+    exports = ["@commons-codec//jar"],
 )
 
 java_library(
     name = "commons-logging",
     visibility = ["//visibility:public"],
-    exports = ["@jgit_deps//:commons_logging_commons_logging"],
+    exports = ["@commons-logging//jar"],
 )
 
 java_library(
@@ -60,7 +60,7 @@
         "//org.eclipse.jgit.lfs:__pkg__",
         "//org.eclipse.jgit.lfs.server:__pkg__",
     ],
-    exports = ["@jgit_deps//:com_google_code_gson_gson"],
+    exports = ["@gson//jar"],
 )
 
 java_library(
@@ -70,7 +70,7 @@
         "//org.eclipse.jgit.lfs.server.test:__pkg__",
         "//org.eclipse.jgit.pgm:__pkg__",
     ],
-    exports = ["@jgit_deps//:org_apache_httpcomponents_httpclient"],
+    exports = ["@httpclient//jar"],
 )
 
 java_library(
@@ -82,7 +82,7 @@
         "//org.eclipse.jgit.lfs.server.test:__pkg__",
         "//org.eclipse.jgit.pgm:__pkg__",
     ],
-    exports = ["@jgit_deps//:org_apache_httpcomponents_httpcore"],
+    exports = ["@httpcore//jar"],
 )
 
 java_library(
@@ -94,7 +94,7 @@
         "//org.eclipse.jgit.ssh.apache.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@jgit_deps//:org_apache_sshd_sshd_osgi"],
+    exports = ["@sshd-osgi//jar"],
 )
 
 java_library(
@@ -105,7 +105,7 @@
         "//org.eclipse.jgit.ssh.apache.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@jgit_deps//:org_apache_sshd_sshd_sftp"],
+    exports = ["@sshd-sftp//jar"],
 )
 
 java_library(
@@ -113,7 +113,7 @@
     visibility = [
         "//org.eclipse.jgit.ssh.apache.agent:__pkg__",
     ],
-    exports = ["@jgit_deps//:net_java_dev_jna_jna"],
+    exports = ["@jna//jar"],
 )
 
 java_library(
@@ -121,20 +121,20 @@
     visibility = [
         "//org.eclipse.jgit.ssh.apache.agent:__pkg__",
     ],
-    exports = ["@jgit_deps//:net_java_dev_jna_jna_platform"],
+    exports = ["@jna-platform//jar"],
 )
 
 java_library(
     name = "javaewah",
     visibility = ["//visibility:public"],
-    exports = ["@jgit_deps//:com_googlecode_javaewah_JavaEWAH"],
+    exports = ["@javaewah//jar"],
 )
 
 java_library(
     name = "jetty-http",
     # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
     visibility = ["//visibility:public"],
-    exports = ["@jgit_deps//:org_eclipse_jetty_jetty_http"],
+    exports = ["@jetty-http//jar"],
     runtime_deps = [":commons-codec"],
 )
 
@@ -142,28 +142,28 @@
     name = "jetty-io",
     # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
     visibility = ["//visibility:public"],
-    exports = ["@jgit_deps//:org_eclipse_jetty_jetty_io"],
+    exports = ["@jetty-io//jar"],
 )
 
 java_library(
     name = "jetty-security",
     # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
     visibility = ["//visibility:public"],
-    exports = ["@jgit_deps//:org_eclipse_jetty_jetty_security"],
+    exports = ["@jetty-security//jar"],
 )
 
 java_library(
     name = "jetty-session",
     # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
     visibility = ["//visibility:public"],
-    exports = ["@jgit_deps//:org_eclipse_jetty_jetty_session"],
+    exports = ["@jetty-session//jar"],
 )
 
 java_library(
     name = "jetty-server",
     # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
     visibility = ["//visibility:public"],
-    exports = ["@jgit_deps//:org_eclipse_jetty_jetty_server"],
+    exports = ["@jetty-server//jar"],
 )
 
 java_library(
@@ -171,8 +171,8 @@
     # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
     visibility = ["//visibility:public"],
     exports = [
-        "@jgit_deps//:org_eclipse_jetty_ee10_jetty_ee10_servlet",
-        "@jgit_deps//:org_eclipse_jetty_jetty_util_ajax",
+        "@jetty-servlet//jar",
+        "@jetty-util-ajax//jar",
     ],
 )
 
@@ -180,7 +180,28 @@
     name = "jetty-util",
     # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
     visibility = ["//visibility:public"],
-    exports = ["@jgit_deps//:org_eclipse_jetty_jetty_util"],
+    exports = ["@jetty-util//jar"],
+)
+
+java_library(
+    name = "jetty-ee10-nested",
+    # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
+    visibility = ["//visibility:public"],
+    exports = ["@jetty-ee10-nested//jar"],
+)
+
+java_library(
+    name = "jetty-ee10-security",
+    # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
+    visibility = ["//visibility:public"],
+    exports = ["@jetty-ee10-security//jar"],
+)
+
+java_library(
+    name = "jetty-ee10-servlet",
+    # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
+    visibility = ["//visibility:public"],
+    exports = ["@jetty-ee10-servlet//jar"],
 )
 
 java_library(
@@ -190,7 +211,7 @@
         "//org.eclipse.jgit.ssh.jsch:__pkg__",
         "//org.eclipse.jgit.ssh.jsch.test:__pkg__",
     ],
-    exports = ["@jgit_deps//:com_jcraft_jsch"],
+    exports = ["@jsch//jar"],
 )
 
 java_library(
@@ -202,7 +223,7 @@
         "//org.eclipse.jgit.ssh.apache.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@jgit_deps//:org_bouncycastle_bcpg_jdk18on"],
+    exports = ["@bcpg//jar"],
 )
 
 java_library(
@@ -215,7 +236,7 @@
         "//org.eclipse.jgit.ssh.jsch.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@jgit_deps//:org_bouncycastle_bcprov_jdk18on"],
+    exports = ["@bcprov//jar"],
 )
 
 java_library(
@@ -228,7 +249,7 @@
         "//org.eclipse.jgit.ssh.jsch.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@jgit_deps//:org_bouncycastle_bcutil_jdk18on"],
+    exports = ["@bcutil//jar"],
 )
 
 java_library(
@@ -240,7 +261,7 @@
         "//org.eclipse.jgit.ssh.jsch.test:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@jgit_deps//:org_bouncycastle_bcpkix_jdk18on"],
+    exports = ["@bcpkix//jar"],
 )
 
 java_library(
@@ -249,7 +270,7 @@
         "//org.eclipse.jgit.ssh.jsch:__pkg__",
         "//org.eclipse.jgit.test:__pkg__",
     ],
-    exports = ["@jgit_deps//:com_jcraft_jzlib"],
+    exports = ["@jzlib//jar"],
 )
 
 java_library(
@@ -257,12 +278,12 @@
     testonly = 1,
     visibility = ["//visibility:public"],
     exports = [
-        "@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",
+        "@bytebuddy-agent//jar",
+        "@bytebuddy//jar",
+        "@hamcrest//jar",
+        "@junit//jar",
+        "@mockito//jar",
+        "@objenesis//jar",
     ],
 )
 
@@ -271,10 +292,10 @@
     testonly = 1,
     visibility = ["//visibility:public"],
     exports = [
-        "@jgit_deps//:net_bytebuddy_byte_buddy_agent",
-        "@jgit_deps//:net_bytebuddy_byte_buddy",
-        "@jgit_deps//:org_mockito_mockito_core",
-        "@jgit_deps//:org_objenesis_objenesis",
+        "@bytebuddy-agent//jar",
+        "@bytebuddy//jar",
+        "@mockito//jar",
+        "@objenesis//jar",
     ],
 )
 
@@ -283,7 +304,7 @@
     testonly = 1,
     visibility = ["//visibility:public"],
     exports = [
-        "@jgit_deps//:org_assertj_assertj_core",
+        "@assertj-core//jar",
     ],
 )
 
@@ -298,24 +319,24 @@
         "//org.eclipse.jgit.lfs.server.test:__pkg__",
         "//org.eclipse.jgit.pgm:__pkg__",
     ],
-    exports = ["@jgit_deps//:jakarta_servlet_jakarta_servlet_api_6_1_0"],
+    exports = ["@servlet-api//jar"],
 )
 
 java_library(
     name = "slf4j-api",
     visibility = ["//visibility:public"],
-    exports = ["@jgit_deps//:org_slf4j_slf4j_api"],
+    exports = ["@log-api//jar"],
 )
 
 java_library(
     name = "slf4j-simple",
     visibility = ["//visibility:public"],
-    exports = ["@jgit_deps//:org_slf4j_slf4j_simple"],
+    exports = ["@slf4j-simple//jar"],
 )
 
 java_library(
     name = "xz",
     testonly = 1,
     visibility = ["//visibility:public"],
-    exports = ["@jgit_deps//:org_tukaani_xz"],
+    exports = ["@tukaani-xz//jar"],
 )
diff --git a/lib/jmh/BUILD b/lib/jmh/BUILD
index 1bba1a5..b15e66c 100644
--- a/lib/jmh/BUILD
+++ b/lib/jmh/BUILD
@@ -4,9 +4,9 @@
     name = "jmh",
     visibility = ["//visibility:public"],
     exports = [
-        "@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",
+        "@jmh-annotations//jar",
+        "@jmh-core//jar",
+        "@jopt//jar",
+        "@math3//jar",
     ],
 )
diff --git a/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
index 20cd365..fdad3a7 100644
--- a/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
@@ -5,13 +5,14 @@
 Automatic-Module-Name: org.eclipse.jgit.ant.test
 Bundle-SymbolicName: org.eclipse.jgit.ant.test
 Bundle-Vendor: %Bundle-Vendor
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.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.3.1,7.4.0)",
- org.eclipse.jgit.junit;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)",
+ org.eclipse.jgit.ant.tasks;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.junit;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.0)",
  org.hamcrest.core;version="[1.1.0,3.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 1f0e535..39d8a03 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 ce101a7..46cf048 100644
--- a/org.eclipse.jgit.ant/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ant/META-INF/MANIFEST.MF
@@ -3,13 +3,14 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ant
 Bundle-SymbolicName: org.eclipse.jgit.ant
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.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.3.1,7.4.0)"
+  org.eclipse.jgit.storage.file;version="[7.4.1,7.5.0)"
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.ant;version="7.3.1",
- org.eclipse.jgit.ant.tasks;version="7.3.1";
+Export-Package: org.eclipse.jgit.ant;version="7.4.1",
+ org.eclipse.jgit.ant.tasks;version="7.4.1";
   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 4f1e9e6..334dcf8 100644
--- a/org.eclipse.jgit.ant/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ant/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,6 @@
 Bundle-Name: org.eclipse.jgit.ant - Sources
 Bundle-SymbolicName: org.eclipse.jgit.ant.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.3.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ant;version="7.3.1.qualifier";roots="."
+Bundle-Version: 7.4.1.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.4.1.qualifier";roots="."
diff --git a/org.eclipse.jgit.ant/pom.xml b/org.eclipse.jgit.ant/pom.xml
index cd4ec00..446b4c7 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ant</artifactId>
diff --git a/org.eclipse.jgit.archive/META-INF/MANIFEST.MF b/org.eclipse.jgit.archive/META-INF/MANIFEST.MF
index cf6e68e..0d01fae 100644
--- a/org.eclipse.jgit.archive/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.archive/META-INF/MANIFEST.MF
@@ -3,28 +3,29 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.archive
 Bundle-SymbolicName: org.eclipse.jgit.archive
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/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.apache.commons.compress.archivers;version="[1.4,2.0)",
  org.apache.commons.compress.archivers.tar;version="[1.4,2.0)",
  org.apache.commons.compress.archivers.zip;version="[1.4,2.0)",
  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.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.nls;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revwalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)",
+ org.eclipse.jgit.api;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.nls;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revwalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.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.3.1";
+Export-Package: org.eclipse.jgit.archive;version="7.4.1";
   uses:="org.apache.commons.compress.archivers,
    org.osgi.framework,
    org.eclipse.jgit.api,
    org.eclipse.jgit.lib",
- org.eclipse.jgit.archive.internal;version="7.3.1";x-internal:=true
+ org.eclipse.jgit.archive.internal;version="7.4.1";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 116cde1..51e8ac8 100644
--- a/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,6 @@
 Bundle-Name: org.eclipse.jgit.archive - Sources
 Bundle-SymbolicName: org.eclipse.jgit.archive.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.3.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.archive;version="7.3.1.qualifier";roots="."
+Bundle-Version: 7.4.1.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.4.1.qualifier";roots="."
diff --git a/org.eclipse.jgit.archive/pom.xml b/org.eclipse.jgit.archive/pom.xml
index f4dc1a4..c8c3c7c 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 a611696..dc24e6c 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 6ed16b4..581881f 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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.3.1-SNAPSHOT</version>
+      <version>7.4.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ant</artifactId>
-      <version>7.3.1-SNAPSHOT</version>
+      <version>7.4.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.archive</artifactId>
-      <version>7.3.1-SNAPSHOT</version>
+      <version>7.4.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.http.apache</artifactId>
-      <version>7.3.1-SNAPSHOT</version>
+      <version>7.4.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.http.server</artifactId>
-      <version>7.3.1-SNAPSHOT</version>
+      <version>7.4.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs</artifactId>
-      <version>7.3.1-SNAPSHOT</version>
+      <version>7.4.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs.server</artifactId>
-      <version>7.3.1-SNAPSHOT</version>
+      <version>7.4.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.pgm</artifactId>
-      <version>7.3.1-SNAPSHOT</version>
+      <version>7.4.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ui</artifactId>
-      <version>7.3.1-SNAPSHOT</version>
+      <version>7.4.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ssh.apache</artifactId>
-      <version>7.3.1-SNAPSHOT</version>
+      <version>7.4.1-SNAPSHOT</version>
     </dependency>
 
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.test</artifactId>
-      <version>7.3.1-SNAPSHOT</version>
+      <version>7.4.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ant.test</artifactId>
-      <version>7.3.1-SNAPSHOT</version>
+      <version>7.4.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.http.test</artifactId>
-      <version>7.3.1-SNAPSHOT</version>
+      <version>7.4.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.pgm.test</artifactId>
-      <version>7.3.1-SNAPSHOT</version>
+      <version>7.4.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs.test</artifactId>
-      <version>7.3.1-SNAPSHOT</version>
+      <version>7.4.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs.server.test</artifactId>
-      <version>7.3.1-SNAPSHOT</version>
+      <version>7.4.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ssh.apache.test</artifactId>
-      <version>7.3.1-SNAPSHOT</version>
+      <version>7.4.1-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 7607871..ee66caf 100644
--- a/org.eclipse.jgit.gpg.bc.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.gpg.bc.test/META-INF/MANIFEST.MF
@@ -3,10 +3,11 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.gpg.bc.test
 Bundle-SymbolicName: org.eclipse.jgit.gpg.bc.test
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.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
 Require-Bundle: org.hamcrest.core;bundle-version="[1.3.0,2.0.0)"
 Import-Package: org.bouncycastle.asn1.cryptlib;version="[1.80.0,2.0.0)",
  org.bouncycastle.jce.provider;version="[1.80.0,2.0.0)",
@@ -14,9 +15,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.3.1,7.4.0)",
- org.eclipse.jgit.gpg.bc.internal.keys;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util.sha1;version="[7.3.1,7.4.0)",
+ org.eclipse.jgit.gpg.bc.internal;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.gpg.bc.internal.keys;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util.sha1;version="[7.4.1,7.5.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)"
diff --git a/org.eclipse.jgit.gpg.bc.test/pom.xml b/org.eclipse.jgit.gpg.bc.test/pom.xml
index 55dd23f..3114dfd 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 4624847..ab9cdfe 100644
--- a/org.eclipse.jgit.gpg.bc/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.gpg.bc/META-INF/MANIFEST.MF
@@ -3,11 +3,12 @@
 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.3.1,7.4.0)"
+Fragment-Host: org.eclipse.jgit;bundle-version="[7.4.1,7.5.0)"
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/gpg_bc
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.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)",
  org.bouncycastle.asn1.x9;version="[1.80.0,2.0.0)",
  org.bouncycastle.bcpg;version="[1.80.0,2.0.0)",
@@ -26,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.3.1";x-friends:="org.eclipse.jgit.gpg.bc.test",
- org.eclipse.jgit.gpg.bc.internal.keys;version="7.3.1";x-friends:="org.eclipse.jgit.gpg.bc.test"
+Export-Package: org.eclipse.jgit.gpg.bc.internal;version="7.4.1";x-friends:="org.eclipse.jgit.gpg.bc.test",
+ org.eclipse.jgit.gpg.bc.internal.keys;version="7.4.1";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 9b1441e..d325fcf 100644
--- a/org.eclipse.jgit.gpg.bc/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.gpg.bc/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +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.3.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.gpg.bc;version="7.3.1.qualifier";roots="."
+Bundle-Version: 7.4.1.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.4.1.qualifier";roots="."
diff --git a/org.eclipse.jgit.gpg.bc/pom.xml b/org.eclipse.jgit.gpg.bc/pom.xml
index d88e0c0..edcc6c2 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 e51847e..42a3856 100644
--- a/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF
@@ -3,8 +3,9 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.http.apache
 Bundle-SymbolicName: org.eclipse.jgit.http.apache
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.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
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
@@ -26,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.3.1,7.4.0)",
- org.eclipse.jgit.nls;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.http;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)"
-Export-Package: org.eclipse.jgit.transport.http.apache;version="7.3.1";
+ org.eclipse.jgit.annotations;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.nls;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.http;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.0)"
+Export-Package: org.eclipse.jgit.transport.http.apache;version="7.4.1";
   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 7ab118c..d52f778 100644
--- a/org.eclipse.jgit.http.apache/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.http.apache/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +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.3.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.http.apache;version="7.3.1.qualifier";roots="."
+Bundle-Version: 7.4.1.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.4.1.qualifier";roots="."
diff --git a/org.eclipse.jgit.http.apache/pom.xml b/org.eclipse.jgit.http.apache/pom.xml
index 15d1cbf..37d9d55 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.http.apache</artifactId>
diff --git a/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF
index 5aef53f..0c679ba 100644
--- a/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF
@@ -3,30 +3,31 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.http.server
 Bundle-SymbolicName: org.eclipse.jgit.http.server
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.http.server;version="7.3.1",
- org.eclipse.jgit.http.server.glue;version="7.3.1";
+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.4.1",
+ org.eclipse.jgit.http.server.glue;version="7.4.1";
   uses:="jakarta.servlet,
   	jakarta.servlet.http",
- org.eclipse.jgit.http.server.resolver;version="7.3.1";
+ org.eclipse.jgit.http.server.resolver;version="7.4.1";
   uses:="jakarta.servlet.http
    org.eclipse.jgit.transport.resolver,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.transport,
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-17
 Import-Package: jakarta.servlet;version="[6.0.0,7.0.0)",
  jakarta.servlet.http;version="[6.0.0,7.0.0)",
- org.eclipse.jgit.annotations;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.transport.parser;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.nls;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revwalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.resolver;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)"
+ org.eclipse.jgit.annotations;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.transport.parser;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.nls;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revwalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.resolver;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.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 bac00c8..e07aab5 100644
--- a/org.eclipse.jgit.http.server/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.http.server/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +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.3.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.http.server;version="7.3.1.qualifier";roots="."
+Bundle-Version: 7.4.1.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.4.1.qualifier";roots="."
diff --git a/org.eclipse.jgit.http.server/pom.xml b/org.eclipse.jgit.http.server/pom.xml
index d5c7c3c..8050bad 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 5bc281e..3c60ae2 100644
--- a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
@@ -3,10 +3,11 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.http.test
 Bundle-SymbolicName: org.eclipse.jgit.http.test
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.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
 Require-Bundle: org.hamcrest.core;bundle-version="[1.3.0,2.0.0)",
  org.hamcrest.library;bundle-version="[1.3.0,2.0.0)"
 Import-Package: jakarta.servlet;version="[6.0.0,7.0.0)",
@@ -29,26 +30,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.3.1,7.4.0)",
- org.eclipse.jgit.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.http.server;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.http.server.glue;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.http.server.resolver;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.junit;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.junit.http;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.nls;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revwalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.http;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.http.apache;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.resolver;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)",
+ org.eclipse.jgit.api;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.http.server;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.http.server.glue;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.http.server.resolver;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.junit;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.junit.http;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.nls;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revwalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.http;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.http.apache;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.resolver;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.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)",
diff --git a/org.eclipse.jgit.http.test/pom.xml b/org.eclipse.jgit.http.test/pom.xml
index 2d9d074..339213f 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.http.test</artifactId>
diff --git a/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF b/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
index a8f49f4..9262f16 100644
--- a/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
@@ -3,11 +3,12 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.junit.http
 Bundle-SymbolicName: org.eclipse.jgit.junit.http
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.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: jakarta.servlet;version="[6.0.0,7.0.0)",
  jakarta.servlet.http;version="[6.0.0,7.0.0)",
  org.apache.commons.logging;version="[1.1.1,2.0.0)",
@@ -22,17 +23,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.3.1,7.4.0)",
- org.eclipse.jgit.http.server;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.junit;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revwalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.resolver;version="[7.3.1,7.4.0)",
+ org.eclipse.jgit.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.http.server;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.junit;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revwalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.resolver;version="[7.4.1,7.5.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.3.1";
+Export-Package: org.eclipse.jgit.junit.http;version="7.4.1";
   uses:="org.eclipse.jgit.transport,
    jakarta.servlet,
    jakarta.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 361b249..1fffbbb 100644
--- a/org.eclipse.jgit.junit.http/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.junit.http/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +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.3.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.junit.http;version="7.3.1.qualifier";roots="."
+Bundle-Version: 7.4.1.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.4.1.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit.http/pom.xml b/org.eclipse.jgit.junit.http/pom.xml
index 2cb8d3d..cde5b2c 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 f9321fa..6a20aac 100644
--- a/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
@@ -3,46 +3,47 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.junit.ssh
 Bundle-SymbolicName: org.eclipse.jgit.junit.ssh
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-17
-Import-Package: org.apache.sshd.common;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.config.keys;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.file.virtualfs;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.helpers;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.io;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.kex;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.keyprovider;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.session;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.signature;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.buffer;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.logging;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.security;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.threads;version="[2.15.0,2.16.0)",
- org.apache.sshd.core;version="[2.15.0,2.16.0)",
- org.apache.sshd.server;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.auth;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.auth.gss;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.auth.keyboard;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.auth.password;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.command;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.session;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.shell;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.subsystem;version="[2.15.0,2.16.0)",
- org.apache.sshd.sftp;version="[2.15.0,2.16.0)",
- org.apache.sshd.sftp.server;version="[2.15.0,2.16.0)",
- org.eclipse.jgit.annotations;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.api;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.api.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.junit;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revwalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)",
+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.sshd.common;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.config.keys;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.file.virtualfs;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.helpers;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.io;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.kex;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.keyprovider;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.session;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.signature;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.buffer;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.logging;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.security;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.threads;version="[2.16.0,2.17.0)",
+ 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.auth;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.auth.gss;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.auth.keyboard;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.auth.password;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.command;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.session;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.shell;version="[2.16.0,2.17.0)",
+ 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.4.1,7.5.0)",
+ org.eclipse.jgit.api;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.api.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.junit;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revwalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.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.3.1"
+Export-Package: org.eclipse.jgit.junit.ssh;version="7.4.1"
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 dd502ee..498244c 100644
--- a/org.eclipse.jgit.junit.ssh/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.junit.ssh/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +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.3.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.junit.ssh;version="7.3.1.qualifier";roots="."
+Bundle-Version: 7.4.1.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.4.1.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit.ssh/pom.xml b/org.eclipse.jgit.junit.ssh/pom.xml
index cf4e5fc..51a2d4e 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 a2f10a1..10dce2c 100644
--- a/org.eclipse.jgit.junit/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit/META-INF/MANIFEST.MF
@@ -3,36 +3,38 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.junit
 Bundle-SymbolicName: org.eclipse.jgit.junit
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-17
-Import-Package: org.eclipse.jgit.annotations;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.api;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.api.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.dircache;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.pack;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.util;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.merge;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revwalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport;version="7.3.1",
- org.eclipse.jgit.treewalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util.io;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util.time;version="[7.3.1,7.4.0)",
+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.4.1,7.5.0)",
+ org.eclipse.jgit.api;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.api.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.dircache;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.util;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.merge;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revwalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.storage.pack;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport;version="7.4.1",
+ org.eclipse.jgit.treewalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util.io;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util.time;version="[7.4.1,7.5.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.3.1";
+Export-Package: org.eclipse.jgit.junit;version="7.4.1";
   uses:="org.eclipse.jgit.dircache,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
@@ -45,4 +47,4 @@
    org.junit.runners.model,
    org.junit.runner,
    org.eclipse.jgit.util.time",
- org.eclipse.jgit.junit.time;version="7.3.1";uses:="org.eclipse.jgit.util.time"
+ org.eclipse.jgit.junit.time;version="7.4.1";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 816c831..364082e 100644
--- a/org.eclipse.jgit.junit/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.junit/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,6 @@
 Bundle-Name: org.eclipse.jgit.junit - Sources
 Bundle-SymbolicName: org.eclipse.jgit.junit.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.3.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.junit;version="7.3.1.qualifier";roots="."
+Bundle-Version: 7.4.1.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.4.1.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit/pom.xml b/org.eclipse.jgit.junit/pom.xml
index 3841077..20cd3eb 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.junit</artifactId>
diff --git a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java
index 2d00a85..c546ae9 100644
--- a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java
+++ b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java
@@ -73,6 +73,7 @@
 import org.eclipse.jgit.revwalk.RevTag;
 import org.eclipse.jgit.revwalk.RevTree;
 import org.eclipse.jgit.revwalk.RevWalk;
+import org.eclipse.jgit.storage.pack.PackConfig;
 import org.eclipse.jgit.treewalk.TreeWalk;
 import org.eclipse.jgit.treewalk.filter.PathFilterGroup;
 import org.eclipse.jgit.util.ChangeIdUtil;
@@ -987,7 +988,7 @@ public void packAndPrune() throws Exception {
 			ObjectDirectory odb = (ObjectDirectory) db.getObjectDatabase();
 			NullProgressMonitor m = NullProgressMonitor.INSTANCE;
 
-			final PackFile pack, idx;
+			PackFile pack;
 			try (PackWriter pw = new PackWriter(db)) {
 				Set<ObjectId> all = new HashSet<>();
 				for (Ref r : db.getRefDatabase().getRefs())
@@ -1002,12 +1003,22 @@ public void packAndPrune() throws Exception {
 				}
 				pack.setReadOnly();
 
-				idx = pack.create(PackExt.INDEX);
+				PackFile idx = pack.create(PackExt.INDEX);
 				try (OutputStream out =
 						new BufferedOutputStream(new FileOutputStream(idx))) {
 					pw.writeIndex(out);
 				}
 				idx.setReadOnly();
+
+				PackConfig pc = new PackConfig(db);
+				if (pc.getMinBytesForObjSizeIndex() >= 0) {
+					PackFile oidx = pack.create(PackExt.OBJECT_SIZE_INDEX);
+					try (OutputStream out = new BufferedOutputStream(
+							new FileOutputStream(oidx))) {
+						pw.writeObjectSizeIndex(out);
+					}
+					oidx.setReadOnly();
+				}
 			}
 
 			odb.openPack(pack);
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 5fd90b0..02b7a69 100644
--- a/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF
@@ -3,10 +3,11 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs.server.test
 Bundle-SymbolicName: org.eclipse.jgit.lfs.server.test
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.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: jakarta.servlet;version="[6.0.0,7.0.0)",
  jakarta.servlet.http;version="[6.0.0,7.0.0)",
  org.apache.http;version="[4.4.0,5.0.0)",
@@ -26,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.3.1,7.4.0)",
- org.eclipse.jgit.api.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.junit;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.junit.http;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs.server;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs.server.fs;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs.test;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revwalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.treewalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)",
+ org.eclipse.jgit.api;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.api.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.junit;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.junit.http;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs.server;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs.server.fs;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs.test;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revwalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.treewalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.0)",
  org.hamcrest.core;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.lfs.server.test/pom.xml b/org.eclipse.jgit.lfs.server.test/pom.xml
index 5eafde3..f00f85e 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.lfs.server.test</artifactId>
diff --git a/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
index 8bb770d..5ef7b85 100644
--- a/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
@@ -3,36 +3,37 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs.server
 Bundle-SymbolicName: org.eclipse.jgit.lfs.server
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.lfs.server;version="7.3.1";
+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.4.1";
   uses:="jakarta.servlet.http,
    org.eclipse.jgit.lfs.lib",
- org.eclipse.jgit.lfs.server.fs;version="7.3.1";
+ org.eclipse.jgit.lfs.server.fs;version="7.4.1";
   uses:="jakarta.servlet,
    jakarta.servlet.http,
    org.eclipse.jgit.lfs.server,
    org.eclipse.jgit.lfs.lib",
- org.eclipse.jgit.lfs.server.internal;version="7.3.1";x-internal:=true,
- org.eclipse.jgit.lfs.server.s3;version="7.3.1";
+ org.eclipse.jgit.lfs.server.internal;version="7.4.1";x-internal:=true,
+ org.eclipse.jgit.lfs.server.s3;version="7.4.1";
   uses:="org.eclipse.jgit.lfs.server,
    org.eclipse.jgit.lfs.lib"
-Bundle-RequiredExecutionEnvironment: JavaSE-17
 Import-Package: com.google.gson;version="[2.8.0,3.0.0)",
  jakarta.servlet;version="[6.0.0,7.0.0)",
  jakarta.servlet.annotation;version="[6.0.0,7.0.0)",
  jakarta.servlet.http;version="[6.0.0,7.0.0)",
  org.apache.http;version="[4.3.0,5.0.0)",
- org.eclipse.jgit.annotations;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs.internal;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.nls;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.http;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.http.apache;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)",
+ org.eclipse.jgit.annotations;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs.internal;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.nls;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.http;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.http.apache;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.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 718c569..9dcf4b8 100644
--- a/org.eclipse.jgit.lfs.server/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.server/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +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.3.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.lfs.server;version="7.3.1.qualifier";roots="."
+Bundle-Version: 7.4.1.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.4.1.qualifier";roots="."
diff --git a/org.eclipse.jgit.lfs.server/pom.xml b/org.eclipse.jgit.lfs.server/pom.xml
index 784b24a..875b486 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 c0bde2f..189cfc0 100644
--- a/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
@@ -3,28 +3,29 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs.test
 Bundle-SymbolicName: org.eclipse.jgit.lfs.test
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
-Import-Package: org.eclipse.jgit.api;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.attributes;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.junit;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs.internal;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revwalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.http;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.treewalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)",
+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.4.1,7.5.0)",
+ org.eclipse.jgit.attributes;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.junit;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs.internal;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revwalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.http;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.treewalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.0)",
  org.hamcrest.core;version="[1.1.0,3.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.3.1";x-friends:="org.eclipse.jgit.lfs.server.test"
+Export-Package: org.eclipse.jgit.lfs.test;version="7.4.1";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 e0e997e..cdd9ee3 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 ad6a252..d6e2bec 100644
--- a/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
@@ -3,32 +3,33 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs
 Bundle-SymbolicName: org.eclipse.jgit.lfs
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.lfs;version="7.3.1",
- org.eclipse.jgit.lfs.errors;version="7.3.1",
- org.eclipse.jgit.lfs.internal;version="7.3.1";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.3.1"
 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.4.1",
+ org.eclipse.jgit.lfs.errors;version="7.4.1",
+ org.eclipse.jgit.lfs.internal;version="7.4.1";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.4.1"
 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.3.1,7.4.0)";resolution:=optional,
- org.eclipse.jgit.api.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.attributes;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.diff;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.dircache;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.hooks;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.nls;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revwalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.storage.pack;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.http;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.treewalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util.io;version="[7.3.1,7.4.0)"
+ org.eclipse.jgit.annotations;version="[7.4.1,7.5.0)";resolution:=optional,
+ org.eclipse.jgit.api.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.attributes;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.diff;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.dircache;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.hooks;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.nls;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revwalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.storage.pack;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.http;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.treewalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util.io;version="[7.4.1,7.5.0)"
diff --git a/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF
index 3d1bcb2..8da8f95 100644
--- a/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,6 @@
 Bundle-Name: org.eclipse.jgit.lfs - Sources
 Bundle-SymbolicName: org.eclipse.jgit.lfs.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.3.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.lfs;version="7.3.1.qualifier";roots="."
+Bundle-Version: 7.4.1.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.4.1.qualifier";roots="."
diff --git a/org.eclipse.jgit.lfs/pom.xml b/org.eclipse.jgit.lfs/pom.xml
index 14a24c7..fe65299 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.lfs</artifactId>
diff --git a/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/LfsPrePushHook.java b/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/LfsPrePushHook.java
index 9b3d608..802835c 100644
--- a/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/LfsPrePushHook.java
+++ b/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/LfsPrePushHook.java
@@ -246,6 +246,7 @@ private void uploadFile(Protocol.ObjectInfo o,
 				.getLfsContentConnection(getRepository(), uploadAction,
 						METHOD_PUT);
 		contentServer.setDoOutput(true);
+		contentServer.setChunkedStreamingMode(256 << 10);
 		try (OutputStream out = contentServer
 				.getOutputStream()) {
 			long size = Files.copy(path, out);
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 cfc31f8..06d1578 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.3.1.qualifier"
+      version="7.4.1.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 5eecfc3..ff19611 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 42d065a..e56b452 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.3.1.qualifier"
+      version="7.4.1.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.jgit" version="7.3.1" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="7.4.1" 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 b31ed31..0727a43 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 7833d7d..631b721 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.3.1.qualifier"
+      version="7.4.1.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.jgit" version="7.3.1" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="7.4.1" 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 e288ea6..dbc8397 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 a5a1d3d..bb6bfea 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.3.1.qualifier"
+      version="7.4.1.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.3.1" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="7.4.1" match="equivalent"/>
    </requires>
 
    <plugin
@@ -54,26 +54,4 @@
          install-size="0"
          version="0.0.0"
          unpack="false"/>
-
-   <plugin
-         id="org.apache.commons.logging"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.sshd.osgi"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.sshd.sftp"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
 </feature>
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 d2ab65b..ac8dbb5 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 765bf38..decb642 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.3.1.qualifier"
+      version="7.4.1.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="7.3.1" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="7.4.1" 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 3904873..7cc8c01 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 1a204f7..f06516e 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.3.1.qualifier"
+      version="7.4.1.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.3.1" match="equivalent"/>
-      <import feature="org.eclipse.jgit.lfs" version="7.3.1" match="equivalent"/>
-      <import feature="org.eclipse.jgit.ssh.apache" version="7.3.1" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="7.4.1" match="equivalent"/>
+      <import feature="org.eclipse.jgit.lfs" version="7.4.1" match="equivalent"/>
+      <import feature="org.eclipse.jgit.ssh.apache" version="7.4.1" 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 f28b697..71c8a39 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 d03b30b..1e5a9b4 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 02d07da..eb2494b 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.3.1.qualifier"
+      version="7.4.1.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="7.3.1" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="7.4.1" 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 508dc4b..11ccb15 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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.3.1-SNAPSHOT</version>
+      <version>7.4.1-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 4cc7919..09c8938 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.3.1.qualifier"
+      version="7.4.1.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="7.3.1" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="7.4.1" 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 f4e1f93..d0988b7 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 ab958ff..7617dbd 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.3.1.qualifier"
+      version="7.4.1.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.jgit" version="7.3.1" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="7.4.1" 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 e8df5e4..ad87d14 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.32.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.32.target
index 58c0834..4765602 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.32.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.32.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.32" sequenceNumber="1747840563">
+<target name="jgit-4.32" sequenceNumber="1756150982">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -61,13 +61,13 @@
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-osgi</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-sftp</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -77,7 +77,7 @@
         <dependency>
           <groupId>org.mockito</groupId>
           <artifactId>mockito-core</artifactId>
-          <version>5.18.0</version>
+          <version>5.19.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -103,49 +103,49 @@
         <dependency>
           <groupId>org.eclipse.jetty.ee10</groupId>
           <artifactId>jetty-ee10-servlet</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -191,13 +191,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.17.5</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.17.5</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -207,25 +207,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -235,7 +235,7 @@
         <dependency>
           <groupId>org.assertj</groupId>
           <artifactId>assertj-core</artifactId>
-          <version>3.27.3</version>
+          <version>3.27.4</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -255,25 +255,25 @@
         <dependency>
           <groupId>commons-codec</groupId>
           <artifactId>commons-codec</artifactId>
-          <version>1.18.0</version>
+          <version>1.19.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-compress</artifactId>
-          <version>1.27.1</version>
+          <version>1.28.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-lang3</artifactId>
-          <version>3.17.0</version>
+          <version>3.18.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
-          <version>2.19.0</version>
+          <version>2.20.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.33.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.33.target
index 41d2027..eb2f21f 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.33.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.33.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.33" sequenceNumber="1747840563">
+<target name="jgit-4.33" sequenceNumber="1756150983">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -61,13 +61,13 @@
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-osgi</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-sftp</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -77,7 +77,7 @@
         <dependency>
           <groupId>org.mockito</groupId>
           <artifactId>mockito-core</artifactId>
-          <version>5.18.0</version>
+          <version>5.19.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -103,49 +103,49 @@
         <dependency>
           <groupId>org.eclipse.jetty.ee10</groupId>
           <artifactId>jetty-ee10-servlet</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -191,13 +191,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.17.5</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.17.5</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -207,25 +207,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -235,7 +235,7 @@
         <dependency>
           <groupId>org.assertj</groupId>
           <artifactId>assertj-core</artifactId>
-          <version>3.27.3</version>
+          <version>3.27.4</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -255,25 +255,25 @@
         <dependency>
           <groupId>commons-codec</groupId>
           <artifactId>commons-codec</artifactId>
-          <version>1.18.0</version>
+          <version>1.19.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-compress</artifactId>
-          <version>1.27.1</version>
+          <version>1.28.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-lang3</artifactId>
-          <version>3.17.0</version>
+          <version>3.18.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
-          <version>2.19.0</version>
+          <version>2.20.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
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 8914402..aa318cf 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="1747840563">
+<target name="jgit-4.34" sequenceNumber="1756150982">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -61,13 +61,13 @@
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-osgi</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-sftp</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -77,7 +77,7 @@
         <dependency>
           <groupId>org.mockito</groupId>
           <artifactId>mockito-core</artifactId>
-          <version>5.18.0</version>
+          <version>5.19.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -103,49 +103,49 @@
         <dependency>
           <groupId>org.eclipse.jetty.ee10</groupId>
           <artifactId>jetty-ee10-servlet</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -191,13 +191,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.17.5</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.17.5</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -207,25 +207,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -235,7 +235,7 @@
         <dependency>
           <groupId>org.assertj</groupId>
           <artifactId>assertj-core</artifactId>
-          <version>3.27.3</version>
+          <version>3.27.4</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -255,25 +255,25 @@
         <dependency>
           <groupId>commons-codec</groupId>
           <artifactId>commons-codec</artifactId>
-          <version>1.18.0</version>
+          <version>1.19.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-compress</artifactId>
-          <version>1.27.1</version>
+          <version>1.28.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-lang3</artifactId>
-          <version>3.17.0</version>
+          <version>3.18.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
-          <version>2.19.0</version>
+          <version>2.20.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 1e7a8df..6049694 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="1747840563">
+<target name="jgit-4.35" sequenceNumber="1756150982">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -61,13 +61,13 @@
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-osgi</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-sftp</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -77,7 +77,7 @@
         <dependency>
           <groupId>org.mockito</groupId>
           <artifactId>mockito-core</artifactId>
-          <version>5.18.0</version>
+          <version>5.19.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -103,49 +103,49 @@
         <dependency>
           <groupId>org.eclipse.jetty.ee10</groupId>
           <artifactId>jetty-ee10-servlet</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -191,13 +191,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.17.5</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.17.5</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -207,25 +207,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -235,7 +235,7 @@
         <dependency>
           <groupId>org.assertj</groupId>
           <artifactId>assertj-core</artifactId>
-          <version>3.27.3</version>
+          <version>3.27.4</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -255,25 +255,25 @@
         <dependency>
           <groupId>commons-codec</groupId>
           <artifactId>commons-codec</artifactId>
-          <version>1.18.0</version>
+          <version>1.19.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-compress</artifactId>
-          <version>1.27.1</version>
+          <version>1.28.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-lang3</artifactId>
-          <version>3.17.0</version>
+          <version>3.18.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
-          <version>2.19.0</version>
+          <version>2.20.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 9e3c33b..cd2bc2b 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="1747840563">
+<target name="jgit-4.36" sequenceNumber="1756150982">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -61,13 +61,13 @@
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-osgi</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-sftp</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -77,7 +77,7 @@
         <dependency>
           <groupId>org.mockito</groupId>
           <artifactId>mockito-core</artifactId>
-          <version>5.18.0</version>
+          <version>5.19.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -103,49 +103,49 @@
         <dependency>
           <groupId>org.eclipse.jetty.ee10</groupId>
           <artifactId>jetty-ee10-servlet</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.0.21</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -191,13 +191,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.17.5</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.17.5</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -207,25 +207,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.80</version>
+          <version>1.81</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -235,7 +235,7 @@
         <dependency>
           <groupId>org.assertj</groupId>
           <artifactId>assertj-core</artifactId>
-          <version>3.27.3</version>
+          <version>3.27.4</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -255,25 +255,25 @@
         <dependency>
           <groupId>commons-codec</groupId>
           <artifactId>commons-codec</artifactId>
-          <version>1.18.0</version>
+          <version>1.19.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-compress</artifactId>
-          <version>1.27.1</version>
+          <version>1.28.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-lang3</artifactId>
-          <version>3.17.0</version>
+          <version>3.18.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
-          <version>2.19.0</version>
+          <version>2.20.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
new file mode 100644
index 0000000..54bccdd
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.37.target
@@ -0,0 +1,288 @@
+<?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="1756150985">
+  <locations>
+    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+      <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
+      <unit id="com.jcraft.jsch.source" version="0.1.55.v20230916-1400"/>
+      <unit id="com.jcraft.jzlib" version="1.1.3.v20230916-1400"/>
+      <unit id="com.jcraft.jzlib.source" version="1.1.3.v20230916-1400"/>
+      <unit id="org.apache.ant" version="1.10.15.v20240901-1000"/>
+      <unit id="org.apache.ant.source" version="1.10.15.v20240901-1000"/>
+      <unit id="org.apache.httpcomponents.httpclient" version="4.5.14"/>
+      <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14"/>
+      <unit id="org.apache.httpcomponents.httpcore" version="4.4.16"/>
+      <unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16"/>
+      <unit id="org.hamcrest.core" version="1.3.0.v20230809-1000"/>
+      <unit id="org.hamcrest.core.source" version="1.3.0.v20230809-1000"/>
+      <unit id="org.hamcrest.library" version="1.3.0.v20230809-1000"/>
+      <unit id="org.hamcrest.library.source" version="1.3.0.v20230809-1000"/>
+      <unit id="org.junit" version="4.13.2.v20240929-1000"/>
+      <unit id="org.junit.source" version="4.13.2.v20240929-1000"/>
+      <unit id="org.objenesis" version="3.4.0"/>
+      <unit id="org.objenesis.source" version="3.4.0"/>
+      <unit id="org.osgi.service.cm" version="1.6.1.202109301733"/>
+      <unit id="org.osgi.service.cm.source" version="1.6.1.202109301733"/>
+      <repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2025-09"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+      <unit id="org.eclipse.osgi" version="0.0.0"/>
+      <repository location="https://download.eclipse.org/staging/2025-09/"/>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="xz">
+      <dependencies>
+        <dependency>
+          <groupId>org.tukaani</groupId>
+          <artifactId>xz</artifactId>
+          <version>1.10</version>
+          <type>jar</type>
+        </dependency>
+      </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="slf4j">
+      <dependencies>
+        <dependency>
+          <groupId>org.slf4j</groupId>
+          <artifactId>slf4j-api</artifactId>
+          <version>1.7.36</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.slf4j</groupId>
+          <artifactId>slf4j-simple</artifactId>
+          <version>1.7.36</version>
+          <type>jar</type>
+        </dependency>
+      </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="sshd">
+      <dependencies>
+        <dependency>
+          <groupId>org.apache.sshd</groupId>
+          <artifactId>sshd-osgi</artifactId>
+          <version>2.16.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.sshd</groupId>
+          <artifactId>sshd-sftp</artifactId>
+          <version>2.16.0</version>
+          <type>jar</type>
+        </dependency>
+      </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="mockito">
+      <dependencies>
+        <dependency>
+          <groupId>org.mockito</groupId>
+          <artifactId>mockito-core</artifactId>
+          <version>5.19.0</version>
+          <type>jar</type>
+        </dependency>
+      </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jna">
+      <dependencies>
+        <dependency>
+          <groupId>net.java.dev.jna</groupId>
+          <artifactId>jna</artifactId>
+          <version>5.17.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>net.java.dev.jna</groupId>
+          <artifactId>jna-platform</artifactId>
+          <version>5.17.0</version>
+          <type>jar</type>
+        </dependency>
+      </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jetty">
+      <dependencies>
+        <dependency>
+          <groupId>org.eclipse.jetty.ee10</groupId>
+          <artifactId>jetty-ee10-servlet</artifactId>
+          <version>12.1.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-http</artifactId>
+          <version>12.1.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-io</artifactId>
+          <version>12.1.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-security</artifactId>
+          <version>12.1.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-server</artifactId>
+          <version>12.1.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-session</artifactId>
+          <version>12.1.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-util</artifactId>
+          <version>12.1.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-util-ajax</artifactId>
+          <version>12.1.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>jakarta.servlet</groupId>
+          <artifactId>jakarta.servlet-api</artifactId>
+          <version>6.1.0</version>
+          <type>jar</type>
+        </dependency>
+      </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="javaewah">
+      <dependencies>
+        <dependency>
+          <groupId>com.googlecode.javaewah</groupId>
+          <artifactId>JavaEWAH</artifactId>
+          <version>1.2.3</version>
+          <type>jar</type>
+        </dependency>
+      </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="hamcrest">
+      <dependencies>
+        <dependency>
+          <groupId>org.hamcrest</groupId>
+          <artifactId>hamcrest</artifactId>
+          <version>2.2</version>
+          <type>jar</type>
+        </dependency>
+      </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="gson">
+      <dependencies>
+        <dependency>
+          <groupId>com.google.code.gson</groupId>
+          <artifactId>gson</artifactId>
+          <version>2.13.1</version>
+          <type>jar</type>
+        </dependency>
+      </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bytebuddy">
+      <dependencies>
+        <dependency>
+          <groupId>net.bytebuddy</groupId>
+          <artifactId>byte-buddy</artifactId>
+          <version>1.17.7</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>net.bytebuddy</groupId>
+          <artifactId>byte-buddy-agent</artifactId>
+          <version>1.17.7</version>
+          <type>jar</type>
+        </dependency>
+      </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bouncycastle">
+      <dependencies>
+        <dependency>
+          <groupId>org.bouncycastle</groupId>
+          <artifactId>bcpg-jdk18on</artifactId>
+          <version>1.81</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.bouncycastle</groupId>
+          <artifactId>bcprov-jdk18on</artifactId>
+          <version>1.81</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.bouncycastle</groupId>
+          <artifactId>bcpkix-jdk18on</artifactId>
+          <version>1.81</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.bouncycastle</groupId>
+          <artifactId>bcutil-jdk18on</artifactId>
+          <version>1.81</version>
+          <type>jar</type>
+        </dependency>
+      </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="assertj">
+      <dependencies>
+        <dependency>
+          <groupId>org.assertj</groupId>
+          <artifactId>assertj-core</artifactId>
+          <version>3.27.4</version>
+          <type>jar</type>
+        </dependency>
+      </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="args4j">
+      <dependencies>
+        <dependency>
+          <groupId>args4j</groupId>
+          <artifactId>args4j</artifactId>
+          <version>2.37</version>
+          <type>jar</type>
+        </dependency>
+      </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="apache">
+      <dependencies>
+        <dependency>
+          <groupId>commons-codec</groupId>
+          <artifactId>commons-codec</artifactId>
+          <version>1.19.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.commons</groupId>
+          <artifactId>commons-compress</artifactId>
+          <version>1.28.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.commons</groupId>
+          <artifactId>commons-lang3</artifactId>
+          <version>3.18.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>commons-io</groupId>
+          <artifactId>commons-io</artifactId>
+          <version>2.20.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+          <version>1.3.5</version>
+          <type>jar</type>
+        </dependency>
+      </dependencies>
+    </location>
+  </locations>
+</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.37.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.37.tpd
new file mode 100644
index 0000000..964d182
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.37.tpd
@@ -0,0 +1,8 @@
+target "jgit-4.37" with source configurePhase
+
+include "orbit/orbit-4.37.tpd"
+include "maven/dependencies.tpd"
+
+location "https://download.eclipse.org/staging/2025-09/" {
+	org.eclipse.osgi lazy
+}
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 03f1c0e..f901454 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,22 +10,22 @@
 	dependency {
 		groupId = "commons-codec"
 		artifactId = "commons-codec"
-		version = "1.18.0"
+		version = "1.19.0"
 	}
 	dependency {
 		groupId = "org.apache.commons"
 		artifactId = "commons-compress"
-		version = "1.27.1"
+		version = "1.28.0"
 	}
 	dependency {
 		groupId = "org.apache.commons"
 		artifactId = "commons-lang3"
-		version = "3.17.0"
+		version = "3.18.0"
 	}
 	dependency {
 		groupId = "commons-io"
 		artifactId = "commons-io"
-		version = "2.19.0"
+		version = "2.20.0"
 	}
 	dependency {
 		groupId = "commons-logging"
@@ -56,7 +56,7 @@
 	dependency {
 		groupId = "org.assertj"
 		artifactId = "assertj-core"
-		version = "3.27.3"
+		version = "3.27.4"
 	}
 }
 
@@ -69,22 +69,22 @@
 	dependency {
 		groupId = "org.bouncycastle"
 		artifactId = "bcpg-jdk18on"
-		version = "1.80"
+		version = "1.81"
 	}
 	dependency {
 		groupId = "org.bouncycastle"
 		artifactId = "bcprov-jdk18on"
-		version = "1.80"
+		version = "1.81"
 	}
 	dependency {
 		groupId = "org.bouncycastle"
 		artifactId = "bcpkix-jdk18on"
-		version = "1.80"
+		version = "1.81"
 	}
 	dependency {
 		groupId = "org.bouncycastle"
 		artifactId = "bcutil-jdk18on"
-		version = "1.80"
+		version = "1.81"
 	}
 }
 
@@ -97,12 +97,12 @@
 	dependency {
 		groupId = "net.bytebuddy"
 		artifactId = "byte-buddy"
-		version = "1.17.5"
+		version = "1.17.7"
 	}
 	dependency {
 		groupId = "net.bytebuddy"
 		artifactId = "byte-buddy-agent"
-		version = "1.17.5"
+		version = "1.17.7"
 	}
 }
 
@@ -154,42 +154,42 @@
 	dependency {
 		groupId = "org.eclipse.jetty.ee10"
 		artifactId = "jetty-ee10-servlet"
-		version = "12.0.21"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-http"
-		version = "12.0.21"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-io"
-		version = "12.0.21"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-security"
-		version = "12.0.21"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-server"
-		version = "12.0.21"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-session"
-		version = "12.0.21"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-util"
-		version = "12.0.21"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-util-ajax"
-		version = "12.0.21"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "jakarta.servlet"
@@ -225,7 +225,7 @@
 	dependency {
 		groupId = "org.mockito"
 		artifactId = "mockito-core"
-		version = "5.18.0"
+		version = "5.19.0"
 	}
 }
 
@@ -238,12 +238,12 @@
 	dependency {
 		groupId = "org.apache.sshd"
 		artifactId = "sshd-osgi"
-		version = "2.15.0"
+		version = "2.16.0"
 	}
 	dependency {
 		groupId = "org.apache.sshd"
 		artifactId = "sshd-sftp"
-		version = "2.15.0"
+		version = "2.16.0"
 	}
 }
 
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/orbit-4.37.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/orbit-4.37.tpd
new file mode 100644
index 0000000..9c1ba4f
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/orbit-4.37.tpd
@@ -0,0 +1,25 @@
+target "orbit-4.37" with source configurePhase
+// see https://download.eclipse.org/tools/orbit/downloads/
+
+location "https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2025-09" {
+	com.jcraft.jsch [0.1.55.v20230916-1400,0.1.55.v20230916-1400]
+	com.jcraft.jsch.source [0.1.55.v20230916-1400,0.1.55.v20230916-1400]
+	com.jcraft.jzlib [1.1.3.v20230916-1400,1.1.3.v20230916-1400]
+	com.jcraft.jzlib.source [1.1.3.v20230916-1400,1.1.3.v20230916-1400]
+	org.apache.ant [1.10.15.v20240901-1000,1.10.15.v20240901-1000]
+	org.apache.ant.source [1.10.15.v20240901-1000,1.10.15.v20240901-1000]
+	org.apache.httpcomponents.httpclient [4.5.14,4.5.14]
+	org.apache.httpcomponents.httpclient.source [4.5.14,4.5.14]
+	org.apache.httpcomponents.httpcore [4.4.16,4.4.16]
+	org.apache.httpcomponents.httpcore.source [4.4.16,4.4.16]
+	org.hamcrest.core [1.3.0.v20230809-1000,1.3.0.v20230809-1000]
+	org.hamcrest.core.source [1.3.0.v20230809-1000,1.3.0.v20230809-1000]
+	org.hamcrest.library [1.3.0.v20230809-1000,1.3.0.v20230809-1000]
+	org.hamcrest.library.source [1.3.0.v20230809-1000,1.3.0.v20230809-1000]
+	org.junit [4.13.2.v20240929-1000,4.13.2.v20240929-1000]
+	org.junit.source [4.13.2.v20240929-1000,4.13.2.v20240929-1000]
+	org.objenesis [3.4,3.4]
+	org.objenesis.source [3.4,3.4]
+	org.osgi.service.cm [1.6.1.202109301733,1.6.1.202109301733]
+	org.osgi.service.cm.source [1.6.1.202109301733,1.6.1.202109301733]
+}
diff --git a/org.eclipse.jgit.packaging/pom.xml b/org.eclipse.jgit.packaging/pom.xml
index 0687128..1d0eff4 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.3.1-SNAPSHOT</version>
+  <version>7.4.1-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 514fe71..d7b85af 100644
--- a/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
@@ -3,30 +3,31 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.pgm.test
 Bundle-SymbolicName: org.eclipse.jgit.pgm.test
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-17
-Import-Package: org.eclipse.jgit.api;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.api.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.diff;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.dircache;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.diffmergetool;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.junit;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib.internal;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.merge;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.pgm;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.pgm.internal;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.pgm.opt;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revwalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.treewalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util.io;version="[7.3.1,7.4.0)",
+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.4.1,7.5.0)",
+ org.eclipse.jgit.api.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.diff;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.dircache;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.diffmergetool;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.junit;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib.internal;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.merge;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.pgm;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.pgm.internal;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.pgm.opt;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revwalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.treewalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util.io;version="[7.4.1,7.5.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 6a138a0..a389ab7 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 c8750a8..1e03676 100644
--- a/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF
@@ -3,10 +3,11 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.pgm
 Bundle-SymbolicName: org.eclipse.jgit.pgm
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/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: jakarta.servlet;version="[6.0.0,7.0.0)",
  org.apache.commons.logging;version="[1.2,2.0)",
  org.eclipse.jetty.ee10.servlet;version="[12.0.0,13.0.0)",
@@ -14,50 +15,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.3.1,7.4.0)",
- org.eclipse.jgit.api.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.archive;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.awtui;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.blame;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.diff;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.dircache;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.gitrepo;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.diffmergetool;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.io;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.midx;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.pack;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs.server;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs.server.fs;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs.server.s3;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib.internal;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.merge;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.nls;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.notes;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revplot;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revwalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revwalk.filter;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.storage.pack;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.http.apache;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.resolver;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.ssh.jsch;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.sshd;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.treewalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util.io;version="[7.3.1,7.4.0)",
+ org.eclipse.jgit.api;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.api.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.archive;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.awtui;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.blame;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.diff;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.dircache;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.gitrepo;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.diffmergetool;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.io;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.midx;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs.server;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs.server.fs;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs.server.s3;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib.internal;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.merge;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.nls;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.notes;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revplot;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revwalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revwalk.filter;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.storage.pack;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.http.apache;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.resolver;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.ssh.jsch;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.sshd;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.treewalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util.io;version="[7.4.1,7.5.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.3.1";
+Export-Package: org.eclipse.jgit.console;version="7.4.1";
  uses:="org.eclipse.jgit.transport,
   org.eclipse.jgit.util",
- org.eclipse.jgit.pgm;version="7.3.1";
+ org.eclipse.jgit.pgm;version="7.4.1";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.util.io,
    org.eclipse.jgit.awtui,
@@ -69,14 +70,14 @@
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.api,
    javax.swing",
- org.eclipse.jgit.pgm.debug;version="7.3.1";
+ org.eclipse.jgit.pgm.debug;version="7.4.1";
   uses:="org.eclipse.jgit.util.io,
    org.eclipse.jgit.pgm,
    org.eclipse.jetty.servlet",
- org.eclipse.jgit.pgm.internal;version="7.3.1";
+ org.eclipse.jgit.pgm.internal;version="7.4.1";
   x-friends:="org.eclipse.jgit.pgm.test,
    org.eclipse.jgit.test",
- org.eclipse.jgit.pgm.opt;version="7.3.1";
+ org.eclipse.jgit.pgm.opt;version="7.4.1";
   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 3560cf9..a4a81c7 100644
--- a/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,6 @@
 Bundle-Name: org.eclipse.jgit.pgm - Sources
 Bundle-SymbolicName: org.eclipse.jgit.pgm.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.3.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.pgm;version="7.3.1.qualifier";roots="."
+Bundle-Version: 7.4.1.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.4.1.qualifier";roots="."
diff --git a/org.eclipse.jgit.pgm/META-INF/services/org.eclipse.jgit.pgm.TextBuiltin b/org.eclipse.jgit.pgm/META-INF/services/org.eclipse.jgit.pgm.TextBuiltin
index 6bf88d9..0749e7b 100644
--- a/org.eclipse.jgit.pgm/META-INF/services/org.eclipse.jgit.pgm.TextBuiltin
+++ b/org.eclipse.jgit.pgm/META-INF/services/org.eclipse.jgit.pgm.TextBuiltin
@@ -27,6 +27,7 @@
 org.eclipse.jgit.pgm.MergeBase
 org.eclipse.jgit.pgm.MergeTool
 org.eclipse.jgit.pgm.MultiPackIndex
+org.eclipse.jgit.pgm.ObjectSizeIndex
 org.eclipse.jgit.pgm.PackRefs
 org.eclipse.jgit.pgm.Push
 org.eclipse.jgit.pgm.ReceivePack
diff --git a/org.eclipse.jgit.pgm/pom.xml b/org.eclipse.jgit.pgm/pom.xml
index 681735d..2902626 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.pgm</artifactId>
diff --git a/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties b/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties
index e9630e9..606b29d 100644
--- a/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties
+++ b/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties
@@ -305,6 +305,7 @@
 usage_MergeBase=Find as good common ancestors as possible for a merge
 usage_MergesTwoDevelopmentHistories=Merges two development histories
 usage_MultiPackIndex=Operations over the multipack index
+usage_ObjectSizeIndex=Operations over the object size index
 usage_PackKeptObjects=Include objects in packs locked by a ".keep" file when repacking
 usage_PackRefs=Pack heads and tags for efficient repository access
 usage_PreserveOldPacks=Preserve old pack files by moving them into the preserved subdirectory instead of deleting them after repacking
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/ObjectSizeIndex.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/ObjectSizeIndex.java
new file mode 100644
index 0000000..a40c396
--- /dev/null
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/ObjectSizeIndex.java
@@ -0,0 +1,87 @@
+/*
+ * 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.pgm;
+
+import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_MIN_BYTES_OBJ_SIZE_INDEX;
+import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_USE_OBJECT_SIZE_INDEX;
+import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_PACK_SECTION;
+
+import java.io.IOException;
+
+import org.eclipse.jgit.internal.storage.file.ObjectDirectory;
+import org.eclipse.jgit.internal.storage.file.Pack;
+import org.eclipse.jgit.internal.storage.file.PackObjectSizeIndexHelper;
+import org.eclipse.jgit.lib.TextProgressMonitor;
+import org.kohsuke.args4j.Argument;
+
+@Command(common = true, usage = "usage_ObjectSizeIndex")
+@SuppressWarnings("nls")
+class ObjectSizeIndex extends TextBuiltin {
+	@Argument(index = 0, required = true, usage = "write, check")
+	private String command;
+
+	@Override
+	protected void run() throws IOException {
+		switch (command) {
+		case "write":
+			writeObjectSizeIndex();
+			break;
+		case "check":
+			checkObjectSizeIndex();
+			break;
+		default:
+			outw.println("Unknown command " + command);
+		}
+	}
+
+	private void writeObjectSizeIndex() throws IOException {
+		if (!(db.getObjectDatabase() instanceof ObjectDirectory)) {
+			throw die("This repository object db doesn't have packs");
+		}
+		PackObjectSizeIndexHelper.forAllPacks(
+				(ObjectDirectory) db.getObjectDatabase(),
+				new TextProgressMonitor());
+	}
+
+	private void checkObjectSizeIndex() throws IOException {
+		if (!(db.getObjectDatabase() instanceof ObjectDirectory)) {
+			throw die("This repository object db doesn't have packs");
+		}
+
+		outw.println("Object size index configuration for this repo:");
+		outw.println("\n* Writing:");
+		printInt(CONFIG_PACK_SECTION, CONFIG_KEY_MIN_BYTES_OBJ_SIZE_INDEX);
+
+		outw.println("\n* Reading:");
+		printBoolean(CONFIG_PACK_SECTION, CONFIG_KEY_USE_OBJECT_SIZE_INDEX);
+
+		outw.println("\n* Packs - have object size index:");
+		for (Pack pack : ((ObjectDirectory) db.getObjectDatabase())
+				.getPacks()) {
+			String name = pack.getPackName();
+			boolean hasObjectSizeIndex = pack.hasObjectSizeIndex();
+			outw.println(
+					String.format("  - %s - %b", name, hasObjectSizeIndex));
+		}
+	}
+
+	private void printInt(String section, String name) throws IOException {
+		Integer value = db.getConfig().getInt(section, name);
+		String key = String.join(".", section, name);
+		outw.println("  - " + key + " = " + value);
+	}
+
+	private void printBoolean(String section, String name) throws IOException {
+		Boolean value = db.getConfig().getBoolean(section, name);
+		String key = String.join(".", section, name);
+		outw.println("  - " + key + " = " + value);
+	}
+}
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 8310f43..f788a40 100644
--- a/org.eclipse.jgit.ssh.apache.agent/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache.agent/META-INF/MANIFEST.MF
@@ -2,16 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.agent;singleton:=true
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.qualifier
 Bundle-Localization: OSGI-INF/l10n/agent
 Bundle-Vendor: %Bundle-Vendor
-Fragment-Host: org.eclipse.jgit.ssh.apache;bundle-version="[7.3.1,7.4.0)"
+Fragment-Host: org.eclipse.jgit.ssh.apache;bundle-version="[7.4.1,7.5.0)"
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.jgit.ssh.apache.agent
 Bundle-RequiredExecutionEnvironment: JavaSE-17
-Import-Package: org.eclipse.jgit.transport.sshd;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.nls;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)"
+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.4.1,7.5.0)",
+ org.eclipse.jgit.nls;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.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.3.1";x-internal:=true
+Export-Package: org.eclipse.jgit.internal.transport.sshd.agent.connector;version="7.4.1";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 5109585..ba3d6a6 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,5 +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.3.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache.agent;version="7.3.1.qualifier";roots="."
+Bundle-Version: 7.4.1.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.4.1.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.apache.agent/pom.xml b/org.eclipse.jgit.ssh.apache.agent/pom.xml
index 9b9ea60..8af671a 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 eec422c..a978990 100644
--- a/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
@@ -3,44 +3,45 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ssh.apache.test
 Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.test
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.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
 Require-Bundle: org.hamcrest.core;bundle-version="[1.3.0,2.0.0)"
-Import-Package: org.apache.sshd.certificate;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.config.hosts;version="[2.15.0,2.16.0)",
- org.apache.sshd.common;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.auth;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.cipher;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.config.keys;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.helpers;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.kex;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.keyprovider;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.session;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.signature;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.buffer;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.net;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.security;version="[2.15.0,2.16.0)",
- org.apache.sshd.core;version="[2.15.0,2.16.0)",
- org.apache.sshd.server;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.forward;version="[2.15.0,2.16.0)",
- org.eclipse.jgit.annotations;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.api;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.api.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.signing.ssh;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.transport.sshd;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.transport.sshd.proxy;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.junit;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.junit.ssh;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revwalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.sshd;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.sshd.agent;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)",
+Import-Package: org.apache.sshd.certificate;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.config.hosts;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.auth;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.cipher;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.config.keys;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.helpers;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.kex;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.keyprovider;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.session;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.signature;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.buffer;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.net;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.security;version="[2.16.0,2.17.0)",
+ 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.4.1,7.5.0)",
+ org.eclipse.jgit.api;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.api.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.signing.ssh;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.transport.sshd;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.transport.sshd.proxy;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.junit;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.junit.ssh;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revwalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.sshd;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.sshd.agent;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.experimental.theories;version="[4.13,5.0.0)",
  org.junit.rules;version="[4.13.0,5.0.0)",
diff --git a/org.eclipse.jgit.ssh.apache.test/pom.xml b/org.eclipse.jgit.ssh.apache.test/pom.xml
index 7e64e01..6a1fd60 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 98f21f5..6184991 100644
--- a/org.eclipse.jgit.ssh.apache/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache/META-INF/MANIFEST.MF
@@ -6,10 +6,11 @@
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-ActivationPolicy: lazy
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-17
-Export-Package: org.eclipse.jgit.internal.signing.ssh;version="7.3.1";x-friends:="org.eclipse.jgit.ssh.apache.test",
- org.eclipse.jgit.internal.transport.sshd;version="7.3.1";x-friends:="org.eclipse.jgit.ssh.apache.test";
+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.4.1";x-friends:="org.eclipse.jgit.ssh.apache.test",
+ org.eclipse.jgit.internal.transport.sshd;version="7.4.1";x-friends:="org.eclipse.jgit.ssh.apache.test";
   uses:="org.apache.sshd.client,
    org.apache.sshd.client.auth,
    org.apache.sshd.client.auth.keyboard,
@@ -24,80 +25,80 @@
    org.apache.sshd.common.signature,
    org.apache.sshd.common.util.buffer,
    org.eclipse.jgit.transport",
- org.eclipse.jgit.internal.transport.sshd.agent;version="7.3.1";x-internal:=true,
- org.eclipse.jgit.internal.transport.sshd.auth;version="7.3.1";x-internal:=true,
- org.eclipse.jgit.internal.transport.sshd.pkcs11;version="7.3.1";x-internal:=true,
- org.eclipse.jgit.internal.transport.sshd.proxy;version="7.3.1";x-friends:="org.eclipse.jgit.ssh.apache.test",
- org.eclipse.jgit.signing.ssh;version="7.3.1";uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.transport.sshd;version="7.3.1";
+ org.eclipse.jgit.internal.transport.sshd.agent;version="7.4.1";x-internal:=true,
+ org.eclipse.jgit.internal.transport.sshd.auth;version="7.4.1";x-internal:=true,
+ org.eclipse.jgit.internal.transport.sshd.pkcs11;version="7.4.1";x-internal:=true,
+ org.eclipse.jgit.internal.transport.sshd.proxy;version="7.4.1";x-friends:="org.eclipse.jgit.ssh.apache.test",
+ org.eclipse.jgit.signing.ssh;version="7.4.1";uses:="org.eclipse.jgit.lib",
+ org.eclipse.jgit.transport.sshd;version="7.4.1";
   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.3.1"
+ org.eclipse.jgit.transport.sshd.agent;version="7.4.1"
 Import-Package: org.bouncycastle.jce.provider;version="[1.80.0,2.0.0)",
- org.apache.sshd.agent;version="[2.15.0,2.16.0)",
- org.apache.sshd.client;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.auth;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.auth.keyboard;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.auth.password;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.auth.pubkey;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.channel;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.config.hosts;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.config.keys;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.future;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.keyverifier;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.session;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.session.forward;version="[2.15.0,2.16.0)",
- org.apache.sshd.common;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.auth;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.channel;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.cipher;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.compression;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.config.keys;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.config.keys.loader;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.config.keys.loader.openssh.kdf;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.config.keys.u2f;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.digest;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.forward;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.future;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.helpers;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.io;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.kex;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.kex.extension;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.kex.extension.parser;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.keyprovider;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.mac;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.random;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.session;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.session.helpers;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.signature;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.buffer;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.buffer.keys;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.closeable;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.io;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.io.der;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.io.functors;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.io.resource;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.logging;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.net;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.security;version="[2.15.0,2.16.0)",
- org.apache.sshd.core;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.auth;version="[2.15.0,2.16.0)",
- org.apache.sshd.sftp;version="[2.15.0,2.16.0)",
- org.apache.sshd.sftp.client;version="[2.15.0,2.16.0)",
- org.apache.sshd.sftp.common;version="[2.15.0,2.16.0)",
- org.eclipse.jgit.annotations;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.api.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.fnmatch;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.nls;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)",
+ org.apache.sshd.agent;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.auth;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.auth.keyboard;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.auth.password;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.auth.pubkey;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.channel;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.config.hosts;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.config.keys;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.future;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.keyverifier;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.session;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.session.forward;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.auth;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.channel;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.cipher;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.compression;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.config.keys;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.config.keys.loader;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.config.keys.loader.openssh.kdf;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.config.keys.u2f;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.digest;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.forward;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.future;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.helpers;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.io;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.kex;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.kex.extension;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.kex.extension.parser;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.keyprovider;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.mac;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.random;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.session;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.session.helpers;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.signature;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.buffer;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.buffer.keys;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.closeable;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.io;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.io.der;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.io.functors;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.io.resource;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.logging;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.net;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.security;version="[2.16.0,2.17.0)",
+ org.apache.sshd.core;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.auth;version="[2.16.0,2.17.0)",
+ 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.4.1,7.5.0)",
+ org.eclipse.jgit.api.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.fnmatch;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.nls;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.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 87360df..616eea4 100644
--- a/org.eclipse.jgit.ssh.apache/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +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.3.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache;version="7.3.1.qualifier";roots="."
+Bundle-Version: 7.4.1.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.4.1.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.apache/pom.xml b/org.eclipse.jgit.ssh.apache/pom.xml
index 1895c21..5dcee13 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 6201cc5..ef3cbf2 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,21 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ssh.jsch.test
 Bundle-SymbolicName: org.eclipse.jgit.ssh.jsch.test
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.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
 Require-Bundle: org.hamcrest.core;bundle-version="[1.3.0,2.0.0)"
 Import-Package: com.jcraft.jsch;version="[0.1.54,0.2.0)",
- org.eclipse.jgit.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.junit;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.junit.ssh;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.ssh.jsch;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)",
+ org.eclipse.jgit.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.junit;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.junit.ssh;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.ssh.jsch;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.experimental.theories;version="[4.13,5.0.0)",
  org.junit.runner;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 bbd3a17..9e9282a 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 5910786..5a16f58 100644
--- a/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF
@@ -3,19 +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.3.1,7.4.0)"
+Fragment-Host: org.eclipse.jgit;bundle-version="[7.4.1,7.5.0)"
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/jsch
 Bundle-ActivationPolicy: lazy
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-17
-Export-Package: org.eclipse.jgit.transport.ssh.jsch;version="7.3.1"
+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.4.1"
 Import-Package: com.jcraft.jsch;version="[0.1.37,0.2.0)",
- org.eclipse.jgit.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.nls;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util.io;version="[7.3.1,7.4.0)",
+ org.eclipse.jgit.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.nls;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util.io;version="[7.4.1,7.5.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 1c267da..25c136f 100644
--- a/org.eclipse.jgit.ssh.jsch/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.jsch/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +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.3.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.jsch;version="7.3.1.qualifier";roots="."
+Bundle-Version: 7.4.1.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.4.1.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.jsch/pom.xml b/org.eclipse.jgit.ssh.jsch/pom.xml
index af7cc53..cb706c6 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 fc02bbb..1f6d0eb 100644
--- a/org.eclipse.jgit.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.test/META-INF/MANIFEST.MF
@@ -3,10 +3,11 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.test
 Bundle-SymbolicName: org.eclipse.jgit.test
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.qualifier
 Bundle-Localization: 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
 Require-Bundle: org.hamcrest.core;bundle-version="[1.3.0,2.0.0)",
  org.hamcrest.library;bundle-version="[1.3.0,2.0.0)"
 Import-Package: com.googlecode.javaewah;version="[1.1.6,2.0.0)",
@@ -22,66 +23,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.3.1,7.4.0)",
- org.eclipse.jgit.api;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.api.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.archive;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.attributes;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.awtui;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.blame;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.blame.cache;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.diff;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.dircache;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.events;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.fnmatch;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.gitrepo;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.hooks;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.ignore;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.ignore.internal;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.diff;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.diffmergetool;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.fsck;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.revwalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.commitgraph;version="7.3.1",
- org.eclipse.jgit.internal.storage.dfs;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.io;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.memory;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.midx;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.pack;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.transport.connectivity;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.transport.http;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.transport.parser;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.junit;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.junit.time;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lfs;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib.internal;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.logging;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.merge;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.nls;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.notes;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.patch;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.pgm;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.pgm.internal;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revplot;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revwalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revwalk.filter;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.storage.file;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.storage.pack;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.submodule;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.http;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport.resolver;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.treewalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util.io;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util.sha1;version="[7.3.1,7.4.0)",
+ org.eclipse.jgit.annotations;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.api;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.api.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.archive;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.attributes;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.awtui;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.blame;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.blame.cache;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.diff;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.dircache;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.events;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.fnmatch;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.gitrepo;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.hooks;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.ignore;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.ignore.internal;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.diff;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.diffmergetool;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.fsck;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.revwalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.commitgraph;version="7.4.1",
+ org.eclipse.jgit.internal.storage.dfs;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.io;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.memory;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.midx;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.transport.connectivity;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.transport.http;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.transport.parser;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.junit;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.junit.time;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lfs;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib.internal;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.logging;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.merge;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.nls;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.notes;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.patch;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.pgm;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.pgm.internal;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revplot;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revwalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revwalk.filter;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.storage.file;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.storage.pack;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.submodule;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.http;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport.resolver;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.treewalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util.io;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util.sha1;version="[7.4.1,7.5.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.experimental.theories;version="[4.13,5.0.0)",
  org.junit.function;version="[4.13.0,5.0.0)",
diff --git a/org.eclipse.jgit.test/pom.xml b/org.eclipse.jgit.test/pom.xml
index 130dea7..b246680 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.test</artifactId>
@@ -165,7 +165,7 @@
       <plugin>
         <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
-          <argLine>@{argLine} -Xmx768m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=${project.build.directory}</argLine>
+          <argLine>@{argLine} -Xmx768m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=${project.build.directory} --add-opens java.base/sun.nio.fs=ALL-UNNAMED</argLine>
           <includes>
             <include>**/*Test.java</include>
             <include>**/*Tests.java</include>
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/indexdiff/IndexDiffWithSymlinkTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/indexdiff/IndexDiffWithSymlinkTest.java
index d02bfcd..1119db3 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/indexdiff/IndexDiffWithSymlinkTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/indexdiff/IndexDiffWithSymlinkTest.java
@@ -132,7 +132,8 @@ private File restoreGitRepo(InputStream in, File testDir, String name)
 				Writer writer = new OutputStreamWriter(out, UTF_8)) {
 			writer.write("echo `which git` 1>&2\n");
 			writer.write("echo `git --version` 1>&2\n");
-			writer.write("git init " + name + " && \\\n");
+			writer.write("git -c init.defaultBranch=master init " + name
+					+ " && \\\n");
 			writer.write("cd ./" + name + " && \\\n");
 			writer.write("git fast-import < ../" + name + ".txt && \\\n");
 			writer.write("git checkout -f\n");
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollectorTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollectorTest.java
index 00a3760..80bd689 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollectorTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollectorTest.java
@@ -1182,7 +1182,8 @@ public void objectSizeIdx_reachableBlob_bigEnough_indexed() throws Exception {
 		DfsReader reader = odb.newReader();
 		DfsPackFile gcPack = findFirstBySource(odb.getPacks(), GC);
 		assertTrue(gcPack.hasObjectSizeIndex(reader));
-		assertEquals(12, gcPack.getIndexedObjectSize(reader, headsBlob));
+		assertEquals(12, gcPack.getIndexedObjectSize(reader,
+				gcPack.findIdxPosition(reader, headsBlob)));
 	}
 
 	@Test
@@ -1203,7 +1204,8 @@ public void objectSizeIdx_reachableBlob_tooSmall_notIndexed() throws Exception {
 		DfsReader reader = odb.newReader();
 		DfsPackFile gcPack = findFirstBySource(odb.getPacks(), GC);
 		assertTrue(gcPack.hasObjectSizeIndex(reader));
-		assertEquals(-1, gcPack.getIndexedObjectSize(reader, tooSmallBlob));
+		assertEquals(-1, gcPack.getIndexedObjectSize(reader,
+				gcPack.findIdxPosition(reader, tooSmallBlob)));
 	}
 
 	@Test
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsInserterTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsInserterTest.java
index 49f399c..efa98de 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsInserterTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsInserterTest.java
@@ -309,7 +309,8 @@ public void testObjectSizeIndexOnInsert() throws IOException {
 		assertEquals(PackSource.INSERT,
 				insertPack.getPackDescription().getPackSource());
 		assertTrue(insertPack.hasObjectSizeIndex(reader));
-		assertEquals(contents.length, insertPack.getIndexedObjectSize(reader, fooId));
+		assertEquals(contents.length, insertPack.getIndexedObjectSize(reader,
+				insertPack.findIdxPosition(reader, fooId)));
 	}
 
 	private static String readString(ObjectLoader loader) throws IOException {
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsPackFileTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsPackFileTest.java
index 9680019..f2129fd 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsPackFileTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsPackFileTest.java
@@ -131,7 +131,8 @@ public void testLoadObjectSizeIndex() throws IOException {
 		DfsReader reader = db.getObjectDatabase().newReader();
 		DfsPackFile pack = db.getObjectDatabase().getPacks()[0];
 		assertTrue(pack.hasObjectSizeIndex(reader));
-		assertEquals(800, pack.getIndexedObjectSize(reader, blobId));
+		assertEquals(800, pack.getIndexedObjectSize(reader,
+				pack.findIdxPosition(reader, blobId)));
 	}
 
 	@Test
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsPackParserTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsPackParserTest.java
index c1cd231..9d26978 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsPackParserTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsPackParserTest.java
@@ -65,6 +65,7 @@ public void parse_writeObjSizeIdx() throws IOException {
 		DfsReader reader = repo.getObjectDatabase().newReader();
 		PackList packList = repo.getObjectDatabase().getPackList();
 		assertEquals(1, packList.packs.length);
-		assertEquals(1, packList.packs[0].getIndexedObjectSize(reader, blobA));
+		assertEquals(1, packList.packs[0].getIndexedObjectSize(reader,
+				packList.packs[0].findIdxPosition(reader, blobA)));
 	}
 }
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcObjectSizeIndexTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcObjectSizeIndexTest.java
new file mode 100644
index 0000000..1a05d88
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcObjectSizeIndexTest.java
@@ -0,0 +1,279 @@
+/*
+ * Copyright (C) 2025, Google LLC. 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
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.internal.storage.file;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collection;
+
+import org.eclipse.jgit.internal.storage.pack.PackExt;
+import org.eclipse.jgit.junit.TestRepository;
+import org.eclipse.jgit.lib.ObjectId;
+import org.eclipse.jgit.lib.RefUpdate;
+import org.eclipse.jgit.revwalk.RevBlob;
+import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.storage.pack.PackConfig;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+@RunWith(JUnit4.class)
+public class GcObjectSizeIndexTest extends GcTestCase {
+
+	@Test
+	public void gc_2commits_noSizeLimit_blobsInIndex() throws Exception {
+		TestRepository<FileRepository>.BranchBuilder bb = tr
+				.branch("refs/heads/master");
+		RevBlob blobA1 = tr.blob("7-bytes");
+		RevBlob blobA2 = tr.blob("11-bytes xx");
+		RevBlob blobB1 = tr.blob("B");
+		RevBlob blobB2 = tr.blob("B2");
+		bb.commit().add("A", blobA1).add("B", blobB1).create();
+		bb.commit().add("A", blobA2).add("B", blobB2).create();
+
+		stats = gc.getStatistics();
+		assertEquals(8, stats.numberOfLooseObjects);
+		assertEquals(0, stats.numberOfPackedObjects);
+		configureGc(gc, 0);
+		gc.gc().get();
+
+		stats = gc.getStatistics();
+		assertEquals(1, stats.numberOfPackFiles);
+		assertEquals(4, stats.numberOfSizeIndexedObjects);
+
+		assertTrue(getOnlyPack(repo).hasObjectSizeIndex());
+		Pack pack = getOnlyPack(repo);
+		assertEquals(7, pack.getIndexedObjectSize(blobA1));
+		assertEquals(11, pack.getIndexedObjectSize(blobA2));
+		assertEquals(1, pack.getIndexedObjectSize(blobB1));
+		assertEquals(2, pack.getIndexedObjectSize(blobB2));
+	}
+
+	@Test
+	public void gc_2commits_sizeLimit_biggerBlobsInIndex() throws Exception {
+		TestRepository<FileRepository>.BranchBuilder bb = tr
+				.branch("refs/heads/master");
+		RevBlob blobA1 = tr.blob("7-bytes");
+		RevBlob blobA2 = tr.blob("11-bytes xx");
+		RevBlob blobB1 = tr.blob("B");
+		RevBlob blobB2 = tr.blob("B2");
+		bb.commit().add("A", blobA1).add("B", blobB1).create();
+		bb.commit().add("A", blobA2).add("B", blobB2).create();
+
+		stats = gc.getStatistics();
+		assertEquals(8, stats.numberOfLooseObjects);
+		assertEquals(0, stats.numberOfPackedObjects);
+		configureGc(gc, 5);
+		gc.gc().get();
+
+		stats = gc.getStatistics();
+		assertEquals(1, stats.numberOfPackFiles);
+		assertEquals(2, stats.numberOfSizeIndexedObjects);
+
+		assertTrue(getOnlyPack(repo).hasObjectSizeIndex());
+		Pack pack = getOnlyPack(repo);
+		assertEquals(7, pack.getIndexedObjectSize(blobA1));
+		assertEquals(11, pack.getIndexedObjectSize(blobA2));
+		assertEquals(-1, pack.getIndexedObjectSize(blobB1));
+		assertEquals(-1, pack.getIndexedObjectSize(blobB2));
+	}
+
+	@Test
+	public void gc_2commits_disableSizeIdx_noIdx() throws Exception {
+		TestRepository<FileRepository>.BranchBuilder bb = tr
+				.branch("refs/heads/master");
+		RevBlob blobA1 = tr.blob("7-bytes");
+		RevBlob blobA2 = tr.blob("11-bytes xx");
+		RevBlob blobB1 = tr.blob("B");
+		RevBlob blobB2 = tr.blob("B2");
+		bb.commit().add("A", blobA1).add("B", blobB1).create();
+		bb.commit().add("A", blobA2).add("B", blobB2).create();
+
+		stats = gc.getStatistics();
+		assertEquals(8, stats.numberOfLooseObjects);
+		assertEquals(0, stats.numberOfPackedObjects);
+		configureGc(gc, -1);
+		gc.gc().get();
+
+
+		stats = gc.getStatistics();
+		assertEquals(1, stats.numberOfPackFiles);
+		assertEquals(0, stats.numberOfSizeIndexedObjects);
+	}
+
+	@Test
+	public void gc_alreadyPacked_noChanges()
+			throws Exception {
+		tr.branch("refs/heads/master").commit().add("A", "A").add("B", "B")
+				.create();
+		stats = gc.getStatistics();
+		assertEquals(4, stats.numberOfLooseObjects);
+		assertEquals(0, stats.numberOfPackedObjects);
+		configureGc(gc, 0);
+		gc.gc().get();
+
+		stats = gc.getStatistics();
+		assertEquals(4, stats.numberOfPackedObjects);
+		assertEquals(1, stats.numberOfPackFiles);
+		assertTrue(getOnlyPack(repo).hasObjectSizeIndex());
+		assertEquals(2, stats.numberOfSizeIndexedObjects);
+
+		// Do the gc again and check that it hasn't changed anything
+		gc.gc().get();
+		stats = gc.getStatistics();
+		assertEquals(4, stats.numberOfPackedObjects);
+		assertEquals(1, stats.numberOfPackFiles);
+		assertTrue(getOnlyPack(repo).hasObjectSizeIndex());
+		assertEquals(2, stats.numberOfSizeIndexedObjects);
+	}
+
+	@Test
+	public void gc_twoReachableCommits_oneUnreachable_twoPacks()
+			throws Exception {
+		TestRepository<FileRepository>.BranchBuilder bb = tr
+				.branch("refs/heads/master");
+		RevCommit first = bb.commit().add("A", "A").add("B", "B").create();
+		bb.commit().add("A", "A2").add("B", "B2").create();
+		tr.update("refs/heads/master", first);
+
+		stats = gc.getStatistics();
+		assertEquals(8, stats.numberOfLooseObjects);
+		assertEquals(0, stats.numberOfPackedObjects);
+		configureGc(gc, 0);
+		gc.gc().get();
+		stats = gc.getStatistics();
+		assertEquals(0, stats.numberOfLooseObjects);
+		assertEquals(8, stats.numberOfPackedObjects);
+		assertEquals(2, stats.numberOfPackFiles);
+		assertEquals(4, stats.numberOfSizeIndexedObjects);
+	}
+
+	@Test
+	public void gc_preserved_objSizeIdxIsPreserved() throws Exception {
+		Collection<Pack> oldPacks = preserveOldPacks();
+		assertEquals(1, oldPacks.size());
+		PackFile preserved = oldPacks.iterator().next().getPackFile()
+				.create(PackExt.OBJECT_SIZE_INDEX)
+				.createPreservedForDirectory(
+						repo.getObjectDatabase().getPreservedDirectory());
+		assertTrue(preserved.exists());
+	}
+
+	@Test
+	public void gc_preserved_prune_noPreserves() throws Exception {
+		preserveOldPacks();
+		configureGc(gc, 0).setPrunePreserved(true);
+		gc.gc().get();
+
+		assertFalse(repo.getObjectDatabase().getPreservedDirectory().exists());
+	}
+
+	private Collection<Pack> preserveOldPacks() throws Exception {
+		TestRepository<FileRepository>.BranchBuilder bb = tr
+				.branch("refs/heads/master");
+		bb.commit().message("P").add("P", "P").create();
+
+		// pack loose object into packfile
+		configureGc(gc, 0);
+		gc.setExpireAgeMillis(0);
+		gc.gc().get();
+		Collection<Pack> oldPacks = tr.getRepository().getObjectDatabase()
+				.getPacks();
+		PackFile oldPackfile = oldPacks.iterator().next().getPackFile();
+		assertTrue(oldPackfile.exists());
+
+		fsTick();
+		bb.commit().message("B").add("B", "Q").create();
+
+		// repack again but now without a grace period for packfiles. We should
+		// end up with a new packfile and the old one should be placed in the
+		// preserved directory
+		gc.setPackExpireAgeMillis(0);
+		configureGc(gc, 0).setPreserveOldPacks(true);
+		gc.gc().get();
+
+		File preservedPackFile = oldPackfile.createPreservedForDirectory(
+				repo.getObjectDatabase().getPreservedDirectory());
+		assertTrue(preservedPackFile.exists());
+		return oldPacks;
+	}
+
+	@Ignore
+	public void testPruneAndRestoreOldPacks() throws Exception {
+		String tempRef = "refs/heads/soon-to-be-unreferenced";
+		TestRepository<FileRepository>.BranchBuilder bb = tr.branch(tempRef);
+		bb.commit().add("A", "A").add("B", "B").create();
+
+		// Verify setup conditions
+		stats = gc.getStatistics();
+		assertEquals(4, stats.numberOfLooseObjects);
+		assertEquals(0, stats.numberOfPackedObjects);
+
+		// Force all referenced objects into packs (to avoid having loose objects)
+		configureGc(gc, 0);
+		gc.setExpireAgeMillis(0);
+		gc.setPackExpireAgeMillis(0);
+		gc.gc().get();
+		stats = gc.getStatistics();
+		assertEquals(0, stats.numberOfLooseObjects);
+		assertEquals(4, stats.numberOfPackedObjects);
+		assertEquals(1, stats.numberOfPackFiles);
+
+		// Delete the temp ref, orphaning its commit
+		RefUpdate update = tr.getRepository().getRefDatabase().newUpdate(tempRef, false);
+		update.setForceUpdate(true);
+		ObjectId objectId = update.getOldObjectId(); // remember it so we can restore it!
+		RefUpdate.Result result = update.delete();
+		assertEquals(RefUpdate.Result.FORCED, result);
+
+		fsTick();
+
+		// Repack with only orphaned commit, so packfile will be pruned
+		configureGc(gc, 0).setPreserveOldPacks(true);
+		gc.gc().get();
+		stats = gc.getStatistics();
+		assertEquals(0, stats.numberOfLooseObjects);
+		assertEquals(0, stats.numberOfPackedObjects);
+		assertEquals(0, stats.numberOfPackFiles);
+
+		// Restore the temp ref to the deleted commit, should restore old-packs!
+		update = tr.getRepository().getRefDatabase().newUpdate(tempRef, false);
+		update.setNewObjectId(objectId);
+		update.setExpectedOldObjectId(null);
+		result = update.update();
+		assertEquals(RefUpdate.Result.NEW, result);
+
+		stats = gc.getStatistics();
+		assertEquals(4, stats.numberOfPackedObjects);
+		assertEquals(1, stats.numberOfPackFiles);
+	}
+
+	private PackConfig configureGc(GC myGc, int minSize) {
+		PackConfig pconfig = new PackConfig(repo);
+		pconfig.setMinBytesForObjSizeIndex(minSize);
+		myGc.setPackConfig(pconfig);
+		return pconfig;
+	}
+
+	private Pack getOnlyPack(FileRepository fileRepo)
+			throws IOException {
+		Collection<Pack> packs = fileRepo.getObjectDatabase().getPacks();
+		if (packs.size() != 1) {
+			throw new IOException("More than one pack");
+		}
+
+		return packs.iterator().next();
+	}
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackInserterTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackInserterTest.java
index 8504303..cc43d3c 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackInserterTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackInserterTest.java
@@ -53,6 +53,7 @@
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.io.ByteArrayInputStream;
@@ -77,12 +78,14 @@
 import org.eclipse.jgit.errors.MissingObjectException;
 import org.eclipse.jgit.junit.RepositoryTestCase;
 import org.eclipse.jgit.lib.CommitBuilder;
+import org.eclipse.jgit.lib.ConfigConstants;
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.FileMode;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.ObjectLoader;
 import org.eclipse.jgit.lib.ObjectReader;
 import org.eclipse.jgit.lib.ObjectStream;
+import org.eclipse.jgit.storage.file.FileBasedConfig;
 import org.eclipse.jgit.storage.file.WindowCacheConfig;
 import org.eclipse.jgit.treewalk.CanonicalTreeParser;
 import org.eclipse.jgit.util.IO;
@@ -489,6 +492,38 @@ public void readBackSmallObjectBeforeLargeObject() throws Exception {
 		}
 	}
 
+	@Test
+	public void createsObjectSizeIndex() throws Exception {
+		FileBasedConfig jGitConfig = mockSystemReader.getJGitConfig();
+		jGitConfig.setInt(
+				ConfigConstants.CONFIG_PACK_SECTION,
+				null,
+				ConfigConstants.CONFIG_KEY_MIN_BYTES_OBJ_SIZE_INDEX, 10);
+		jGitConfig.save();
+		byte[] oneBlob = Constants.encode("a blob with some content");
+		byte[] anotherBlob = Constants.encode("some more contents");
+		byte[] streamMeBlob = Constants.encode("some more content to write");
+
+		ObjectId oneBlobOid, anotherBlobOid, streamMeBlobOid;
+		try (PackInserter ins = newInserter()) {
+			oneBlobOid = ins.insert(OBJ_BLOB, oneBlob);
+			anotherBlobOid = ins.insert(OBJ_BLOB, anotherBlob);
+			streamMeBlobOid = ins.insert(OBJ_BLOB, streamMeBlob.length,
+					new ByteArrayInputStream(streamMeBlob));
+			ins.flush();
+		}
+
+		List<Pack> listPacks = listPacks(db);
+		assertEquals(1, listPacks.size());
+		Pack thePack = listPacks.get(0);
+		assertTrue(thePack.hasObjectSizeIndex());
+		assertEquals(oneBlob.length, thePack.getIndexedObjectSize(oneBlobOid));
+		assertEquals(anotherBlob.length,
+				thePack.getIndexedObjectSize(anotherBlobOid));
+		assertEquals(streamMeBlob.length,
+				thePack.getIndexedObjectSize(streamMeBlobOid));
+	}
+
 	private List<Pack> listPacks() throws Exception {
 		List<Pack> fromOpenDb = listPacks(db);
 		List<Pack> reopened;
@@ -549,7 +584,8 @@ private static void assertBlob(ObjectReader reader, ObjectId id,
 	}
 
 	private void assertPacksOnly() throws Exception {
-		new BadFileCollector(f -> !f.endsWith(".pack") && !f.endsWith(".idx"))
+		new BadFileCollector(f -> !f.endsWith(".pack") && !f.endsWith(".idx")
+				&& !f.endsWith(".objsize"))
 				.assertNoBadFiles(db.getObjectDatabase().getDirectory());
 	}
 
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackTest.java
index e150945..016a6af 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackTest.java
@@ -10,6 +10,7 @@
 
 package org.eclipse.jgit.internal.storage.file;
 
+import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_PACK_SECTION;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -29,6 +30,7 @@
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.stream.Collectors;
 import java.util.zip.Deflater;
 
 import org.eclipse.jgit.errors.LargeObjectException;
@@ -39,6 +41,7 @@
 import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase;
 import org.eclipse.jgit.junit.TestRepository;
 import org.eclipse.jgit.junit.TestRng;
+import org.eclipse.jgit.lib.ConfigConstants;
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.NullProgressMonitor;
 import org.eclipse.jgit.lib.ObjectId;
@@ -47,6 +50,7 @@
 import org.eclipse.jgit.lib.ObjectStream;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.revwalk.RevBlob;
+import org.eclipse.jgit.revwalk.RevCommit;
 import org.eclipse.jgit.storage.file.WindowCacheConfig;
 import org.eclipse.jgit.transport.PackParser;
 import org.eclipse.jgit.transport.PackedObjectInfo;
@@ -295,6 +299,29 @@ public void testConfigurableStreamFileThreshold() throws Exception {
 		}
 	}
 
+	@Test
+	public void testObjectSize() throws Exception {
+		byte[] data = getRng().nextBytes(300);
+		RevBlob aBlob = tr.blob(data);
+		RevCommit aCommit = tr.branch("master").commit().add("A", aBlob).create();
+		repo.getConfig().setInt(CONFIG_PACK_SECTION, null, ConfigConstants.CONFIG_KEY_MIN_BYTES_OBJ_SIZE_INDEX, 0);
+		tr.packAndPrune();
+
+		List<Pack> packs = repo.getObjectDatabase().getPacks().stream().collect(Collectors.toList());
+		assertEquals(1, packs.size());
+		// Indexed object
+		assertEquals(300, packs.get(0).getIndexedObjectSize(aBlob));
+		assertEquals(300, packs.get(0).getObjectSize(wc, aBlob));
+		// Non indexed object
+		assertEquals(-1, packs.get(0).getIndexedObjectSize(aCommit));
+		assertEquals(168, packs.get(0).getObjectSize(wc, aCommit));
+		// Object not in pack
+		assertEquals(-1, packs.get(0).getObjectSize(wc,
+				ObjectId.fromString("1111111111111111111111111111111111111111")));
+		assertEquals(-1, packs.get(0).getIndexedObjectSize(
+				ObjectId.fromString("1111111111111111111111111111111111111111")));
+	}
+
 	private static byte[] clone(int first, byte[] base) {
 		byte[] r = new byte[base.length];
 		System.arraycopy(base, 1, r, 1, r.length - 1);
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/midx/MultiPackIndexTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/midx/MultiPackIndexTest.java
index ab45285..5de9bd6 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/midx/MultiPackIndexTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/midx/MultiPackIndexTest.java
@@ -213,7 +213,6 @@ public void jgit_resolve() throws IOException {
 		MultiPackIndex midx = MultiPackIndexLoader
 				.read(new ByteArrayInputStream(out.toByteArray()));
 
-
 		Set<ObjectId> results = new HashSet<>();
 		midx.resolve(results, abbrev, 100);
 
@@ -257,7 +256,6 @@ public void jgit_resolve_matchLimit() throws IOException {
 		MultiPackIndex midx = MultiPackIndexLoader
 				.read(new ByteArrayInputStream(out.toByteArray()));
 
-
 		Set<ObjectId> results = new HashSet<>();
 		midx.resolve(results, abbrev, 2);
 
@@ -273,8 +271,7 @@ public void jgit_resolve_noMatches() throws IOException {
 		AbbreviatedObjectId abbrev = AbbreviatedObjectId
 				.fromString("4400000000");
 
-		PackIndex idxOne = indexWith(
-				"0000000000000000000000000000000000000001",
+		PackIndex idxOne = indexWith("0000000000000000000000000000000000000001",
 				"3000000000000000000000000000000000000005",
 				"32fe829a1b000000000000000000000000000001",
 				"32fe829a1c000000000000000000000000000001",
@@ -315,13 +312,117 @@ public void jgit_resolve_empty() throws IOException {
 		MultiPackIndex midx = MultiPackIndexLoader
 				.read(new ByteArrayInputStream(out.toByteArray()));
 
-
 		Set<ObjectId> results = new HashSet<>();
 		midx.resolve(results, abbrev, 200);
 
 		assertEquals(0, results.size());
 	}
 
+	@Test
+	public void jgit_findPosition() throws IOException {
+		PackIndex idxOne = FakeIndexFactory.indexOf(List.of(
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000001", 500),
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000005", 12),
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000010", 1500)));
+		PackIndex idxTwo = FakeIndexFactory.indexOf(List.of(
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000002", 501),
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000003", 13),
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000015", 1501)));
+		PackIndex idxThree = FakeIndexFactory.indexOf(List.of(
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000004", 502),
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000007", 14),
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000012", 1502)));
+
+		Map<String, PackIndex> packs = Map.of("p1", idxOne, "p2", idxTwo, "p3",
+				idxThree);
+		MultiPackIndexWriter writer = new MultiPackIndexWriter();
+		ByteArrayOutputStream out = new ByteArrayOutputStream();
+		writer.write(NullProgressMonitor.INSTANCE, out, packs);
+
+		MultiPackIndex midx = MultiPackIndexLoader
+				.read(new ByteArrayInputStream(out.toByteArray()));
+		assertEquals(3, midx.getPackNames().length);
+		assertEquals(0, midx.findPosition(ObjectId
+				.fromString("0000000000000000000000000000000000000001")));
+		assertEquals(1, midx.findPosition(ObjectId
+				.fromString("0000000000000000000000000000000000000002")));
+		assertEquals(2, midx.findPosition(ObjectId
+				.fromString("0000000000000000000000000000000000000003")));
+		assertEquals(3, midx.findPosition(ObjectId
+				.fromString("0000000000000000000000000000000000000004")));
+		assertEquals(4, midx.findPosition(ObjectId
+				.fromString("0000000000000000000000000000000000000005")));
+		assertEquals(5, midx.findPosition(ObjectId
+				.fromString("0000000000000000000000000000000000000007")));
+		assertEquals(6, midx.findPosition(ObjectId
+				.fromString("0000000000000000000000000000000000000010")));
+		assertEquals(7, midx.findPosition(ObjectId
+				.fromString("0000000000000000000000000000000000000012")));
+		assertEquals(8, midx.findPosition(ObjectId
+				.fromString("0000000000000000000000000000000000000015")));
+
+		assertNull(midx.find(ObjectId.zeroId()));
+	}
+
+	@Test
+	public void jgit_getObjectCount() throws IOException {
+		PackIndex idxOne = FakeIndexFactory.indexOf(List.of(
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000001", 500),
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000005", 12),
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000010", 1500)));
+		PackIndex idxTwo = FakeIndexFactory.indexOf(List.of(
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000002", 501),
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000003", 13),
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000015", 1501)));
+		PackIndex idxThree = FakeIndexFactory.indexOf(List.of(
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000004", 502),
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000007", 14),
+				new FakeIndexFactory.IndexObject(
+						"0000000000000000000000000000000000000012", 1502)));
+
+		Map<String, PackIndex> packs = Map.of("p1", idxOne, "p2", idxTwo, "p3",
+				idxThree);
+		MultiPackIndexWriter writer = new MultiPackIndexWriter();
+		ByteArrayOutputStream out = new ByteArrayOutputStream();
+		writer.write(NullProgressMonitor.INSTANCE, out, packs);
+
+		MultiPackIndex midx = MultiPackIndexLoader
+				.read(new ByteArrayInputStream(out.toByteArray()));
+		assertEquals(9, midx.getObjectCount());
+	}
+
+	@Test
+	public void jgit_getObjectCount_emtpy() throws IOException {
+		PackIndex idxOne = FakeIndexFactory.indexOf(List.of());
+		PackIndex idxTwo = FakeIndexFactory.indexOf(List.of());
+
+		Map<String, PackIndex> packs = Map.of("p1", idxOne, "p2", idxTwo);
+		MultiPackIndexWriter writer = new MultiPackIndexWriter();
+		ByteArrayOutputStream out = new ByteArrayOutputStream();
+		writer.write(NullProgressMonitor.INSTANCE, out, packs);
+		MultiPackIndex midx = MultiPackIndexLoader
+				.read(new ByteArrayInputStream(out.toByteArray()));
+
+		assertEquals(0, midx.getObjectCount());
+	}
+
 	private static PackIndex indexWith(String... oids) {
 		List<FakeIndexFactory.IndexObject> idxObjs = new ArrayList<>(
 				oids.length);
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkSortTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkSortTest.java
index 8af6747..d27d5c7 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkSortTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkSortTest.java
@@ -128,6 +128,56 @@ public void testSort_TOPO() throws Exception {
 	}
 
 	@Test
+	public void testSort_TOPO_reachable() throws Exception {
+		// c1 is back dated before its parent.
+		//
+		final RevCommit a = commit();
+		final RevCommit b = commit(a);
+		final RevCommit c1 = commit(-5, b);
+		final RevCommit c2 = commit(10, b);
+		final RevCommit d = commit(c1, c2);
+
+		assertEquals("", d.getShortMessage());
+		assertEquals("", c2.getShortMessage());
+		assertEquals("", c1.getShortMessage());
+		assertEquals("", b.getShortMessage());
+		rw.sort(RevSort.TOPO);
+		markStart(d);
+		markUninteresting(b);
+		assertEquals("", d.getShortMessage());
+		assertEquals("", c2.getShortMessage());
+		assertEquals("", c1.getShortMessage());
+		assertEquals("", b.getShortMessage());
+		assertCommit(d, rw.next());
+		assertCommit(c2, rw.next());
+		assertCommit(c1, rw.next());
+		assertNull(rw.next());
+		assertEquals("", d.getShortMessage());
+		assertEquals("", c2.getShortMessage());
+		assertEquals("", c1.getShortMessage());
+		assertEquals("", b.getShortMessage());
+	}
+
+	@Test
+	public void testSort_TOPO_reachable2() throws Exception {
+		// c1 is back dated before its parent.
+		//
+		final RevCommit a = commit();
+		final RevCommit b = commit(a);
+		final RevCommit c1 = commit(-5, b);
+		final RevCommit c2 = commit(10, b);
+		final RevCommit d = commit(c1, c2);
+
+		assertEquals("", d.getShortMessage());
+		rw.sort(RevSort.TOPO);
+		markStart(d);
+		markUninteresting(d);
+		assertEquals("", d.getShortMessage());
+		assertNull(rw.next());
+		assertEquals("", d.getShortMessage());
+	}
+
+	@Test
 	public void testSort_TOPO_REVERSE() throws Exception {
 		// c1 is back dated before its parent.
 		//
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/ObjectDirectoryPackParserTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/ObjectDirectoryPackParserTest.java
new file mode 100644
index 0000000..b17c577
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/ObjectDirectoryPackParserTest.java
@@ -0,0 +1,227 @@
+/*
+ * Copyright (C) 2021, Google LLC. and others
+ * Copyright (C) 2008, Imran M Yousuf <imyousuf@smartitengineering.com>
+ * Copyright (C) 2007-2008, Robin Rosenberg <robin.rosenberg@dewire.com>
+ * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.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
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.transport;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.MessageDigest;
+import java.util.zip.Deflater;
+
+import org.eclipse.jgit.internal.storage.file.ObjectDirectoryPackParser;
+import org.eclipse.jgit.internal.storage.file.Pack;
+import org.eclipse.jgit.junit.JGitTestUtil;
+import org.eclipse.jgit.junit.RepositoryTestCase;
+import org.eclipse.jgit.junit.TestRepository;
+import org.eclipse.jgit.lib.ConfigConstants;
+import org.eclipse.jgit.lib.Constants;
+import org.eclipse.jgit.lib.NullProgressMonitor;
+import org.eclipse.jgit.lib.ObjectId;
+import org.eclipse.jgit.lib.ObjectInserter;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.revwalk.RevBlob;
+import org.eclipse.jgit.storage.file.FileBasedConfig;
+import org.eclipse.jgit.util.NB;
+import org.eclipse.jgit.util.TemporaryBuffer;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Pack parsing is covered in {@link PackParserTest}.
+ *
+ * Here we test ObjectDirectoryPackParser specific parts. e.g. that is creates
+ * the object-size index.
+ */
+public class ObjectDirectoryPackParserTest extends RepositoryTestCase {
+
+	@Before
+	public void setup() throws IOException {
+		FileBasedConfig jGitConfig = mockSystemReader.getJGitConfig();
+		jGitConfig.setInt(ConfigConstants.CONFIG_PACK_SECTION, null,
+				ConfigConstants.CONFIG_KEY_MIN_BYTES_OBJ_SIZE_INDEX, 7);
+		jGitConfig.save();
+	}
+
+	/**
+	 * Test indexing one of the test packs in the egit repo. It has deltas.
+	 *
+	 * @throws IOException
+	 */
+	@Test
+	public void testGitPack() throws IOException {
+		File packFile = JGitTestUtil.getTestResourceFile("pack-34be9032ac282b11fa9babdc2b2a93ca996c9c2f.pack");
+		try (InputStream is = new FileInputStream(packFile)) {
+			ObjectDirectoryPackParser p = index(is);
+			p.parse(NullProgressMonitor.INSTANCE);
+
+			Pack pack = p.getPack();
+			assertTrue(pack.hasObjectSizeIndex());
+
+			// Only blobs in the pack
+			ObjectId blob1 = ObjectId
+					.fromString("6ff87c4664981e4397625791c8ea3bbb5f2279a3");
+			ObjectId blob2 = ObjectId
+					.fromString("5b6e7c66c276e7610d4a73c70ec1a1f7c1003259");
+			assertEquals(18787, pack.getIndexedObjectSize(blob1));
+			assertEquals(18009, pack.getIndexedObjectSize(blob2));
+
+			// Indexed sizes match object db sizes
+			assertEquals(db.getObjectDatabase().open(blob1).getSize(),
+					pack.getIndexedObjectSize(blob1));
+			assertEquals(db.getObjectDatabase().open(blob2).getSize(),
+					pack.getIndexedObjectSize(blob2));
+
+		}
+	}
+
+	/**
+	 * This is just another pack. It so happens that we have two convenient pack to
+	 * test with in the repository.
+	 *
+	 * @throws IOException
+	 */
+	@Test
+	public void testAnotherGitPack() throws IOException {
+		File packFile = JGitTestUtil.getTestResourceFile("pack-df2982f284bbabb6bdb59ee3fcc6eb0983e20371.pack");
+		try (InputStream is = new FileInputStream(packFile)) {
+			ObjectDirectoryPackParser p = index(is);
+			p.parse(NullProgressMonitor.INSTANCE);
+			Pack pack = p.getPack();
+
+			// Blob smaller than threshold:
+			assertEquals(-1, pack.getIndexedObjectSize(ObjectId
+					.fromString("15fae9e651043de0fd1deef588aa3fbf5a7a41c6")));
+
+			// Blob bigger than threshold
+			assertEquals(10, pack.getIndexedObjectSize(ObjectId
+					.fromString("8230f48330e0055d9e0bc5a2a77718f6dd9324b8")));
+
+			// A commit (not indexed)
+			assertEquals(-1, pack.getIndexedObjectSize(ObjectId
+					.fromString("d0114ab8ac326bab30e3a657a0397578c5a1af88")));
+
+			// Object not in pack
+			assertEquals(-1, pack.getIndexedObjectSize(ObjectId
+					.fromString("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")));
+		}
+	}
+
+	@Test
+	public void testTinyThinPack() throws Exception {
+		// less than 16 bytes, so its length fits in a single byte later
+		String base = "abcdefghijklmn";
+		RevBlob a;
+		try (TestRepository d = new TestRepository<Repository>(db)) {
+			a = d.blob(base);
+		}
+
+		TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024);
+
+		packHeader(pack, 1);
+
+		pack.write(Constants.OBJ_REF_DELTA << 4 | 4);
+		a.copyRawTo(pack);
+		deflate(pack, new byte[] { (byte) base.length(), // size of the base
+				(byte) (base.length() + 1), // size after reconstruction
+				0x1, 'b' }); // append one byte
+
+		digest(pack);
+
+		ObjectDirectoryPackParser p = index(new ByteArrayInputStream(pack.toByteArray()));
+		p.setAllowThin(true);
+		p.parse(NullProgressMonitor.INSTANCE);
+
+		Pack writtenPack = p.getPack();
+		// base
+		assertEquals(base.length(), writtenPack.getIndexedObjectSize(a));
+		// undeltified blob
+		assertEquals(base.length() + 1,
+				writtenPack.getIndexedObjectSize(ObjectId.fromString(
+						"f177875498138143c9657cc52b049ad4d20d5223")));
+	}
+
+	@Test
+	public void testPackWithDuplicateBlob() throws Exception {
+		final byte[] data = Constants.encode("0123456789abcdefg");
+		RevBlob blob;
+		try (TestRepository<Repository> d = new TestRepository<>(db)) {
+			blob = d.blob(data);
+			assertTrue(db.getObjectDatabase().has(blob));
+		}
+
+		TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024);
+		packHeader(pack, 1);
+		pack.write(Constants.OBJ_BLOB << 4 | 0x80 | 1);
+		pack.write(1);
+		deflate(pack, data);
+		digest(pack);
+
+		ObjectDirectoryPackParser p = index(
+				new ByteArrayInputStream(pack.toByteArray()));
+		p.setAllowThin(false);
+		p.parse(NullProgressMonitor.INSTANCE);
+
+		assertEquals(data.length, p.getPack().getIndexedObjectSize(blob));
+	}
+
+	private static void packHeader(TemporaryBuffer.Heap tinyPack, int cnt)
+			throws IOException {
+		final byte[] hdr = new byte[8];
+		NB.encodeInt32(hdr, 0, 2);
+		NB.encodeInt32(hdr, 4, cnt);
+
+		tinyPack.write(Constants.PACK_SIGNATURE);
+		tinyPack.write(hdr, 0, 8);
+	}
+
+	private static void deflate(TemporaryBuffer.Heap tinyPack,
+			final byte[] content)
+			throws IOException {
+		final Deflater deflater = new Deflater();
+		final byte[] buf = new byte[128];
+		deflater.setInput(content, 0, content.length);
+		deflater.finish();
+		do {
+			final int n = deflater.deflate(buf, 0, buf.length);
+			if (n > 0)
+				tinyPack.write(buf, 0, n);
+		} while (!deflater.finished());
+	}
+
+	private static void digest(TemporaryBuffer.Heap buf) throws IOException {
+		MessageDigest md = Constants.newMessageDigest();
+		md.update(buf.toByteArray());
+		buf.write(md.digest());
+	}
+
+	private ObjectInserter inserter;
+
+	@After
+	public void release() {
+		if (inserter != null) {
+			inserter.close();
+		}
+	}
+
+	private ObjectDirectoryPackParser index(InputStream in) throws IOException {
+		if (inserter == null)
+			inserter = db.newObjectInserter();
+		return (ObjectDirectoryPackParser) inserter.newPackParser(in);
+	}
+}
diff --git a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF
index e487510..498fa2a 100644
--- a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF
@@ -4,14 +4,15 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ui
 Bundle-SymbolicName: org.eclipse.jgit.ui
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-RequiredExecutionEnvironment: JavaSE-17
-Export-Package: org.eclipse.jgit.awtui;version="7.3.1"
-Import-Package: org.eclipse.jgit.errors;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.lib;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.nls;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revplot;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.revwalk;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.transport;version="[7.3.1,7.4.0)",
- org.eclipse.jgit.util;version="[7.3.1,7.4.0)"
+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.4.1"
+Import-Package: org.eclipse.jgit.errors;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.lib;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.nls;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revplot;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.revwalk;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.transport;version="[7.4.1,7.5.0)",
+ org.eclipse.jgit.util;version="[7.4.1,7.5.0)"
diff --git a/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF
index d272a1b..43332a0 100644
--- a/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,6 @@
 Bundle-Name: org.eclipse.jgit.ui - Sources
 Bundle-SymbolicName: org.eclipse.jgit.ui.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.3.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ui;version="7.3.1.qualifier";roots="."
+Bundle-Version: 7.4.1.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.4.1.qualifier";roots="."
diff --git a/org.eclipse.jgit.ui/pom.xml b/org.eclipse.jgit.ui/pom.xml
index 5c67272..8fd243e 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 9549aae..de88670 100644
--- a/org.eclipse.jgit/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit/META-INF/MANIFEST.MF
@@ -3,14 +3,16 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit
 Bundle-SymbolicName: org.eclipse.jgit
-Bundle-Version: 7.3.1.qualifier
+Bundle-Version: 7.4.1.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
 Service-Component: OSGI-INF/org.eclipse.jgit.internal.util.CleanupService.xml
 Eclipse-ExtensibleAPI: true
-Export-Package: org.eclipse.jgit.annotations;version="7.3.1",
- org.eclipse.jgit.api;version="7.3.1";
+Export-Package: org.eclipse.jgit.annotations;version="7.4.1",
+ org.eclipse.jgit.api;version="7.4.1";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.notes,
    org.eclipse.jgit.dircache,
@@ -25,21 +27,21 @@
    org.eclipse.jgit.revwalk.filter,
    org.eclipse.jgit.blame,
    org.eclipse.jgit.merge",
- org.eclipse.jgit.api.errors;version="7.3.1";
+ org.eclipse.jgit.api.errors;version="7.4.1";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.errors",
- org.eclipse.jgit.attributes;version="7.3.1";
+ org.eclipse.jgit.attributes;version="7.4.1";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.treewalk",
- org.eclipse.jgit.blame;version="7.3.1";
+ org.eclipse.jgit.blame;version="7.4.1";
   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.3.1";
+ org.eclipse.jgit.blame.cache;version="7.4.1";
   uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.diff;version="7.3.1";
+ org.eclipse.jgit.diff;version="7.4.1";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.patch,
@@ -47,55 +49,55 @@
    org.eclipse.jgit.treewalk.filter,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.util",
- org.eclipse.jgit.dircache;version="7.3.1";
+ org.eclipse.jgit.dircache;version="7.4.1";
   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.3.1";
+ org.eclipse.jgit.errors;version="7.4.1";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.dircache,
    org.eclipse.jgit.lib",
- org.eclipse.jgit.events;version="7.3.1";
+ org.eclipse.jgit.events;version="7.4.1";
   uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.fnmatch;version="7.3.1",
- org.eclipse.jgit.gitrepo;version="7.3.1";
+ org.eclipse.jgit.fnmatch;version="7.4.1",
+ org.eclipse.jgit.gitrepo;version="7.4.1";
   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.3.1";x-internal:=true,
- org.eclipse.jgit.hooks;version="7.3.1";
+ org.eclipse.jgit.gitrepo.internal;version="7.4.1";x-internal:=true,
+ org.eclipse.jgit.hooks;version="7.4.1";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.util",
- org.eclipse.jgit.ignore;version="7.3.1",
- org.eclipse.jgit.ignore.internal;version="7.3.1";
+ org.eclipse.jgit.ignore;version="7.4.1",
+ org.eclipse.jgit.ignore.internal;version="7.4.1";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal;version="7.3.1";
+ org.eclipse.jgit.internal;version="7.4.1";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.http.test",
- org.eclipse.jgit.internal.diff;version="7.3.1";
+ org.eclipse.jgit.internal.diff;version="7.4.1";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.diffmergetool;version="7.3.1";
+ org.eclipse.jgit.internal.diffmergetool;version="7.4.1";
   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.3.1";
+ org.eclipse.jgit.internal.fsck;version="7.4.1";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.revwalk;version="7.3.1";
+ org.eclipse.jgit.internal.revwalk;version="7.4.1";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.commitgraph;version="7.3.1";
+ org.eclipse.jgit.internal.storage.commitgraph;version="7.4.1";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.dfs;version="7.3.1";
+ org.eclipse.jgit.internal.storage.dfs;version="7.4.1";
   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.3.1";
+ org.eclipse.jgit.internal.storage.file;version="7.4.1";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.junit,
    org.eclipse.jgit.junit.http,
@@ -104,37 +106,37 @@
    org.eclipse.jgit.pgm,
    org.eclipse.jgit.pgm.test,
    org.eclipse.jgit.ssh.apache",
- org.eclipse.jgit.internal.storage.io;version="7.3.1";
+ org.eclipse.jgit.internal.storage.io;version="7.4.1";
   x-friends:="org.eclipse.jgit.junit,
    org.eclipse.jgit.test,
    org.eclipse.jgit.pgm",
- org.eclipse.jgit.internal.storage.memory;version="7.3.1";
+ org.eclipse.jgit.internal.storage.memory;version="7.4.1";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.midx;version="7.3.1";x-internal:=true,
- org.eclipse.jgit.internal.storage.pack;version="7.3.1";
+ org.eclipse.jgit.internal.storage.midx;version="7.4.1";x-internal:=true,
+ org.eclipse.jgit.internal.storage.pack;version="7.4.1";
   x-friends:="org.eclipse.jgit.junit,
    org.eclipse.jgit.test,
    org.eclipse.jgit.pgm",
- org.eclipse.jgit.internal.storage.reftable;version="7.3.1";
+ org.eclipse.jgit.internal.storage.reftable;version="7.4.1";
   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.3.1";x-internal:=true,
- org.eclipse.jgit.internal.transport.connectivity;version="7.3.1";
+ org.eclipse.jgit.internal.submodule;version="7.4.1";x-internal:=true,
+ org.eclipse.jgit.internal.transport.connectivity;version="7.4.1";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.http;version="7.3.1";
+ org.eclipse.jgit.internal.transport.http;version="7.4.1";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.parser;version="7.3.1";
+ org.eclipse.jgit.internal.transport.parser;version="7.4.1";
   x-friends:="org.eclipse.jgit.http.server,
    org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.ssh;version="7.3.1";
+ org.eclipse.jgit.internal.transport.ssh;version="7.4.1";
   x-friends:="org.eclipse.jgit.ssh.apache,
    org.eclipse.jgit.ssh.jsch,
    org.eclipse.jgit.test",
- org.eclipse.jgit.internal.util;version="7.3.1";
+ org.eclipse.jgit.internal.util;version="7.4.1";
   x-friends:="org.eclipse.jgit.junit",
- org.eclipse.jgit.lib;version="7.3.1";
+ org.eclipse.jgit.lib;version="7.4.1";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.util.sha1,
    org.eclipse.jgit.dircache,
@@ -149,12 +151,12 @@
    org.eclipse.jgit.util,
    org.eclipse.jgit.submodule,
    org.eclipse.jgit.util.time",
- org.eclipse.jgit.lib.internal;version="7.3.1";
+ org.eclipse.jgit.lib.internal;version="7.4.1";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.pgm,
    org.eclipse.egit.ui",
- org.eclipse.jgit.logging;version="7.3.1",
- org.eclipse.jgit.merge;version="7.3.1";
+ org.eclipse.jgit.logging;version="7.4.1",
+ org.eclipse.jgit.merge;version="7.4.1";
   uses:="org.eclipse.jgit.dircache,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
@@ -163,42 +165,42 @@
    org.eclipse.jgit.util,
    org.eclipse.jgit.api,
    org.eclipse.jgit.attributes",
- org.eclipse.jgit.nls;version="7.3.1",
- org.eclipse.jgit.notes;version="7.3.1";
+ org.eclipse.jgit.nls;version="7.4.1",
+ org.eclipse.jgit.notes;version="7.4.1";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.merge",
- org.eclipse.jgit.patch;version="7.3.1";
+ org.eclipse.jgit.patch;version="7.4.1";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.diff",
- org.eclipse.jgit.revplot;version="7.3.1";
+ org.eclipse.jgit.revplot;version="7.4.1";
   uses:="org.eclipse.jgit.revwalk,
    org.eclipse.jgit.lib",
- org.eclipse.jgit.revwalk;version="7.3.1";
+ org.eclipse.jgit.revwalk;version="7.4.1";
   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.3.1";
+ org.eclipse.jgit.revwalk.filter;version="7.4.1";
   uses:="org.eclipse.jgit.revwalk,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.util",
- org.eclipse.jgit.storage.file;version="7.3.1";
+ org.eclipse.jgit.storage.file;version="7.4.1";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.util",
- org.eclipse.jgit.storage.pack;version="7.3.1";
+ org.eclipse.jgit.storage.pack;version="7.4.1";
   uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.submodule;version="7.3.1";
+ org.eclipse.jgit.submodule;version="7.4.1";
   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.3.1";
+ org.eclipse.jgit.transport;version="7.4.1";
   uses:="javax.crypto,
    org.eclipse.jgit.hooks,
    org.eclipse.jgit.util.io,
@@ -211,21 +213,21 @@
    org.eclipse.jgit.transport.resolver,
    org.eclipse.jgit.storage.pack,
    org.eclipse.jgit.errors",
- org.eclipse.jgit.transport.http;version="7.3.1";
+ org.eclipse.jgit.transport.http;version="7.4.1";
   uses:="javax.net.ssl",
- org.eclipse.jgit.transport.resolver;version="7.3.1";
+ org.eclipse.jgit.transport.resolver;version="7.4.1";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.lib",
- org.eclipse.jgit.treewalk;version="7.3.1";
+ org.eclipse.jgit.treewalk;version="7.4.1";
   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.3.1";
+ org.eclipse.jgit.treewalk.filter;version="7.4.1";
   uses:="org.eclipse.jgit.treewalk",
- org.eclipse.jgit.util;version="7.3.1";
+ org.eclipse.jgit.util;version="7.4.1";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.hooks,
    org.eclipse.jgit.revwalk,
@@ -238,13 +240,12 @@
    org.eclipse.jgit.treewalk,
    javax.net.ssl,
    org.eclipse.jgit.util.time",
- org.eclipse.jgit.util.io;version="7.3.1";
+ org.eclipse.jgit.util.io;version="7.4.1";
   uses:="org.eclipse.jgit.attributes,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.treewalk",
- org.eclipse.jgit.util.sha1;version="7.3.1",
- org.eclipse.jgit.util.time;version="7.3.1"
-Bundle-RequiredExecutionEnvironment: JavaSE-17
+ org.eclipse.jgit.util.sha1;version="7.4.1",
+ org.eclipse.jgit.util.time;version="7.4.1"
 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 b5dfafe..7637f70 100644
--- a/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,6 @@
 Bundle-Name: org.eclipse.jgit - Sources
 Bundle-SymbolicName: org.eclipse.jgit.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.3.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit;version="7.3.1.qualifier";roots="."
+Bundle-Version: 7.4.1.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.4.1.qualifier";roots="."
diff --git a/org.eclipse.jgit/pom.xml b/org.eclipse.jgit/pom.xml
index ba560bc..286d41e 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.3.1-SNAPSHOT</version>
+    <version>7.4.1-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 01c8cff..e24cba6 100644
--- a/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
+++ b/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
@@ -160,7 +160,7 @@
 commitGraphChunkRepeated=commit-graph chunk id 0x{0} appears multiple times
 commitGraphChunkUnknown=unknown commit-graph chunk: 0x{0}
 commitGraphFileIsTooLargeForJgit=commit-graph file is too large for jgit
-commitGraphUnexpectedSize=Commit-graph: expected %d bytes but out has %d bytes
+commitGraphUnexpectedSize=Commit-graph: expected {0} bytes but out has {1} bytes
 commitGraphWritingCancelled=commit-graph writing was canceled
 commitMessageNotSpecified=commit message not specified
 commitOnRepoWithoutHEADCurrentlyNotSupported=Commit on repo without HEAD currently not supported
@@ -533,8 +533,8 @@
 months=months
 monthsAgo={0} months ago
 multiPackIndexFileIsTooLargeForJgit=Multipack index file is too large for jgit
-multiPackIndexPackCountMismatch=Multipack index: header mentions %d packs but packfile names chunk has %d
-multiPackIndexUnexpectedSize=MultiPack index: expected %d bytes but out has %d bytes
+multiPackIndexPackCountMismatch=Multipack index: header mentions {0} packs but packfile names chunk has {1}
+multiPackIndexUnexpectedSize=MultiPack index: expected {0} bytes but out has {1} bytes
 multiPackIndexWritingCancelled=Multipack index writing was canceled
 multipleMergeBasesFor=Multiple merge bases for:\n  {0}\n  {1} found:\n  {2}\n  {3}
 nameMustNotBeNullOrEmpty=Ref name must not be null or empty.
@@ -848,7 +848,7 @@
 unknownObjectType=Unknown object type {0}.
 unknownObjectType2=unknown
 unknownPackExtension=Unknown pack extension: {0}.{1}.{2}={3}
-unknownPositionEncoding=Unknown position encoding %s
+unknownPositionEncoding=Unknown position encoding {0}
 unknownRefStorageFormat=Unknown ref storage format "{0}"
 unknownRepositoryFormat=Unknown repository format
 unknownRepositoryFormat2=Unknown repository format "{0}"; expected "0".
@@ -873,7 +873,7 @@
 unsupportedEncryptionVersion=Unsupported encryption version: {0}
 unsupportedGC=Unsupported garbage collector for repository type: {0}
 unsupportedMark=Mark not supported
-unsupportedMIDXVersion=Unsupported MIDX version
+unsupportedMIDXVersion=Unsupported MIDX version {0}
 unsupportedObjectSizeIndexVersion=Unsupported object size index version {0}
 unsupportedOperationNotAddAtEnd=Not add-at-end: {0}
 unsupportedPackIndexVersion=Unsupported pack index version {0}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java
index 5bc035a..a8b866d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java
@@ -201,7 +201,24 @@ public Git(Repository repo) {
 		this(repo, false);
 	}
 
-	Git(Repository repo, boolean closeRepo) {
+	/**
+	 * Construct a new {@link org.eclipse.jgit.api.Git} object which can
+	 * interact with the specified git repository.
+	 * <p>
+	 * All command classes returned by methods of this class will always
+	 * interact with this git repository.
+	 * <p>
+	 * If {@code closeRepo = false} the caller is responsible for closing the
+	 * repository.
+	 *
+	 * @param repo
+	 *            the git repository this class is interacting with;
+	 *            {@code null} is not allowed.
+	 * @param closeRepo
+	 *            whether to close the repository when this instance is closed
+	 * @since 7.4
+	 */
+	public Git(Repository repo, boolean closeRepo) {
 		this.repo = requireNonNull(repo);
 		this.closeRepo = closeRepo;
 	}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java
index efd666f..1a873d1 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java
@@ -52,16 +52,6 @@ public abstract class DfsObjDatabase extends ObjectDatabase {
 		boolean dirty() {
 			return true;
 		}
-
-		@Override
-		void clearDirty() {
-			// Always dirty.
-		}
-
-		@Override
-		public void markDirty() {
-			// Always dirty.
-		}
 	};
 
 	/**
@@ -534,7 +524,7 @@ void addPack(DfsPackFile newPack) throws IOException {
 			DfsPackFile[] packs = new DfsPackFile[1 + o.packs.length];
 			packs[0] = newPack;
 			System.arraycopy(o.packs, 0, packs, 1, o.packs.length);
-			n = new PackListImpl(packs, o.reftables);
+			n = new PackList(packs, o.reftables);
 		} while (!packList.compareAndSet(o, n));
 	}
 
@@ -559,7 +549,7 @@ void addReftable(DfsPackDescription add, Set<DfsPackDescription> remove)
 				}
 			}
 			tables.add(new DfsReftable(add));
-			n = new PackListImpl(o.packs, tables.toArray(new DfsReftable[0]));
+			n = new PackList(o.packs, tables.toArray(new DfsReftable[0]));
 		} while (!packList.compareAndSet(o, n));
 	}
 
@@ -613,13 +603,12 @@ private PackList scanPacksImpl(PackList old) throws IOException {
 		}
 
 		if (newPacks.isEmpty() && newReftables.isEmpty())
-			return new PackListImpl(NO_PACKS.packs, NO_PACKS.reftables);
+			return new PackList(NO_PACKS.packs, NO_PACKS.reftables);
 		if (!foundNew) {
-			old.clearDirty();
 			return old;
 		}
 		Collections.sort(newReftables, reftableComparator());
-		return new PackListImpl(
+		return new PackList(
 				newPacks.toArray(new DfsPackFile[0]),
 				newReftables.toArray(new DfsReftable[0]));
 	}
@@ -685,7 +674,7 @@ public void close() {
 	}
 
 	/** Snapshot of packs scanned in a single pass. */
-	public abstract static class PackList {
+	public static class PackList {
 		/** All known packs, sorted. */
 		public final DfsPackFile[] packs;
 
@@ -715,39 +704,8 @@ public long getLastModified() {
 			return lastModified;
 		}
 
-		abstract boolean dirty();
-		abstract void clearDirty();
-
-		/**
-		 * Mark pack list as dirty.
-		 * <p>
-		 * Used when the caller knows that new data might have been written to the
-		 * repository that could invalidate open readers depending on this pack list,
-		 * for example if refs are newly scanned.
-		 */
-		public abstract void markDirty();
-	}
-
-	private static final class PackListImpl extends PackList {
-		private volatile boolean dirty;
-
-		PackListImpl(DfsPackFile[] packs, DfsReftable[] reftables) {
-			super(packs, reftables);
-		}
-
-		@Override
 		boolean dirty() {
-			return dirty;
-		}
-
-		@Override
-		void clearDirty() {
-			dirty = false;
-		}
-
-		@Override
-		public void markDirty() {
-			dirty = true;
+			return false;
 		}
 	}
 
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java
index 618969f..05b63ea 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java
@@ -442,6 +442,10 @@ public boolean hasObject(DfsReader ctx, AnyObjectId id) throws IOException {
 		return 0 < offset && !isCorrupt(offset);
 	}
 
+	int findIdxPosition(DfsReader ctx, AnyObjectId id) throws IOException {
+		return idx(ctx).findPosition(id);
+	}
+
 	/**
 	 * Get an object from this pack.
 	 *
@@ -1164,31 +1168,29 @@ int getObjectSizeIndexThreshold(DfsReader ctx) throws IOException {
 	/**
 	 * Return the size of the object from the object-size index. The object
 	 * should be a blob. Any other type is not indexed and returns -1.
-	 *
-	 * Caller MUST be sure that the object is in the pack (e.g. with
-	 * {@link #hasObject(DfsReader, AnyObjectId)}) and the pack has object size
-	 * index (e.g. with {@link #hasObjectSizeIndex(DfsReader)}) before asking
-	 * the indexed size.
+	 * <p>
+	 * Caller MUST pass a valid index position, as returned by
+	 * {@link #findIdxPosition(DfsReader, AnyObjectId)} and verify the pack has
+	 * object size index (e.g. with {@link #hasObjectSizeIndex(DfsReader)})
+	 * before asking the indexed size.
 	 *
 	 * @param ctx
 	 *            reader context to support reading from the backing store if
 	 *            the object size index is not already loaded in memory.
-	 * @param id
-	 *            object id of an object in the pack
+	 * @param idxPosition
+	 *            position in the primary index of the object we are looking
+	 *            for, as returned by findIdxPosition
 	 * @return size of the object from the index. Negative if object is not in
 	 *         the index (below threshold or not a blob)
 	 * @throws IOException
 	 *             could not read the object size index. IO problem or the pack
 	 *             doesn't have it.
 	 */
-	long getIndexedObjectSize(DfsReader ctx, AnyObjectId id)
+	long getIndexedObjectSize(DfsReader ctx, int idxPosition)
 			throws IOException {
-		int idxPosition = idx(ctx).findPosition(id);
 		if (idxPosition < 0) {
-			throw new IllegalArgumentException(
-					"Cannot get size from index since object is not in pack"); //$NON-NLS-1$
+			throw new IllegalArgumentException("Invalid index position"); //$NON-NLS-1$
 		}
-
 		PackObjectSizeIndex sizeIdx = getObjectSizeIndex(ctx);
 		if (sizeIdx == null) {
 			throw new IllegalStateException(
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java
index 04288bc..f50cd59 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java
@@ -187,31 +187,44 @@ private void resolveImpl(PackList packList, AbbreviatedObjectId id,
 
 	@Override
 	public boolean has(AnyObjectId objectId) throws IOException {
-		if (last != null
-				&& !skipGarbagePack(last)
-				&& last.hasObject(this, objectId))
-			return true;
-		PackList packList = db.getPackList();
-		if (hasImpl(packList, objectId)) {
-			return true;
-		} else if (packList.dirty()) {
-			stats.scanPacks++;
-			return hasImpl(db.scanPacks(packList), objectId);
-		}
-		return false;
+		return findPack(objectId) >= 0;
 	}
 
-	private boolean hasImpl(PackList packList, AnyObjectId objectId)
+	private int findPack(AnyObjectId objectId) throws IOException {
+		if (last != null
+				&& !skipGarbagePack(last)) {
+			int idxPos = last.findIdxPosition(this, objectId);
+			if (idxPos >= 0) {
+				return idxPos;
+			}
+		}
+
+		PackList packList = db.getPackList();
+		int idxPos = findInPackList(packList, objectId);
+		if (idxPos >= 0) {
+			return idxPos;
+		} else if (packList.dirty()) {
+			stats.scanPacks++;
+			idxPos = findInPackList(db.scanPacks(packList), objectId);
+			return idxPos;
+		}
+		return -1;
+	}
+
+	// Leave "last" pointing to the pack and return the idx position of the
+	// object (-1 if not found)
+	private int findInPackList(PackList packList, AnyObjectId objectId)
 			throws IOException {
 		for (DfsPackFile pack : packList.packs) {
 			if (pack == last || skipGarbagePack(pack))
 				continue;
-			if (pack.hasObject(this, objectId)) {
+			int idxPos = pack.findIdxPosition(this, objectId);
+			if (idxPos >= 0) {
 				last = pack;
-				return true;
+				return idxPos;
 			}
 		}
-		return false;
+		return -1;
 	}
 
 	@Override
@@ -499,8 +512,8 @@ public void release() {
 	public long getObjectSize(AnyObjectId objectId, int typeHint)
 			throws MissingObjectException, IncorrectObjectTypeException,
 			IOException {
-		DfsPackFile pack = findPackWithObject(objectId);
-		if (pack == null) {
+		int idxPos = findPack(objectId);
+		if (idxPos < 0) {
 			if (typeHint == OBJ_ANY) {
 				throw new MissingObjectException(objectId.copy(),
 						JGitText.get().unknownObjectType2);
@@ -508,16 +521,15 @@ public long getObjectSize(AnyObjectId objectId, int typeHint)
 			throw new MissingObjectException(objectId.copy(), typeHint);
 		}
 
-		if (typeHint != Constants.OBJ_BLOB || !safeHasObjectSizeIndex(pack)) {
-			return pack.getObjectSize(this, objectId);
+		if (typeHint != Constants.OBJ_BLOB || !safeHasObjectSizeIndex(last)) {
+			return last.getObjectSize(this, objectId);
 		}
 
-		Optional<Long> maybeSz = safeGetIndexedObjectSize(pack, objectId);
-		long sz = maybeSz.orElse(-1L);
+		long sz = safeGetIndexedObjectSize(last, idxPos);
 		if (sz >= 0) {
 			return sz;
 		}
-		return pack.getObjectSize(this, objectId);
+		return last.getObjectSize(this, objectId);
 	}
 
 
@@ -525,8 +537,8 @@ public long getObjectSize(AnyObjectId objectId, int typeHint)
 	public boolean isNotLargerThan(AnyObjectId objectId, int typeHint,
 			long limit) throws MissingObjectException,
 			IncorrectObjectTypeException, IOException {
-		DfsPackFile pack = findPackWithObject(objectId);
-		if (pack == null) {
+		int idxPos = findPack(objectId);
+		if (idxPos < 0) {
 			if (typeHint == OBJ_ANY) {
 				throw new MissingObjectException(objectId.copy(),
 						JGitText.get().unknownObjectType2);
@@ -535,28 +547,22 @@ public boolean isNotLargerThan(AnyObjectId objectId, int typeHint,
 		}
 
 		stats.isNotLargerThanCallCount += 1;
-		if (typeHint != Constants.OBJ_BLOB || !safeHasObjectSizeIndex(pack)) {
-			return pack.getObjectSize(this, objectId) <= limit;
+		if (typeHint != Constants.OBJ_BLOB || !safeHasObjectSizeIndex(last)) {
+			return last.getObjectSize(this, objectId) <= limit;
 		}
 
-		Optional<Long> maybeSz = safeGetIndexedObjectSize(pack, objectId);
-		if (maybeSz.isEmpty()) {
-			// Exception in object size index
-			return pack.getObjectSize(this, objectId) <= limit;
-		}
-
-		long sz = maybeSz.get();
+		long sz = safeGetIndexedObjectSize(last, idxPos);
 		if (sz >= 0) {
 			return sz <= limit;
 		}
 
-		if (isLimitInsideIndexThreshold(pack, limit)) {
+		if (isLimitInsideIndexThreshold(last, limit)) {
 			// With threshold T, not-found means object < T
 			// If limit L > T, then object < T < L
 			return true;
 		}
 
-		return pack.getObjectSize(this, objectId) <= limit;
+		return last.getObjectSize(this, objectId) <= limit;
 	}
 
 	private boolean safeHasObjectSizeIndex(DfsPackFile pack) {
@@ -567,21 +573,22 @@ private boolean safeHasObjectSizeIndex(DfsPackFile pack) {
 		}
 	}
 
-	private Optional<Long> safeGetIndexedObjectSize(DfsPackFile pack,
-			AnyObjectId objectId) {
+	private long safeGetIndexedObjectSize(DfsPackFile pack,
+			int idxPos) {
 		long sz;
 		try {
-			sz = pack.getIndexedObjectSize(this, objectId);
+			sz = pack.getIndexedObjectSize(this, idxPos);
 		} catch (IOException e) {
-			// Do not count the exception as an index miss
-			return Optional.empty();
+			// If there is any error in the index, we should have seen it
+			// on hasObjectSizeIndex.
+			throw new IllegalStateException(e);
 		}
 		if (sz < 0) {
 			stats.objectSizeIndexMiss += 1;
 		} else {
 			stats.objectSizeIndexHit += 1;
 		}
-		return Optional.of(sz);
+		return sz;
 	}
 
 	private boolean isLimitInsideIndexThreshold(DfsPackFile pack, long limit) {
@@ -592,25 +599,6 @@ private boolean isLimitInsideIndexThreshold(DfsPackFile pack, long limit) {
 		}
 	}
 
-	private DfsPackFile findPackWithObject(AnyObjectId objectId)
-			throws IOException {
-		if (last != null && !skipGarbagePack(last)
-				&& last.hasObject(this, objectId)) {
-			return last;
-		}
-		PackList packList = db.getPackList();
-		// hasImpl doesn't check "last", but leaves "last" pointing to the pack
-		// with the object
-		if (hasImpl(packList, objectId)) {
-			return last;
-		} else if (packList.dirty()) {
-			if (hasImpl(db.getPackList(), objectId)) {
-				return last;
-			}
-		}
-		return null;
-	}
-
 	@Override
 	public DfsObjectToPack newObjectToPack(AnyObjectId objectId, int type) {
 		return new DfsObjectToPack(objectId, type);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
index 641190a..7c6a304 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
@@ -14,6 +14,7 @@
 import static org.eclipse.jgit.internal.storage.pack.PackExt.COMMIT_GRAPH;
 import static org.eclipse.jgit.internal.storage.pack.PackExt.INDEX;
 import static org.eclipse.jgit.internal.storage.pack.PackExt.KEEP;
+import static org.eclipse.jgit.internal.storage.pack.PackExt.OBJECT_SIZE_INDEX;
 import static org.eclipse.jgit.internal.storage.pack.PackExt.PACK;
 import static org.eclipse.jgit.internal.storage.pack.PackExt.REVERSE_INDEX;
 
@@ -131,7 +132,7 @@ public class GC {
 	private static final Set<PackExt> PARENT_EXTS = Set.of(PACK, KEEP);
 
 	private static final Set<PackExt> CHILD_EXTS = Set.of(BITMAP_INDEX, INDEX,
-			REVERSE_INDEX);
+            REVERSE_INDEX, OBJECT_SIZE_INDEX);
 
 	private static final int DEFAULT_AUTOPACKLIMIT = 50;
 
@@ -412,6 +413,10 @@ private void deleteOldPacks(Collection<Pack> oldPacks,
 	 */
 	private void removeOldPack(PackFile packFile, int deleteOptions)
 			throws IOException {
+		if (!packFile.exists()) {
+			return;
+		}
+
 		if (pconfig.isPreserveOldPacks()) {
 			File oldPackDir = repo.getObjectDatabase().getPreservedDirectory();
 			FileUtils.mkdir(oldPackDir, true);
@@ -1336,6 +1341,7 @@ private Pack writePack(@NonNull Set<? extends ObjectId> want,
 				idxChannel.force(true);
 			}
 
+
 			if (pw.isReverseIndexEnabled()) {
 				File tmpReverseIndexFile = new File(packdir,
 						tmpBase + REVERSE_INDEX.getTmpExtension());
@@ -1352,6 +1358,19 @@ private Pack writePack(@NonNull Set<? extends ObjectId> want,
 								.newOutputStream(channel)) {
 					pw.writeReverseIndex(stream);
 					channel.force(true);
+                                }
+                        }
+
+			// write the object size
+			if (pconfig.isWriteObjSizeIndex()) {
+				File tmpSizeIdx = new File(packdir, tmpBase + ".objsize_tmp"); //$NON-NLS-1$
+				tmpExts.put(OBJECT_SIZE_INDEX, tmpSizeIdx);
+				try (FileOutputStream fos = new FileOutputStream(tmpSizeIdx);
+						FileChannel idxChannel = fos.getChannel();
+						OutputStream idxStream = Channels
+								.newOutputStream(idxChannel)) {
+					pw.writeObjectSizeIndex(idxStream);
+					idxChannel.force(true);
 				}
 			}
 
@@ -1521,6 +1540,11 @@ public static class RepoStatistics {
 		 */
 		public long numberOfBitmaps;
 
+		/**
+		 * The number of objects in the size-index of the packs
+		 */
+		public long numberOfSizeIndexedObjects;
+
 		@Override
 		public String toString() {
 			final StringBuilder b = new StringBuilder();
@@ -1536,6 +1560,8 @@ public String toString() {
 			b.append(", sizeOfLooseObjects=").append(sizeOfLooseObjects); //$NON-NLS-1$
 			b.append(", sizeOfPackedObjects=").append(sizeOfPackedObjects); //$NON-NLS-1$
 			b.append(", numberOfBitmaps=").append(numberOfBitmaps); //$NON-NLS-1$
+			b.append(", numberOfSizeIndexedObjects=") //$NON-NLS-1$
+					.append(numberOfSizeIndexedObjects);
 			return b.toString();
 		}
 	}
@@ -1544,7 +1570,7 @@ public String toString() {
 	 * Returns information about objects and pack files for a FileRepository.
 	 *
 	 * @return information about objects and pack files for a FileRepository
-	 * @throws java.io.IOException
+         * @throws java.io.IOException
 	 *             if an IO error occurred
 	 */
 	public RepoStatistics getStatistics() throws IOException {
@@ -1556,16 +1582,16 @@ public RepoStatistics getStatistics() throws IOException {
 			ret.numberOfPackedObjects += packedObjects;
 			ret.numberOfPackFiles++;
 			ret.sizeOfPackedObjects += p.getPackFile().length();
+			ret.numberOfSizeIndexedObjects += p.getObjectSizeIndexCount();
 			if (p.getBitmapIndex() != null) {
 				ret.numberOfBitmaps += p.getBitmapIndex().getBitmapCount();
 				if (latestBitmapTime == 0L) {
 					latestBitmapTime = p.getFileSnapshot().lastModifiedInstant().toEpochMilli();
 				}
-			}
-			else if (latestBitmapTime == 0L) {
-				ret.numberOfPackFilesSinceBitmap++;
-				ret.numberOfObjectsSinceBitmap += packedObjects;
-			}
+			} else if (latestBitmapTime == 0L) {
+                          ret.numberOfPackFilesSinceBitmap++;
+                          ret.numberOfObjectsSinceBitmap += packedObjects;
+                        }
 		}
 		File objDir = repo.getObjectsDirectory();
 		String[] fanout = objDir.list();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectoryPackParser.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectoryPackParser.java
index 746e124..d97d5a7 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectoryPackParser.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectoryPackParser.java
@@ -72,6 +72,12 @@ public class ObjectDirectoryPackParser extends PackParser {
 	 */
 	private File tmpIdx;
 
+	/**
+	 * Path of the object-size index created for the pack, to filter quickly
+	 * objects by size in partial clones
+	 */
+	private File tmpObjectSizeIndex;
+
 	/** Read/write handle to {@link #tmpPack} while it is being parsed. */
 	private RandomAccessFile out;
 
@@ -163,6 +169,7 @@ public PackLock parse(ProgressMonitor receiving, ProgressMonitor resolving)
 			throws IOException {
 		tmpPack = File.createTempFile("incoming_", ".pack", db.getDirectory()); //$NON-NLS-1$ //$NON-NLS-2$
 		tmpIdx = new File(db.getDirectory(), baseName(tmpPack) + ".idx"); //$NON-NLS-1$
+
 		try {
 			out = new RandomAccessFile(tmpPack, "rw"); //$NON-NLS-1$
 
@@ -178,6 +185,14 @@ public PackLock parse(ProgressMonitor receiving, ProgressMonitor resolving)
 			tmpPack.setReadOnly();
 			tmpIdx.setReadOnly();
 
+			if (pconfig.isWriteObjSizeIndex()) {
+				tmpObjectSizeIndex = new File(db.getDirectory(),
+						baseName(tmpPack)
+						+ PackExt.OBJECT_SIZE_INDEX.getExtension());
+				writeObjectSizeIndex(pconfig.getMinBytesForObjSizeIndex());
+				tmpObjectSizeIndex.setReadOnly();
+			}
+
 			return renameAndOpenPack(getLockMessage());
 		} finally {
 			if (def != null)
@@ -295,6 +310,9 @@ private void cleanupTemporaryFiles() {
 			tmpIdx.deleteOnExit();
 		if (tmpPack != null && !tmpPack.delete() && tmpPack.exists())
 			tmpPack.deleteOnExit();
+		if (tmpObjectSizeIndex != null && !tmpObjectSizeIndex.delete()
+				&& tmpObjectSizeIndex.exists())
+			tmpPack.deleteOnExit();
 	}
 
 	@Override
@@ -395,6 +413,15 @@ private void writeIdx() throws IOException {
 		}
 	}
 
+	private void writeObjectSizeIndex(int minSize) throws IOException {
+		try (FileOutputStream os = new FileOutputStream(tmpObjectSizeIndex)) {
+			PackObjectSizeIndexWriter iw = PackObjectSizeIndexWriter
+					.createWriter(os, minSize);
+			iw.write(getSortedObjectList(null));
+			os.getChannel().force(true);
+		}
+	}
+
 	private PackLock renameAndOpenPack(String lockMessage)
 			throws IOException {
 		if (!keepEmpty && getObjectCount() == 0) {
@@ -469,6 +496,27 @@ private PackLock renameAndOpenPack(String lockMessage)
 					JGitText.get().cannotMoveIndexTo, finalIdx), e);
 		}
 
+		if (pconfig.isWriteObjSizeIndex() && tmpObjectSizeIndex != null) {
+			PackFile finalObjectSizeIndex = finalPack
+					.create(PackExt.OBJECT_SIZE_INDEX);
+			try {
+				FileUtils.rename(tmpObjectSizeIndex, finalObjectSizeIndex,
+						StandardCopyOption.ATOMIC_MOVE);
+			} catch (IOException e) {
+				cleanupTemporaryFiles();
+				keep.unlock();
+				if (!finalPack.delete())
+					finalPack.deleteOnExit();
+				if (!finalIdx.delete()) {
+					finalIdx.deleteOnExit();
+				}
+				throw new IOException(MessageFormat
+						.format(JGitText.get().cannotMoveIndexTo,
+								finalObjectSizeIndex),
+						e);
+			}
+		}
+
 		boolean interrupted = false;
 		try {
 			FileSnapshot snapshot = FileSnapshot.save(finalPack);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/Pack.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/Pack.java
index bf574ec..8988b41 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/Pack.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/Pack.java
@@ -17,9 +17,11 @@
 import static org.eclipse.jgit.internal.storage.pack.PackExt.REVERSE_INDEX;
 import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_CORE_SECTION;
 import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_PACKED_INDEX_GIT_USE_STRONGREFS;
+import static org.eclipse.jgit.internal.storage.pack.PackExt.OBJECT_SIZE_INDEX;
 
 import java.io.EOFException;
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InterruptedIOException;
@@ -126,8 +128,13 @@ public class Pack implements Iterable<PackIndex.MutableEntry> {
 
 	private volatile Optionally<PackReverseIndex> reverseIdx = Optionally.empty();
 
+	private volatile PackObjectSizeIndex loadedObjSizeIdx;
+
+	private volatile boolean attemptLoadObjSizeIdx;
+
 	private volatile Optionally<PackBitmapIndex> bitmapIdx = Optionally.empty();
 
+
 	/**
 	 * Objects we have tried to read, and discovered to be corrupt.
 	 * <p>
@@ -218,6 +225,52 @@ private synchronized PackIndex memoizeIdxIfNeeded() throws IOException {
 		}
 	}
 
+	private PackObjectSizeIndex objectSizeIndex() throws IOException {
+		if (loadedObjSizeIdx != null) {
+			return loadedObjSizeIdx;
+		}
+
+		if (attemptLoadObjSizeIdx) {
+			return null;
+		}
+
+		synchronized (this) {
+			if (loadedObjSizeIdx != null) {
+				return loadedObjSizeIdx;
+			}
+
+			PackObjectSizeIndex sizeIdx;
+			try {
+				long start = System.currentTimeMillis();
+				PackFile sizeIdxFile = packFile.create(OBJECT_SIZE_INDEX);
+				if (attemptLoadObjSizeIdx || !sizeIdxFile.exists()) {
+					attemptLoadObjSizeIdx = true;
+					return null;
+				}
+				sizeIdx = PackObjectSizeIndexLoader.load(
+						new FileInputStream(sizeIdxFile.getAbsoluteFile()));
+				if (LOG.isDebugEnabled()) {
+					LOG.debug(String.format(
+							"Opening obj size index %s, size %.3f MB took %d ms", //$NON-NLS-1$
+							sizeIdxFile.getAbsolutePath(),
+							Float.valueOf(
+									sizeIdxFile.length() / (1024f * 1024)),
+							Long.valueOf(System.currentTimeMillis() - start)));
+				}
+
+				loadedObjSizeIdx = sizeIdx;
+			} catch (InterruptedIOException e) {
+				// don't invalidate the pack, we are interrupted from
+				// another thread
+				return null;
+			} finally {
+				attemptLoadObjSizeIdx = true;
+			}
+		}
+
+		return loadedObjSizeIdx;
+	}
+
 	/**
 	 * Get the File object which locates this pack on disk.
 	 *
@@ -239,6 +292,62 @@ public PackIndex getIndex() throws IOException {
 	}
 
 	/**
+	 * Get the object size index for this pack file
+	 *
+	 * @return the object size index for this pack file if it exists (null
+	 *         otherwise)
+	 * @throws IOException
+	 *             problem reading the index
+	 */
+	public boolean hasObjectSizeIndex() throws IOException {
+		return objectSizeIndex() != null;
+	}
+
+	/**
+	 * Number of objects in the object-size index of this pack
+	 *
+	 * @return number of objects in the index (0 if either the index is empty or
+	 *         it doesn't exist)
+	 * @throws IOException
+	 *             if an IO error occurred while reading the index
+	 */
+	public long getObjectSizeIndexCount() throws IOException {
+		if (!hasObjectSizeIndex()) {
+			return 0;
+		}
+
+		return objectSizeIndex().getObjectCount();
+	}
+
+	/**
+	 * Return the size of the object from the object-size index.
+	 *
+	 * Caller MUST check that the pack has object-size index
+	 * ({@link #hasObjectSizeIndex()}) and that the pack contains the object.
+	 *
+	 * @param id
+	 *            object id of an object in the pack
+	 * @return size of the object from the index. Negative if the object is not
+	 *         in the index.
+	 * @throws IOException
+	 *             if an IO error occurred while reading the index
+	 */
+	public long getIndexedObjectSize(AnyObjectId id) throws IOException {
+		int idxPos = idx().findPosition(id);
+		if (idxPos < 0) {
+			return -1;
+		}
+
+		PackObjectSizeIndex sizeIdx = objectSizeIndex();
+		if (sizeIdx == null) {
+			throw new IllegalStateException(
+					"Asking indexed size from a pack without object size index"); //$NON-NLS-1$
+		}
+
+		return sizeIdx.getSize(idxPos);
+	}
+
+	/**
 	 * Get name extracted from {@code pack-*.pack} pattern.
 	 *
 	 * @return name extracted from {@code pack-*.pack} pattern.
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackInserter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackInserter.java
index 55e047b..97a854b 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackInserter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackInserter.java
@@ -166,7 +166,7 @@ public ObjectId insert(int type, byte[] data, int off, int len)
 		long offset = beginObject(type, len);
 		packOut.compress.write(data, off, len);
 		packOut.compress.finish();
-		return endObject(id, offset);
+		return endObject(id, offset, len, type);
 	}
 
 	@Override
@@ -195,7 +195,7 @@ public ObjectId insert(int type, long len, InputStream in)
 			len -= n;
 		}
 		packOut.compress.finish();
-		return endObject(md.toObjectId(), offset);
+		return endObject(md.toObjectId(), offset, len, type);
 	}
 
 	private long beginObject(int type, long len) throws IOException {
@@ -207,10 +207,12 @@ private long beginObject(int type, long len) throws IOException {
 		return offset;
 	}
 
-	private ObjectId endObject(ObjectId id, long offset) {
+	private ObjectId endObject(ObjectId id, long offset, long len, int type) {
 		PackedObjectInfo obj = new PackedObjectInfo(id);
+		obj.setType(type);
 		obj.setOffset(offset);
 		obj.setCRC((int) packOut.crc32.getValue());
+		obj.setFullSize(len);
 		objectList.add(obj);
 		objectMap.addIfAbsent(obj);
 		return id;
@@ -223,6 +225,12 @@ private static File idxFor(File packFile) {
 				p.substring(0, p.lastIndexOf('.')) + ".idx"); //$NON-NLS-1$
 	}
 
+	private static File getFileFor(File packFile, PackExt ext) {
+		String p = packFile.getName();
+		return new File(packFile.getParentFile(),
+				p.substring(0, p.lastIndexOf('.')) + ext.getExtension());
+	}
+
 	private void beginPack() throws IOException {
 		objectList = new BlockList<>();
 		objectMap = new ObjectIdOwnerMap<>();
@@ -272,7 +280,11 @@ public void flush() throws IOException {
 		Collections.sort(objectList);
 		File tmpIdx = idxFor(tmpPack); // TODO(nasserg) Use PackFile?
 		writePackIndex(tmpIdx, packHash, objectList);
-
+		File tmpObjSizeIdx = null;
+		if (pconfig.isWriteObjSizeIndex()) {
+			tmpObjSizeIdx = getFileFor(tmpPack, PackExt.OBJECT_SIZE_INDEX);
+			writeObjectSizeIndex(tmpObjSizeIdx, objectList, pconfig);
+		}
 		PackFile realPack = new PackFile(db.getPackDirectory(),
 				computeName(objectList), PackExt.PACK);
 		db.closeAllPackHandles(realPack);
@@ -297,6 +309,13 @@ public void flush() throws IOException {
 					realIdx), e);
 		}
 
+		if (tmpObjSizeIdx != null) {
+			PackFile realObjSizeIdx = realPack
+					.create(PackExt.OBJECT_SIZE_INDEX);
+			tmpObjSizeIdx.setReadOnly();
+                        FileUtils.rename(tmpObjSizeIdx, realObjSizeIdx, ATOMIC_MOVE);
+		}
+
 		boolean interrupted = false;
 		try {
 			FileSnapshot snapshot = FileSnapshot.save(realPack);
@@ -327,6 +346,15 @@ private static void writePackIndex(File idx, byte[] packHash,
 		}
 	}
 
+	private static void writeObjectSizeIndex(File objIdx,
+			List<PackedObjectInfo> list, PackConfig cfg) throws IOException {
+		try (OutputStream os = new FileOutputStream(objIdx)) {
+			PackObjectSizeIndexWriter w = PackObjectSizeIndexWriter
+					.createWriter(os, cfg.getMinBytesForObjSizeIndex());
+			w.write(list);
+		}
+	}
+
 	private ObjectId computeName(List<PackedObjectInfo> list) {
 		SHA1 md = digest().reset();
 		byte[] buf = buffer();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackObjectSizeIndexHelper.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackObjectSizeIndexHelper.java
new file mode 100644
index 0000000..acef741
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackObjectSizeIndexHelper.java
@@ -0,0 +1,92 @@
+package org.eclipse.jgit.internal.storage.file;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jgit.internal.storage.pack.PackExt;
+import org.eclipse.jgit.lib.ObjectId;
+import org.eclipse.jgit.lib.ProgressMonitor;
+import org.eclipse.jgit.transport.PackedObjectInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A wrapper to write the object size index for existing packs (on disk)
+ */
+public class PackObjectSizeIndexHelper {
+
+	private final static Logger LOG = LoggerFactory
+			.getLogger(PackObjectSizeIndexHelper.class);
+
+	/**
+	 * Add an object size index to all the packs without one in this object
+	 * database.
+	 *
+	 * @param db
+	 *            object db for packs
+	 * @param pm
+	 *            progress monitor for the object listing phase (adding size to
+	 *            the objects in index)
+	 * @throws IOException
+	 *             an error reading the packs or writing the object size index
+	 *             file
+	 */
+	public static void forAllPacks(ObjectDirectory db, ProgressMonitor pm)
+			throws IOException {
+		WindowCursor wc = (WindowCursor) db.newReader();
+		for (Pack pack : db.getPacks()) {
+			LOG.info("Checking " + pack.getPackName()); //$NON-NLS-1$
+			if (pack.hasObjectSizeIndex()) {
+				LOG.debug("    has object size index"); //$NON-NLS-1$
+				continue;
+			}
+
+			List<PackedObjectInfo> objectsInPack = getObjectsInPack(wc, pack,
+					pm);
+			LOG.debug(String.format("    index has %d objects", //$NON-NLS-1$
+					objectsInPack.size()));
+			if (objectsInPack.isEmpty()) {
+				continue;
+			}
+
+			LOG.info("    start writing object size index"); //$NON-NLS-1$
+			PackFile packFile = pack.getPackFile()
+					.create(PackExt.OBJECT_SIZE_INDEX);
+			long start = System.currentTimeMillis();
+			try (FileOutputStream out = new FileOutputStream(packFile)) {
+				PackObjectSizeIndexWriter writer = PackObjectSizeIndexWriter
+						.createWriter(out, 0);
+				writer.write(objectsInPack);
+			}
+			LOG.info(String.format("     done writing. Took %d ms", //$NON-NLS-1$
+					System.currentTimeMillis() - start));
+		}
+	}
+
+	private static List<PackedObjectInfo> getObjectsInPack(WindowCursor wc,
+			Pack pack, ProgressMonitor pm) throws IOException {
+		PackIndex idx = pack.getIndex();
+		PackReverseIndex ridx = new PackReverseIndexComputed(idx);
+		pm.beginTask("Adding size to objects in index", //$NON-NLS-1$
+				(int) idx.getObjectCount());
+		// This is much faster in offset order
+		List<PackedObjectInfo> objs = new ArrayList<>(
+				(int) idx.getObjectCount());
+		for (int i = 0; i < idx.getObjectCount(); i++) {
+			ObjectId oid = ridx.findObjectByPosition(i);
+			PackedObjectInfo poi = new PackedObjectInfo(oid);
+			long offset = idx.findOffset(oid);
+			poi.setFullSize(pack.getObjectSize(wc, offset));
+			poi.setType(pack.getObjectType(wc, offset));
+			objs.add(poi);
+			pm.update(1);
+		}
+		pm.endTask();
+		return objs;
+	}
+
+	private PackObjectSizeIndexHelper() {
+	}
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCursor.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCursor.java
index 11c4547..33459ef 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCursor.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCursor.java
@@ -36,6 +36,7 @@
 import org.eclipse.jgit.lib.BitmapIndex;
 import org.eclipse.jgit.lib.BitmapIndex.BitmapBuilder;
 import org.eclipse.jgit.internal.storage.commitgraph.CommitGraph;
+import org.eclipse.jgit.lib.ConfigConstants;
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.InflaterCache;
 import org.eclipse.jgit.lib.ObjectId;
@@ -49,12 +50,16 @@ final class WindowCursor extends ObjectReader implements ObjectReuseAsIs {
 	/** Temporary buffer large enough for at least one raw object id. */
 	final byte[] tempId = new byte[Constants.OBJECT_ID_LENGTH];
 
+	private final boolean useObjectSizeIndex;
+
 	private Inflater inf;
 
 	private ByteWindow window;
 
 	private DeltaBaseCache baseCache;
 
+	private Pack lastPack;
+
 	@Nullable
 	private final ObjectInserter createdFromInserter;
 
@@ -64,6 +69,10 @@ final class WindowCursor extends ObjectReader implements ObjectReuseAsIs {
 		this.db = db;
 		this.createdFromInserter = null;
 		this.streamFileThreshold = WindowCache.getStreamFileThreshold();
+		this.useObjectSizeIndex = db == null ? false
+				: db.getConfig().getBoolean(
+				ConfigConstants.CONFIG_PACK_SECTION,
+				ConfigConstants.CONFIG_KEY_USE_OBJECT_SIZE_INDEX, false);
 	}
 
 	WindowCursor(FileObjectDatabase db,
@@ -71,6 +80,10 @@ final class WindowCursor extends ObjectReader implements ObjectReuseAsIs {
 		this.db = db;
 		this.createdFromInserter = createdFromInserter;
 		this.streamFileThreshold = WindowCache.getStreamFileThreshold();
+		this.useObjectSizeIndex = db == null ? false
+				: db.getConfig().getBoolean(
+				ConfigConstants.CONFIG_PACK_SECTION,
+				ConfigConstants.CONFIG_KEY_USE_OBJECT_SIZE_INDEX, false);
 	}
 
 	DeltaBaseCache getDeltaBaseCache() {
@@ -147,8 +160,7 @@ public Set<ObjectId> getShallowCommits() throws IOException {
 		return db.getShallowCommits();
 	}
 
-	@Override
-	public long getObjectSize(AnyObjectId objectId, int typeHint)
+	private long getObjectSizeStorage(AnyObjectId objectId, int typeHint)
 			throws MissingObjectException, IncorrectObjectTypeException,
 			IOException {
 		long sz = db.getObjectSize(this, objectId);
@@ -162,6 +174,63 @@ public long getObjectSize(AnyObjectId objectId, int typeHint)
 	}
 
 	@Override
+	public long getObjectSize(AnyObjectId objectId, int typeHint)
+			throws MissingObjectException, IncorrectObjectTypeException,
+			IOException {
+		// Async queue uses hint OBJ_ANY
+		if (typeHint != Constants.OBJ_BLOB) {
+			return getObjectSizeStorage(objectId, typeHint);
+		}
+
+		Pack pack = findPack(objectId);
+		if (pack == null) {
+			// Non-packed object (e.g. loose or in alternates)
+			return getObjectSizeStorage(objectId, typeHint);
+		}
+
+		if (useObjectSizeIndex && pack.hasObjectSizeIndex()) {
+			long sz = pack.getIndexedObjectSize(objectId);
+			if (sz >= 0) {
+				return sz;
+			}
+		}
+		return getObjectSizeStorage(objectId, typeHint);
+	}
+
+	@Override
+	public boolean isNotLargerThan(AnyObjectId objectId, int typeHint,
+			long size)
+			throws MissingObjectException, IncorrectObjectTypeException,
+			IOException {
+		if (typeHint != Constants.OBJ_BLOB) {
+			return getObjectSizeStorage(objectId, typeHint) <= size;
+		}
+
+		Pack pack = findPack(objectId);
+		if (pack == null || !pack.hasObjectSizeIndex()) {
+			// Non-packed object (e.g. loose or in alternates)
+			return getObjectSizeStorage(objectId, typeHint) <= size;
+		}
+
+		return pack.getIndexedObjectSize(objectId) <= size;
+	}
+
+	private Pack findPack(AnyObjectId objectId) throws IOException {
+		if (lastPack != null && lastPack.hasObject(objectId)) {
+			return lastPack;
+		}
+
+		for (Pack p : db.getPacks()) {
+			if (p.hasObject(objectId)) {
+				lastPack = p;
+				return p;
+			}
+		}
+
+		return null;
+	}
+
+	@Override
 	public LocalObjectToPack newObjectToPack(AnyObjectId objectId, int type) {
 		return new LocalObjectToPack(objectId, type);
 	}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/midx/MultiPackIndex.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/midx/MultiPackIndex.java
index 15b5239..edaa221 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/midx/MultiPackIndex.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/midx/MultiPackIndex.java
@@ -42,8 +42,8 @@ public interface MultiPackIndex {
 	/**
 	 * Obtain the location of the object.
 	 * <p>
-	 * The returned object can be reused by the implementations. Callers
-	 * must create a #copy() if they want to keep a reference.
+	 * The returned object can be reused by the implementations. Callers must
+	 * create a #copy() if they want to keep a reference.
 	 *
 	 * @param objectId
 	 *            objectId to read.
@@ -52,6 +52,30 @@ public interface MultiPackIndex {
 	PackOffset find(AnyObjectId objectId);
 
 	/**
+	 * Position of the object in this midx, when all covered objects are ordered
+	 * by SHA1.
+	 * <p>
+	 * As the midx removes duplicates, this position is NOT equivalent to
+	 * "position in pack + total count of objects in previous packs in the
+	 * stack".
+	 *
+	 * @param objectId
+	 *            an object id
+	 * @return position of the object in this multipack index
+	 */
+	int findPosition(AnyObjectId objectId);
+
+	/**
+	 * Number of objects in this midx
+	 * <p>
+	 * This number doesn't match with the sum of objects in each covered pack
+	 * because midx removes duplicates.
+	 *
+	 * @return number of objects in this midx
+	 */
+	int getObjectCount();
+
+	/**
 	 * Find objects matching the prefix abbreviation.
 	 *
 	 * @param matches
@@ -74,12 +98,30 @@ public interface MultiPackIndex {
 
 	/**
 	 * (packId, offset) coordinates of an object
+	 * <p>
+	 * Mutable object to avoid creating many instances while looking for objects
+	 * in the pack. Use #copy() to get a new instance with the data.
 	 */
 	class PackOffset {
 
-		int packId;
+		private int packId;
 
-		long offset;
+		private long offset;
+
+		/**
+		 * Return a new PackOffset with the defined data.
+		 * <p>
+		 * This is for tests, as regular code reuses the instance
+		 *
+		 * @param packId
+		 *            a pack id
+		 * @param offset
+		 *            an offset
+		 * @return a new PackOffset instance with this data
+		 */
+		public static PackOffset create(int packId, long offset) {
+			return new PackOffset().setValues(packId, offset);
+		}
 
 		protected PackOffset setValues(int packId, long offset) {
 			this.packId = packId;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/midx/MultiPackIndexLoader.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/midx/MultiPackIndexLoader.java
index 0e51e90..61caddc 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/midx/MultiPackIndexLoader.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/midx/MultiPackIndexLoader.java
@@ -257,7 +257,7 @@ MultiPackIndexBuilder addOidLookUp(byte[] buffer)
 		MultiPackIndexBuilder addPackNames(byte[] buffer)
 				throws MultiPackIndexFormatException {
 			assertChunkNotSeenYet(packNames, MIDX_CHUNKID_PACKNAMES);
-			packNames = new String(buffer, UTF_8).split("\u0000");
+			packNames = new String(buffer, UTF_8).split("\u0000"); //$NON-NLS-1$
 			return this;
 		}
 
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/midx/MultiPackIndexV1.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/midx/MultiPackIndexV1.java
index be752cc..e80958f 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/midx/MultiPackIndexV1.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/midx/MultiPackIndexV1.java
@@ -61,6 +61,16 @@ public boolean hasObject(AnyObjectId oid) {
 	}
 
 	@Override
+	public int findPosition(AnyObjectId oid) {
+		return idx.findMultiPackIndexPosition(oid);
+	}
+
+	@Override
+	public int getObjectCount() {
+		return idx.getObjectCount();
+	}
+
+	@Override
 	@Nullable
 	public PackOffset find(AnyObjectId objectId) {
 		int position = idx.findMultiPackIndexPosition(objectId);
@@ -285,5 +295,9 @@ private int idOffset(int position) {
 		long getMemorySize() {
 			return 4L + byteArrayLengh(oidLookup) + (FANOUT * 4);
 		}
+
+		int getObjectCount() {
+			return fanoutTable[FANOUT - 1];
+		}
 	}
 }
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/midx/MultiPackIndexWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/midx/MultiPackIndexWriter.java
index b42c821..993e7df 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/midx/MultiPackIndexWriter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/midx/MultiPackIndexWriter.java
@@ -56,6 +56,21 @@ public class MultiPackIndexWriter {
 	private static final int MIDX_HEADER_SIZE = 12;
 
 	/**
+	 * Data about the written multipack index
+	 *
+	 * @param bytesWritten
+	 *            byte-size of the multipack index
+	 * @param objectCount
+	 *            count objects in this midx (i.e. unique objects in the covered
+	 *            packs)
+	 * @param packNames
+	 *            packNames
+	 */
+	public record Result(long bytesWritten, int objectCount,
+			List<String> packNames) {
+	}
+
+	/**
 	 * Writes the inputs in the multipack index format in the outputStream.
 	 *
 	 * @param monitor
@@ -65,11 +80,11 @@ public class MultiPackIndexWriter {
 	 * @param inputs
 	 *            pairs of name and index for each pack to include in the
 	 *            multipack index.
-	 * @return bytes written into the stream
+	 * @return data about the write (e.g. bytes written)
 	 * @throws IOException
 	 *             Error writing to the stream
 	 */
-	public long write(ProgressMonitor monitor, OutputStream outputStream,
+	public Result write(ProgressMonitor monitor, OutputStream outputStream,
 			Map<String, PackIndex> inputs) throws IOException {
 		PackIndexMerger data = new PackIndexMerger(inputs);
 
@@ -92,7 +107,8 @@ public long write(ProgressMonitor monitor, OutputStream outputStream,
 						Long.valueOf(expectedSize),
 						Long.valueOf(out.length())));
 			}
-			return expectedSize;
+			return new Result(expectedSize, data.getUniqueObjectCount(),
+					data.getPackNames());
 		} catch (InterruptedIOException e) {
 			throw new IOException(JGitText.get().multiPackIndexWritingCancelled,
 					e);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/PendingGenerator.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/PendingGenerator.java
index a49f787..926e45d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/PendingGenerator.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/PendingGenerator.java
@@ -100,11 +100,13 @@ RevCommit next() throws MissingObjectException,
 				}
 
 				final boolean produce;
-				if ((c.flags & UNINTERESTING) != 0)
+				final boolean hadBody = c.getRawBuffer() != null;
+				if ((c.flags & UNINTERESTING) != 0) {
 					produce = false;
-				else {
-					if (filter.requiresCommitBody())
+				} else {
+					if (filter.requiresCommitBody() && !hadBody) {
 						c.parseBody(walker);
+					}
 					produce = filter.include(walker, c);
 				}
 
@@ -140,15 +142,17 @@ RevCommit next() throws MissingObjectException,
 					} else {
 						overScan = OVER_SCAN;
 					}
-					if (canDispose)
+					if (canDispose && !hadBody) {
 						c.disposeBody();
+					}
 					continue;
 				}
 
-				if (produce)
+				if (produce) {
 					return last = c;
-				else if (canDispose)
+				} else if (canDispose && !hadBody) {
 					c.disposeBody();
+				}
 			}
 		} catch (StopWalkException swe) {
 			pending.clear();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java
index 41f98ba..4b8be70 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java
@@ -24,8 +24,6 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.
-Optional;
 import java.util.Set;
 
 import org.eclipse.jgit.annotations.NonNull;
@@ -52,6 +50,7 @@
 import org.eclipse.jgit.revwalk.filter.RevFilter;
 import org.eclipse.jgit.treewalk.filter.TreeFilter;
 import org.eclipse.jgit.util.References;
+import org.eclipse.jgit.util.SystemReader;
 
 /**
  * Walks a commit graph and produces the matching commits in order.
@@ -266,12 +265,9 @@ static DateRevQueue newDateRevQueue(Generator g) throws IOException {
 		return new DateRevQueue(g);
 	}
 
-	@SuppressWarnings("boxing")
 	private static boolean usePriorityQueue() {
-		return Optional
-				.ofNullable(System.getProperty("REVWALK_USE_PRIORITY_QUEUE")) //$NON-NLS-1$
-							.map(Boolean::parseBoolean)
-							.orElse(false);
+		return Boolean.parseBoolean(SystemReader.getInstance()
+				.getProperty("REVWALK_USE_PRIORITY_QUEUE")); //$NON-NLS-1$
 	}
 
 	/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java
index a65d0b7..c9a48bf 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java
@@ -106,6 +106,7 @@
 import org.eclipse.jgit.util.SystemReader;
 import org.eclipse.jgit.util.TemporaryBuffer;
 import org.eclipse.jgit.util.io.DisabledOutputStream;
+import org.eclipse.jgit.util.io.SilentInputStream;
 import org.eclipse.jgit.util.io.UnionInputStream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -1558,7 +1559,8 @@ protected void doFetch(ProgressMonitor monitor, Collection<Ref> want,
 				throws TransportException {
 			svc = new MultiRequestService(SVC_UPLOAD_PACK,
 					getProtocolVersion());
-			try (InputStream svcIn = svc.getInputStream();
+			try (InputStream svcIn = new SilentInputStream(
+					svc.getInputStream());
 					OutputStream svcOut = svc.getOutputStream()) {
 				init(svcIn, svcOut);
 				super.doFetch(monitor, want, have, outputStream);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/ChangedPathTreeFilter.java b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/ChangedPathTreeFilter.java
index 2400e12..a74b9b6 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/ChangedPathTreeFilter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/ChangedPathTreeFilter.java
@@ -125,6 +125,7 @@ public List<String> getPaths() {
 		return paths;
 	}
 
+	@SuppressWarnings("nls")
 	@Override
 	public String toString() {
 		return "(CHANGED_PATH(" + pathFilter.toString() + ")" //
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/io/SilentInputStream.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/io/SilentInputStream.java
new file mode 100644
index 0000000..8c2c61a
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/io/SilentInputStream.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 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
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.util.io;
+
+import java.io.FilterInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * An {@link InputStream} that swallows exceptions on {@link #close()}.
+ *
+ * @since 7.4
+ */
+public class SilentInputStream extends FilterInputStream {
+
+	private static final Logger LOG = LoggerFactory
+			.getLogger(SilentInputStream.class);
+
+	/**
+	 * Wraps an existing {@link InputStream}.
+	 *
+	 * @param in
+	 *            {@link InputStream} to wrap
+	 */
+	public SilentInputStream(InputStream in) {
+		super(in);
+	}
+
+	@Override
+	public void close() throws IOException {
+		try {
+			super.close();
+		} catch (IOException e) {
+			if (LOG.isDebugEnabled()) {
+				LOG.debug("Exception ignored while closing input stream", e); //$NON-NLS-1$
+			}
+		}
+	}
+}
diff --git a/pom.xml b/pom.xml
index b0c12d7..016ef83 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.3.1-SNAPSHOT</version>
+  <version>7.4.1-SNAPSHOT</version>
 
   <name>JGit - Parent</name>
   <url>${jgit-url}</url>
@@ -118,26 +118,26 @@
 
     <project.build.outputTimestamp>${commit.time.iso}</project.build.outputTimestamp>
 
-    <jgit-last-release-version>7.2.0.202503040940-r</jgit-last-release-version>
+    <jgit-last-release-version>7.3.0.202506031305-r</jgit-last-release-version>
     <ant-version>1.10.15</ant-version>
-    <apache-sshd-version>2.15.0</apache-sshd-version>
+    <apache-sshd-version>2.16.0</apache-sshd-version>
     <jsch-version>0.1.55</jsch-version>
     <jzlib-version>1.1.3</jzlib-version>
     <javaewah-version>1.2.3</javaewah-version>
     <junit-version>4.13.2</junit-version>
     <test-fork-count>1C</test-fork-count>
     <args4j-version>2.37</args4j-version>
-    <commons-compress-version>1.27.1</commons-compress-version>
+    <commons-compress-version>1.28.0</commons-compress-version>
     <osgi-core-version>6.0.0</osgi-core-version>
     <servlet-api-version>6.1.0</servlet-api-version>
-    <jetty-version>12.0.21</jetty-version>
+    <jetty-version>12.1.0</jetty-version>
     <japicmp-version>0.23.1</japicmp-version>
     <httpclient-version>4.5.14</httpclient-version>
     <httpcore-version>4.4.16</httpcore-version>
     <slf4j-version>1.7.36</slf4j-version>
     <maven-javadoc-plugin-version>3.11.2</maven-javadoc-plugin-version>
     <gson-version>2.13.1</gson-version>
-    <bouncycastle-version>1.80</bouncycastle-version>
+    <bouncycastle-version>1.81</bouncycastle-version>
     <spotbugs-maven-plugin-version>4.9.3.0</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>
@@ -146,9 +146,9 @@
     <maven-compiler-plugin-version>3.14.0</maven-compiler-plugin-version>
     <plexus-compiler-version>2.13.0</plexus-compiler-version>
     <hamcrest-version>2.2</hamcrest-version>
-    <assertj-version>3.27.3</assertj-version>
+    <assertj-version>3.27.4</assertj-version>
     <jna-version>5.17.0</jna-version>
-    <byte-buddy-version>1.17.5</byte-buddy-version>
+    <byte-buddy-version>1.17.7</byte-buddy-version>
 
     <!-- Properties to enable jacoco code coverage analysis -->
     <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
@@ -899,7 +899,7 @@
       <dependency>
         <groupId>commons-codec</groupId>
         <artifactId>commons-codec</artifactId>
-        <version>1.18.0</version>
+        <version>1.19.0</version>
       </dependency>
 
       <dependency>
@@ -911,7 +911,7 @@
       <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-io</artifactId>
-        <version>2.19.0</version>
+        <version>2.20.0</version>
       </dependency>
 
       <dependency>
@@ -1020,7 +1020,7 @@
       <dependency>
         <groupId>org.mockito</groupId>
         <artifactId>mockito-core</artifactId>
-        <version>5.18.0</version>
+        <version>5.19.0</version>
       </dependency>
 
       <dependency>
diff --git a/tools/bazlets.bzl b/tools/bazlets.bzl
new file mode 100644
index 0000000..f089af4
--- /dev/null
+++ b/tools/bazlets.bzl
@@ -0,0 +1,18 @@
+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,
+        )
