diff --git a/.bazelversion b/.bazelversion
index acd405b..37ad5c8 100644
--- a/.bazelversion
+++ b/.bazelversion
@@ -1 +1 @@
-8.6.0
+9.0.1
diff --git a/MODULE.bazel b/MODULE.bazel
index 778873a..865135e 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -1,8 +1,9 @@
 module(name = "jgit")
 
-bazel_dep(name = "rules_go", version = "0.51.0-rc2")
-bazel_dep(name = "bazel_features", version = "1.39.0")
-bazel_dep(name = "rules_java", version = "8.16.1")
+bazel_dep(name = "bazel_features", version = "1.42.1")
+bazel_dep(name = "rules_android", version = "0.7.1")
+bazel_dep(name = "rules_go", version = "0.60.0")
+bazel_dep(name = "rules_java", version = "9.3.0")
 bazel_dep(name = "rules_jvm_external", version = "6.10")
 bazel_dep(name = "rules_shell", version = "0.6.1")
 bazel_dep(name = "rbe_autoconfig")
@@ -20,19 +21,19 @@
 
 git_repository(
     name = "com_googlesource_gerrit_bazlets",
-    commit = "156bae8bb0d329d8886f681c723979cbdb39d37c",
+    commit = "5ef765b723e81759359048edb43d314046178ac4",
     remote = "https://gerrit.googlesource.com/bazlets",
 )
 
-BOUNCYCASTLE_VERSION = "1.84"
+BOUNCYCASTLE_VERSION = "1.85"
 
-BYTE_BUDDY_VERSION = "1.18.8"
+BYTE_BUDDY_VERSION = "1.18.11"
 
-JETTY_VERSION = "12.1.9"
+JETTY_VERSION = "12.1.11"
 
 JMH_VERSION = "1.37"
 
-JNA_VERSION = "5.18.1"
+JNA_VERSION = "5.19.1"
 
 SLF4J_VERSION = "2.0.18"
 
@@ -50,7 +51,7 @@
         "com.jcraft:jzlib:1.1.3",
         "commons-codec:commons-codec:1.22.0",
         "commons-io:commons-io:2.22.0",
-        "commons-logging:commons-logging:1.3.6",
+        "commons-logging:commons-logging:1.4.0",
         "jakarta.servlet:jakarta.servlet-api:6.1.0",
         "javax.servlet:javax.servlet-api:4.0.1",
         "junit:junit:4.13.2",
@@ -81,7 +82,7 @@
         "org.eclipse.jetty.ee8:jetty-ee8-nested:" + JETTY_VERSION,
         "org.eclipse.jetty.ee8:jetty-ee8-security:" + JETTY_VERSION,
         "org.eclipse.jetty.ee8:jetty-ee8-servlet:" + JETTY_VERSION,
-        "org.eclipse.jetty.ee10:jetty-ee10-servlet:" + JETTY_VERSION,
+        "org.eclipse.jetty.ee11:jetty-ee11-servlet:" + JETTY_VERSION,
         "org.hamcrest:hamcrest:3.0",
         "org.mockito:mockito-core:5.23.0",
         "org.objenesis:objenesis:3.4",
diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock
index 535c4ce..da5f702 100644
--- a/MODULE.bazel.lock
+++ b/MODULE.bazel.lock
@@ -1,5 +1,5 @@
 {
-  "lockFileVersion": 24,
+  "lockFileVersion": 26,
   "registryFileHashes": {
     "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497",
     "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2",
@@ -13,16 +13,19 @@
     "https://bcr.bazel.build/modules/abseil-cpp/20250127.0/MODULE.bazel": "d1086e248cda6576862b4b3fe9ad76a214e08c189af5b42557a6e1888812c5d5",
     "https://bcr.bazel.build/modules/abseil-cpp/20250127.1/MODULE.bazel": "c4a89e7ceb9bf1e25cf84a9f830ff6b817b72874088bf5141b314726e46a57c1",
     "https://bcr.bazel.build/modules/abseil-cpp/20250512.1/MODULE.bazel": "d209fdb6f36ffaf61c509fcc81b19e81b411a999a934a032e10cd009a0226215",
-    "https://bcr.bazel.build/modules/abseil-cpp/20250814.0/MODULE.bazel": "c43c16ca2c432566cdb78913964497259903ebe8fb7d9b57b38e9f1425b427b8",
-    "https://bcr.bazel.build/modules/abseil-cpp/20250814.0/source.json": "b88bff599ceaf0f56c264c749b1606f8485cec3b8c38ba30f88a4df9af142861",
+    "https://bcr.bazel.build/modules/abseil-cpp/20250814.1/MODULE.bazel": "51f2312901470cdab0dbdf3b88c40cd21c62a7ed58a3de45b365ddc5b11bcab2",
+    "https://bcr.bazel.build/modules/abseil-cpp/20250814.1/source.json": "cea3901d7e299da7320700abbaafe57a65d039f10d0d7ea601c4a66938ea4b0c",
     "https://bcr.bazel.build/modules/abseil-py/2.1.0/MODULE.bazel": "5ebe5bf853769c65707e5c28f216798f7a4b1042015e6a36e6d03094d94bec8a",
     "https://bcr.bazel.build/modules/abseil-py/2.1.0/source.json": "0e8fc4f088ce07099c1cd6594c20c7ddbb48b4b3c0849b7d94ba94be88ff042b",
     "https://bcr.bazel.build/modules/apple_support/1.11.1/MODULE.bazel": "1843d7cd8a58369a444fc6000e7304425fba600ff641592161d9f15b179fb896",
     "https://bcr.bazel.build/modules/apple_support/1.15.1/MODULE.bazel": "a0556fefca0b1bb2de8567b8827518f94db6a6e7e7d632b4c48dc5f865bc7c85",
-    "https://bcr.bazel.build/modules/apple_support/1.23.1/MODULE.bazel": "53763fed456a968cf919b3240427cf3a9d5481ec5466abc9d5dc51bc70087442",
-    "https://bcr.bazel.build/modules/apple_support/1.23.1/source.json": "d888b44312eb0ad2c21a91d026753f330caa48a25c9b2102fae75eb2b0dcfdd2",
+    "https://bcr.bazel.build/modules/apple_support/1.21.0/MODULE.bazel": "ac1824ed5edf17dee2fdd4927ada30c9f8c3b520be1b5fd02a5da15bc10bff3e",
+    "https://bcr.bazel.build/modules/apple_support/1.21.1/MODULE.bazel": "5809fa3efab15d1f3c3c635af6974044bac8a4919c62238cce06acee8a8c11f1",
+    "https://bcr.bazel.build/modules/apple_support/1.24.2/MODULE.bazel": "0e62471818affb9f0b26f128831d5c40b074d32e6dda5a0d3852847215a41ca4",
+    "https://bcr.bazel.build/modules/apple_support/1.24.2/source.json": "2c22c9827093250406c5568da6c54e6fdf0ef06238def3d99c71b12feb057a8d",
     "https://bcr.bazel.build/modules/bazel_features/1.1.0/MODULE.bazel": "cfd42ff3b815a5f39554d97182657f8c4b9719568eb7fded2b9135f084bf760b",
     "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd",
+    "https://bcr.bazel.build/modules/bazel_features/1.10.0/MODULE.bazel": "f75e8807570484a99be90abcd52b5e1f390362c258bcb73106f4544957a48101",
     "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8",
     "https://bcr.bazel.build/modules/bazel_features/1.13.0/MODULE.bazel": "c14c33c7c3c730612bdbe14ebbb5e61936b6f11322ea95a6e91cd1ba962f94df",
     "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d",
@@ -35,9 +38,11 @@
     "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d",
     "https://bcr.bazel.build/modules/bazel_features/1.3.0/MODULE.bazel": "cdcafe83ec318cda34e02948e81d790aab8df7a929cec6f6969f13a489ccecd9",
     "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87",
-    "https://bcr.bazel.build/modules/bazel_features/1.39.0/MODULE.bazel": "28739425c1fc283c91931619749c832b555e60bcd1010b40d8441ce0a5cf726d",
-    "https://bcr.bazel.build/modules/bazel_features/1.39.0/source.json": "f63cbeb4c602098484d57001e5a07d31cb02bbccde9b5e2c9bf0b29d05283e93",
+    "https://bcr.bazel.build/modules/bazel_features/1.33.0/MODULE.bazel": "8b8dc9d2a4c88609409c3191165bccec0e4cb044cd7a72ccbe826583303459f6",
+    "https://bcr.bazel.build/modules/bazel_features/1.36.0/MODULE.bazel": "596cb62090b039caf1cad1d52a8bc35cf188ca9a4e279a828005e7ee49a1bec3",
     "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7",
+    "https://bcr.bazel.build/modules/bazel_features/1.42.1/MODULE.bazel": "275a59b5406ff18c01739860aa70ad7ccb3cfb474579411decca11c93b951080",
+    "https://bcr.bazel.build/modules/bazel_features/1.42.1/source.json": "fcd4396b2df85f64f2b3bb436ad870793ecf39180f1d796f913cc9276d355309",
     "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",
@@ -51,20 +56,24 @@
     "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.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6",
-    "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/source.json": "7ebaefba0b03efe59cac88ed5bbc67bcf59a3eff33af937345ede2a38b2d368a",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/source.json": "34a3c8bcf233b835eb74be9d628899bb32999d3e0eadef1947a0a562a2b16ffb",
     "https://bcr.bazel.build/modules/bazel_worker_api/0.0.1/MODULE.bazel": "02a13b77321773b2042e70ee5e4c5e099c8ddee4cf2da9cd420442c36938d4bd",
     "https://bcr.bazel.build/modules/bazel_worker_api/0.0.4/MODULE.bazel": "460aa12d01231a80cce03c548287b433b321d205b0028ae596728c35e5ee442e",
-    "https://bcr.bazel.build/modules/bazel_worker_api/0.0.4/source.json": "d353c410d47a8b65d09fa98e83d57ebec257a2c2b9c6e42d6fda1cb25e5464a5",
+    "https://bcr.bazel.build/modules/bazel_worker_api/0.0.8/MODULE.bazel": "396c1ef53835aafe3d42ce6619080531ee770648303731f16cfaa33fa056bf0c",
+    "https://bcr.bazel.build/modules/bazel_worker_api/0.0.8/source.json": "abaf8ac9d2ab2f47bda9af4c0c080ff7907378888e1f4bc62a0539dd13ba61e8",
     "https://bcr.bazel.build/modules/bazel_worker_java/0.0.4/MODULE.bazel": "82494a01018bb7ef06d4a17ec4cd7a758721f10eb8b6c820a818e70d669500db",
-    "https://bcr.bazel.build/modules/bazel_worker_java/0.0.4/source.json": "a2d30458fd86cf022c2b6331e652526fa08e17573b2f5034a9dbcacdf9c2583c",
-    "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/bazel_worker_java/0.0.8/MODULE.bazel": "e76479eae70bd4e8f5f4c2dfc5d03ab971cfb18750246c7b3f3454c5c2ee6629",
+    "https://bcr.bazel.build/modules/bazel_worker_java/0.0.8/source.json": "9395c4679444bc47bf7e51a710366a4480aa371c6f6bed01868e2fabcf11acec",
+    "https://bcr.bazel.build/modules/buildozer/8.5.1/MODULE.bazel": "a35d9561b3fc5b18797c330793e99e3b834a473d5fbd3d7d7634aafc9bdb6f8f",
+    "https://bcr.bazel.build/modules/buildozer/8.5.1/source.json": "e3386e6ff4529f2442800dee47ad28d3e6487f36a1f75ae39ae56c70f0cd2fbd",
     "https://bcr.bazel.build/modules/gazelle/0.32.0/MODULE.bazel": "b499f58a5d0d3537f3cf5b76d8ada18242f64ec474d8391247438bf04f58c7b8",
     "https://bcr.bazel.build/modules/gazelle/0.33.0/MODULE.bazel": "a13a0f279b462b784fb8dd52a4074526c4a2afe70e114c7d09066097a46b3350",
     "https://bcr.bazel.build/modules/gazelle/0.34.0/MODULE.bazel": "abdd8ce4d70978933209db92e436deb3a8b737859e9354fb5fd11fb5c2004c8a",
     "https://bcr.bazel.build/modules/gazelle/0.36.0/MODULE.bazel": "e375d5d6e9a6ca59b0cb38b0540bc9a05b6aa926d322f2de268ad267a2ee74c0",
     "https://bcr.bazel.build/modules/gazelle/0.40.0/MODULE.bazel": "42ba5378ebe845fca43989a53186ab436d956db498acde790685fe0e8f9c6146",
-    "https://bcr.bazel.build/modules/gazelle/0.40.0/source.json": "1e5ef6e4d8b9b6836d93273c781e78ff829ea2e077afef7a57298040fa4f010a",
+    "https://bcr.bazel.build/modules/gazelle/0.47.0/MODULE.bazel": "b61bb007c4efad134aa30ee7f4a8e2a39b22aa5685f005edaa022fbd1de43ebc",
+    "https://bcr.bazel.build/modules/gazelle/0.47.0/source.json": "aeb2e5df14b7fb298625d75d08b9c65bdb0b56014c5eb89da9e5dd0572280ae6",
     "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",
@@ -78,6 +87,8 @@
     "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902",
     "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/MODULE.bazel": "6f7b417dcc794d9add9e556673ad25cb3ba835224290f4f848f8e2db1e1fca74",
     "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/source.json": "f448c6e8963fdfa7eb831457df83ad63d3d6355018f6574fb017e8169deb43a9",
+    "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83",
+    "https://bcr.bazel.build/modules/package_metadata/0.0.5/MODULE.bazel": "ef4f9439e3270fdd6b9fd4dbc3d2f29d13888e44c529a1b243f7a31dfbc2e8e4",
     "https://bcr.bazel.build/modules/package_metadata/0.0.7/MODULE.bazel": "7adb03933fc8401f495800cf4eafcff0edc6da0ff55c7db223ef69d19f689486",
     "https://bcr.bazel.build/modules/package_metadata/0.0.7/source.json": "50639625e937b56115012674c797cca7a05a96b4878c87d803c13dc2b31de8a0",
     "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5",
@@ -96,6 +107,7 @@
     "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/27.2/MODULE.bazel": "32450b50673882e4c8c3d10a83f3bc82161b213ed2f80d17e38bece8f165c295",
+    "https://bcr.bazel.build/modules/protobuf/29.0-rc2.bcr.1/MODULE.bazel": "52f4126f63a2f0bbf36b99c2a87648f08467a4eaf92ba726bc7d6a500bbf770c",
     "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df",
     "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92",
     "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e",
@@ -105,7 +117,8 @@
     "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858",
     "https://bcr.bazel.build/modules/protobuf/31.1/MODULE.bazel": "379a389bb330b7b8c1cdf331cc90bf3e13de5614799b3b52cdb7c6f389f6b38e",
     "https://bcr.bazel.build/modules/protobuf/32.1/MODULE.bazel": "89cd2866a9cb07fee9ff74c41ceace11554f32e0d849de4e23ac55515cfada4d",
-    "https://bcr.bazel.build/modules/protobuf/32.1/source.json": "bd2664e90875c0cd755d1d9b7a103a4b027893ac8eafa3bba087557ffc244ad4",
+    "https://bcr.bazel.build/modules/protobuf/33.4/MODULE.bazel": "114775b816b38b6d0ca620450d6b02550c60ceedfdc8d9a229833b34a223dc42",
+    "https://bcr.bazel.build/modules/protobuf/33.4/source.json": "555f8686b4c7d6b5ba731fbea13bf656b4bfd9a7ff629c1d9d3f6e1d6155de79",
     "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e",
     "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/MODULE.bazel": "e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34",
     "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/source.json": "6900fdc8a9e95866b8c0d4ad4aba4d4236317b5c1cd04c502df3f0d33afed680",
@@ -115,13 +128,14 @@
     "https://bcr.bazel.build/modules/re2/2024-07-02/MODULE.bazel": "0eadc4395959969297cbcf31a249ff457f2f1d456228c67719480205aa306daa",
     "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8",
     "https://bcr.bazel.build/modules/rules_android/0.6.6/MODULE.bazel": "b0fb569752aab65ab1a9db0a8f6cfaf5aa1754965e17e95dcf0e4d88e192a68d",
-    "https://bcr.bazel.build/modules/rules_android/0.6.6/source.json": "a9d8dc2d5a102dc03269a94acc886a4cab82cdcb9ccbc77b0f665d6d17a6ae09",
+    "https://bcr.bazel.build/modules/rules_android/0.7.1/MODULE.bazel": "a806fc382a774252f228a40e3b11b9fcc6276f8778c7fb33e9f72937c6258363",
+    "https://bcr.bazel.build/modules/rules_android/0.7.1/source.json": "151440aed3f0f73a00d4ed5cec5d31f63a6fef9b95d8fab1eb1810150fa525f2",
     "https://bcr.bazel.build/modules/rules_apple/3.16.0/MODULE.bazel": "0d1caf0b8375942ce98ea944be754a18874041e4e0459401d925577624d3a54a",
-    "https://bcr.bazel.build/modules/rules_apple/3.16.0/source.json": "d8b5fe461272018cc07cfafce11fe369c7525330804c37eec5a82f84cd475366",
+    "https://bcr.bazel.build/modules/rules_apple/4.1.0/MODULE.bazel": "76e10fd4a48038d3fc7c5dc6e63b7063bbf5304a2e3bd42edda6ec660eebea68",
+    "https://bcr.bazel.build/modules/rules_apple/4.1.0/source.json": "8ee81e1708756f81b343a5eb2b2f0b953f1d25c4ab3d4a68dc02754872e80715",
     "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",
@@ -130,9 +144,13 @@
     "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e",
     "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5",
     "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513",
+    "https://bcr.bazel.build/modules/rules_cc/0.1.2/MODULE.bazel": "557ddc3a96858ec0d465a87c0a931054d7dcfd6583af2c7ed3baf494407fd8d0",
+    "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8",
     "https://bcr.bazel.build/modules/rules_cc/0.2.0/MODULE.bazel": "b5c17f90458caae90d2ccd114c81970062946f49f355610ed89bebf954f5783c",
+    "https://bcr.bazel.build/modules/rules_cc/0.2.13/MODULE.bazel": "eecdd666eda6be16a8d9dc15e44b5c75133405e820f620a234acc4b1fdc5aa37",
     "https://bcr.bazel.build/modules/rules_cc/0.2.14/MODULE.bazel": "353c99ed148887ee89c54a17d4100ae7e7e436593d104b668476019023b58df8",
-    "https://bcr.bazel.build/modules/rules_cc/0.2.14/source.json": "55d0a4587c5592fad350f6e698530f4faf0e7dd15e69d43f8d87e220c78bea54",
+    "https://bcr.bazel.build/modules/rules_cc/0.2.17/MODULE.bazel": "1849602c86cb60da8613d2de887f9566a6d354a6df6d7009f9d04a14402f9a84",
+    "https://bcr.bazel.build/modules/rules_cc/0.2.17/source.json": "3832f45d145354049137c0090df04629d9c2b5493dc5c2bf46f1834040133a07",
     "https://bcr.bazel.build/modules/rules_cc/0.2.8/MODULE.bazel": "f1df20f0bf22c28192a794f29b501ee2018fa37a3862a1a2132ae2940a23a642",
     "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",
@@ -141,40 +159,38 @@
     "https://bcr.bazel.build/modules/rules_go/0.46.0/MODULE.bazel": "3477df8bdcc49e698b9d25f734c4f3a9f5931ff34ee48a2c662be168f5f2d3fd",
     "https://bcr.bazel.build/modules/rules_go/0.50.1/MODULE.bazel": "b91a308dc5782bb0a8021ad4330c81fea5bda77f96b9e4c117b9b9c8f6665ee0",
     "https://bcr.bazel.build/modules/rules_go/0.51.0-rc2/MODULE.bazel": "edfc3a9cea7bedb0eaaff37b0d7817c1a4bf72b3c615580b0ffcee6c52690fd4",
-    "https://bcr.bazel.build/modules/rules_go/0.51.0-rc2/source.json": "6b5cd0b3da2bd0e6949580851db990a04af0a285f072b9a0f059424457cd8cc9",
+    "https://bcr.bazel.build/modules/rules_go/0.53.0/MODULE.bazel": "a4ed760d3ac0dbc0d7b967631a9a3fd9100d28f7d9fcf214b4df87d4bfff5f9a",
+    "https://bcr.bazel.build/modules/rules_go/0.59.0/MODULE.bazel": "b7e43e7414a3139a7547d1b4909b29085fbe5182b6c58cbe1ed4c6272815aeae",
+    "https://bcr.bazel.build/modules/rules_go/0.60.0/MODULE.bazel": "4a57ff2ffc2a3570e3c5646575c5a4b07287e91bcdac5d1f72383d51502b48cb",
+    "https://bcr.bazel.build/modules/rules_go/0.60.0/source.json": "1e21368c5e0c3013a110bd79a8fcff8ca46b5bcb2b561713a7273cbfcff7c464",
     "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.3.0/MODULE.bazel": "a97c7678c19f236a956ad260d59c86e10a463badb7eb2eda787490f4c969b963",
-    "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.1.0/MODULE.bazel": "30d9135a2b6561c761bd67bd4990da591e6bdc128790ce3e7afd6a3558b2fb64",
     "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.4.0/MODULE.bazel": "a592852f8a3dd539e82ee6542013bf2cadfc4c6946be8941e189d224500a8934",
     "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe",
     "https://bcr.bazel.build/modules/rules_java/8.13.0/MODULE.bazel": "0444ebf737d144cf2bb2ccb368e7f1cce735264285f2a3711785827c1686625e",
-    "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615",
-    "https://bcr.bazel.build/modules/rules_java/8.16.1/MODULE.bazel": "0f20b1cecaa8e52f60a8f071e59a20b4e3b9a67f6c56c802ea256f6face692d3",
-    "https://bcr.bazel.build/modules/rules_java/8.16.1/source.json": "072f8d11264edc499621be2dc9ea01d6395db5aa6f8799c034ae01a3e857f2e4",
     "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017",
     "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939",
     "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71",
     "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2",
+    "https://bcr.bazel.build/modules/rules_java/9.0.3/MODULE.bazel": "1f98ed015f7e744a745e0df6e898a7c5e83562d6b759dfd475c76456dda5ccea",
+    "https://bcr.bazel.build/modules/rules_java/9.3.0/MODULE.bazel": "f657c72d65ac449caae9abf2e68e66c0d36f9416848c4c4903d0b3234229e7f2",
+    "https://bcr.bazel.build/modules/rules_java/9.3.0/source.json": "59ae7e662c3c7042b88bbb42ad12483523e234c65ebe4c51611baa43e85cb248",
     "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.10/MODULE.bazel": "33e636ca6bc9ee0fa090a38aa33c631ded2d8cf6fead4124181d1b35dc474f7c",
     "https://bcr.bazel.build/modules/rules_jvm_external/6.10/source.json": "c191249787625db72616a3fb3cc2786ab57355a2e3b615402b8b3b66b0f995b7",
     "https://bcr.bazel.build/modules/rules_jvm_external/6.2/MODULE.bazel": "36a6e52487a855f33cb960724eb56547fa87e2c98a0474c3acad94339d7f8e99",
     "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0",
     "https://bcr.bazel.build/modules/rules_jvm_external/6.6/MODULE.bazel": "153042249c7060536dc95b6bb9f9bb8063b8a0b0cb7acdb381bddbc2374aed55",
     "https://bcr.bazel.build/modules/rules_jvm_external/6.7/MODULE.bazel": "e717beabc4d091ecb2c803c2d341b88590e9116b8bf7947915eeb33aab4f96dd",
-    "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59",
+    "https://bcr.bazel.build/modules/rules_jvm_external/6.9/MODULE.bazel": "07c5db05527db7744a54fcffd653e1550d40e0540207a7f7e6d0a4de5bef8274",
     "https://bcr.bazel.build/modules/rules_kotlin/1.9.5/MODULE.bazel": "043a16a572f610558ec2030db3ff0c9938574e7dd9f58bded1bb07c0192ef025",
     "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3",
     "https://bcr.bazel.build/modules/rules_kotlin/2.1.3/MODULE.bazel": "ce7def6d576aa8d3a9c6d10e13b4d157296229674371f67dbf788dae0afae3d5",
@@ -203,10 +219,12 @@
     "https://bcr.bazel.build/modules/rules_python/0.37.1/MODULE.bazel": "3faeb2d9fa0a81f8980643ee33f212308f4d93eea4b9ce6f36d0b742e71e9500",
     "https://bcr.bazel.build/modules/rules_python/0.37.2/MODULE.bazel": "b5ffde91410745750b6c13be1c5dc4555ef5bc50562af4a89fd77807fdde626a",
     "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/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43",
+    "https://bcr.bazel.build/modules/rules_python/1.3.0/MODULE.bazel": "8361d57eafb67c09b75bf4bbe6be360e1b8f4f18118ab48037f2bd50aa2ccb13",
     "https://bcr.bazel.build/modules/rules_python/1.4.1/MODULE.bazel": "8991ad45bdc25018301d6b7e1d3626afc3c8af8aaf4bc04f23d0b99c938b73a6",
-    "https://bcr.bazel.build/modules/rules_python/1.4.1/source.json": "8ec8c90c70ccacc4de8ca1b97f599e756fb59173e898ee08b733006650057c07",
+    "https://bcr.bazel.build/modules/rules_python/1.6.0/MODULE.bazel": "7e04ad8f8d5bea40451cf80b1bd8262552aa73f841415d20db96b7241bd027d8",
+    "https://bcr.bazel.build/modules/rules_python/1.7.0/MODULE.bazel": "d01f995ecd137abf30238ad9ce97f8fc3ac57289c8b24bd0bf53324d937a14f8",
+    "https://bcr.bazel.build/modules/rules_python/1.7.0/source.json": "028a084b65dcf8f4dc4f82f8778dbe65df133f234b316828a82e060d81bdce32",
     "https://bcr.bazel.build/modules/rules_robolectric/4.14.1.2/MODULE.bazel": "d44fec647d0aeb67b9f3b980cf68ba634976f3ae7ccd6c07d790b59b87a4f251",
     "https://bcr.bazel.build/modules/rules_robolectric/4.14.1.2/source.json": "37c10335f2361c337c5c1f34ed36d2da70534c23088062b33a8bdaab68aa9dea",
     "https://bcr.bazel.build/modules/rules_shell/0.1.2/MODULE.bazel": "66e4ca3ce084b04af0b9ff05ff14cab4e5df7503973818bb91cbc6cda08d32fc",
@@ -217,17 +235,18 @@
     "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c",
     "https://bcr.bazel.build/modules/rules_swift/1.16.0/MODULE.bazel": "4a09f199545a60d09895e8281362b1ff3bb08bbde69c6fc87aff5b92fcc916ca",
     "https://bcr.bazel.build/modules/rules_swift/2.1.1/MODULE.bazel": "494900a80f944fc7aa61500c2073d9729dff0b764f0e89b824eb746959bc1046",
-    "https://bcr.bazel.build/modules/rules_swift/2.1.1/source.json": "40fc69dfaac64deddbb75bd99cdac55f4427d9ca0afbe408576a65428427a186",
+    "https://bcr.bazel.build/modules/rules_swift/2.4.0/MODULE.bazel": "1639617eb1ede28d774d967a738b4a68b0accb40650beadb57c21846beab5efd",
+    "https://bcr.bazel.build/modules/rules_swift/3.1.2/MODULE.bazel": "72c8f5cf9d26427cee6c76c8e3853eb46ce6b0412a081b2b6db6e8ad56267400",
+    "https://bcr.bazel.build/modules/rules_swift/3.1.2/source.json": "e85761f3098a6faf40b8187695e3de6d97944e98abd0d8ce579cb2daf6319a66",
     "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.6.2/MODULE.bazel": "7060193196395f5dd668eda046ccbeacebfd98efc77fed418dbe2b82ffaa39fd",
     "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.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5",
     "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216",
     "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/MODULE.bazel": "5e463fbfba7b1701d957555ed45097d7f984211330106ccd1352c6e0af0dcf91",
-    "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/source.json": "32bd87e5f4d7acc57c5b2ff7c325ae3061d5e242c0c4c214ae87e0f1c13e54cb",
+    "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.2/MODULE.bazel": "75aab2373a4bbe2a1260b9bf2a1ebbdbf872d3bd36f80bff058dccd82e89422f",
+    "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.2/source.json": "5fba48bbe0ba48761f9e9f75f92876cafb5d07c0ce059cc7a8027416de94a05b",
     "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43",
     "https://bcr.bazel.build/modules/upb/0.0.0-20230516-61a97ef/MODULE.bazel": "c0df5e35ad55e264160417fd0875932ee3c9dda63d9fccace35ac62f45e1b6f9",
     "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0",
@@ -240,13 +259,12 @@
   "moduleExtensions": {
     "@@pybind11_bazel+//:internal_configure.bzl%internal_configure_extension": {
       "general": {
-        "bzlTransitiveDigest": "NFQjcZF+fAvf5fDH+pqsx4JrfzP9PuHBz6S6ZutIbnw=",
+        "bzlTransitiveDigest": "06cynZ1bCvvy8zHPrrDlXq+Z68xmjctHpfFxi+zEpJY=",
         "usagesDigest": "D1r3lfzMuUBFxgG8V6o0bQTLMk3GkaGOaPzw53wrwyw=",
-        "recordedFileInputs": {
-          "@@pybind11_bazel+//MODULE.bazel": "e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34"
-        },
-        "recordedDirentsInputs": {},
-        "envVariables": {},
+        "recordedInputs": [
+          "REPO_MAPPING:pybind11_bazel+,bazel_tools bazel_tools",
+          "FILE:@@pybind11_bazel+//MODULE.bazel e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34"
+        ],
         "generatedRepoSpecs": {
           "pybind11": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
@@ -258,23 +276,16 @@
               ]
             }
           }
-        },
-        "recordedRepoMappingEntries": [
-          [
-            "pybind11_bazel+",
-            "bazel_tools",
-            "bazel_tools"
-          ]
-        ]
+        }
       }
     },
     "@@rules_android+//bzlmod_extensions:apksig.bzl%apksig_extension": {
       "general": {
-        "bzlTransitiveDigest": "By9qVNN7G4oL1vYOJXye7Dp/CbR2ar9oxAW8WXAVcVw=",
-        "usagesDigest": "xq6OVkELeJvOgYo3oY/sUBsGFbcqdV+9BYiNgSPV/po=",
-        "recordedFileInputs": {},
-        "recordedDirentsInputs": {},
-        "envVariables": {},
+        "bzlTransitiveDigest": "KrgiB8lWxqVdbipL9YIYOuGjS80xlZIM/EBvUg8SVd0=",
+        "usagesDigest": "zr/niBQ/s2fHozWAsg4vI70wAxcuFjG+QtM15qGkq9o=",
+        "recordedInputs": [
+          "REPO_MAPPING:rules_android+,bazel_tools bazel_tools"
+        ],
         "generatedRepoSpecs": {
           "apksig": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
@@ -283,23 +294,16 @@
               "build_file": "@@rules_android+//bzlmod_extensions:apksig.BUILD"
             }
           }
-        },
-        "recordedRepoMappingEntries": [
-          [
-            "rules_android+",
-            "bazel_tools",
-            "bazel_tools"
-          ]
-        ]
+        }
       }
     },
     "@@rules_android+//bzlmod_extensions:com_android_dex.bzl%com_android_dex_extension": {
       "general": {
-        "bzlTransitiveDigest": "rvWbJQc8jInfIAaXIMhSOqUlwM9HVeLey6q0ISvg08Y=",
-        "usagesDigest": "toF8IFMu98H/VU2p1sfVC5fVXVYJunpbbmtM6tOsQXY=",
-        "recordedFileInputs": {},
-        "recordedDirentsInputs": {},
-        "envVariables": {},
+        "bzlTransitiveDigest": "WYXjwqaZbEnV+ZWsKE3oDMpF5XVw8hxzet83NtyT8TM=",
+        "usagesDigest": "c1Y/KGGjUYCyd8zNIVTUh1bynVXRFz6xGKaSCBpQANM=",
+        "recordedInputs": [
+          "REPO_MAPPING:rules_android+,bazel_tools bazel_tools"
+        ],
         "generatedRepoSpecs": {
           "com_android_dex": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
@@ -308,159 +312,29 @@
               "build_file": "@@rules_android+//bzlmod_extensions:com_android_dex.BUILD"
             }
           }
-        },
-        "recordedRepoMappingEntries": [
-          [
-            "rules_android+",
-            "bazel_tools",
-            "bazel_tools"
-          ]
-        ]
+        }
       }
     },
     "@@rules_android+//rules/android_sdk_repository:rule.bzl%android_sdk_repository_extension": {
       "general": {
-        "bzlTransitiveDigest": "NAy+0M15JNVEBb8Tny6t7j3lKqTnsAMjoBB6LJ+C370=",
-        "usagesDigest": "g9Ur6X6qhf9a8MmY9qXU/jFjkyk/aZVBegI0yVMF0z4=",
-        "recordedFileInputs": {},
-        "recordedDirentsInputs": {},
-        "envVariables": {},
+        "bzlTransitiveDigest": "+rMrzIrv7sImYmkbXJYv+gFpTJQ79X3MpwwMLI2A+oA=",
+        "usagesDigest": "iEGI2aNDMkHt9LXCdViLNUUOslpiVj2DrevWWXZEFnU=",
+        "recordedInputs": [],
         "generatedRepoSpecs": {
           "androidsdk": {
             "repoRuleId": "@@rules_android+//rules/android_sdk_repository:rule.bzl%_android_sdk_repository",
             "attributes": {}
           }
-        },
-        "recordedRepoMappingEntries": []
-      }
-    },
-    "@@rules_apple+//apple:apple.bzl%provisioning_profile_repository_extension": {
-      "general": {
-        "bzlTransitiveDigest": "LKT4eTNHatc2Ti8tCILPSTYqQAc4030bEjspG/P+3TI=",
-        "usagesDigest": "vsJl8Rw5NL+5Ag2wdUDoTeRF/5klkXO8545Iy7U1Q08=",
-        "recordedFileInputs": {},
-        "recordedDirentsInputs": {},
-        "envVariables": {},
-        "generatedRepoSpecs": {
-          "local_provisioning_profiles": {
-            "repoRuleId": "@@rules_apple+//apple/internal:local_provisioning_profiles.bzl%provisioning_profile_repository",
-            "attributes": {}
-          }
-        },
-        "recordedRepoMappingEntries": [
-          [
-            "apple_support+",
-            "bazel_skylib",
-            "bazel_skylib+"
-          ],
-          [
-            "bazel_tools",
-            "rules_cc",
-            "rules_cc+"
-          ],
-          [
-            "rules_apple+",
-            "bazel_skylib",
-            "bazel_skylib+"
-          ],
-          [
-            "rules_apple+",
-            "bazel_tools",
-            "bazel_tools"
-          ],
-          [
-            "rules_apple+",
-            "build_bazel_apple_support",
-            "apple_support+"
-          ],
-          [
-            "rules_apple+",
-            "build_bazel_rules_swift",
-            "rules_swift+"
-          ],
-          [
-            "rules_cc+",
-            "bazel_tools",
-            "bazel_tools"
-          ],
-          [
-            "rules_cc+",
-            "cc_compatibility_proxy",
-            "rules_cc++compatibility_proxy+cc_compatibility_proxy"
-          ],
-          [
-            "rules_cc+",
-            "rules_cc",
-            "rules_cc+"
-          ],
-          [
-            "rules_cc++compatibility_proxy+cc_compatibility_proxy",
-            "rules_cc",
-            "rules_cc+"
-          ],
-          [
-            "rules_swift+",
-            "bazel_skylib",
-            "bazel_skylib+"
-          ],
-          [
-            "rules_swift+",
-            "bazel_tools",
-            "bazel_tools"
-          ],
-          [
-            "rules_swift+",
-            "build_bazel_apple_support",
-            "apple_support+"
-          ],
-          [
-            "rules_swift+",
-            "build_bazel_rules_swift",
-            "rules_swift+"
-          ],
-          [
-            "rules_swift+",
-            "build_bazel_rules_swift_local_config",
-            "rules_swift++non_module_deps+build_bazel_rules_swift_local_config"
-          ]
-        ]
-      }
-    },
-    "@@rules_apple+//apple:extensions.bzl%non_module_deps": {
-      "general": {
-        "bzlTransitiveDigest": "4xtddSlWIQdtVNVuvOI62fJfQVETHZCVWFvYYwQHMR4=",
-        "usagesDigest": "M3VqFpeTCo4qmrNKGZw0dxBHvTYDrfV3cscGzlSAhQ4=",
-        "recordedFileInputs": {},
-        "recordedDirentsInputs": {},
-        "envVariables": {},
-        "generatedRepoSpecs": {
-          "xctestrunner": {
-            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
-            "attributes": {
-              "urls": [
-                "https://github.com/google/xctestrunner/archive/b7698df3d435b6491b4b4c0f9fc7a63fbed5e3a6.tar.gz"
-              ],
-              "strip_prefix": "xctestrunner-b7698df3d435b6491b4b4c0f9fc7a63fbed5e3a6",
-              "sha256": "ae3a063c985a8633cb7eb566db21656f8db8eb9a0edb8c182312c7f0db53730d"
-            }
-          }
-        },
-        "recordedRepoMappingEntries": [
-          [
-            "rules_apple+",
-            "bazel_tools",
-            "bazel_tools"
-          ]
-        ]
+        }
       }
     },
     "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": {
       "general": {
-        "bzlTransitiveDigest": "HJP3wKFbPhB1mSYjJS6kbXEiP+OQxvsBdqpvyJN6I3s=",
+        "bzlTransitiveDigest": "m2i9p9Fn+7u7WGI0mz6K5GlmmtUuwReSjDHIISY08GI=",
         "usagesDigest": "qTwqmKKUfWcPdvM0waG+CPWrxsbeAWVeUxavm7tEk9E=",
-        "recordedFileInputs": {},
-        "recordedDirentsInputs": {},
-        "envVariables": {},
+        "recordedInputs": [
+          "REPO_MAPPING:rules_kotlin+,bazel_tools bazel_tools"
+        ],
         "generatedRepoSpecs": {
           "com_github_jetbrains_kotlin_git": {
             "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository",
@@ -525,23 +399,185 @@
               ]
             }
           }
-        },
-        "recordedRepoMappingEntries": [
-          [
-            "rules_kotlin+",
-            "bazel_tools",
-            "bazel_tools"
-          ]
-        ]
+        }
+      }
+    },
+    "@@rules_python+//python/extensions:config.bzl%config": {
+      "general": {
+        "bzlTransitiveDigest": "2hLgIvNVTLgxus0ZuXtleBe70intCfo0cHs8qvt6cdM=",
+        "usagesDigest": "ZVSXMAGpD+xzVNPuvF1IoLBkty7TROO0+akMapt1pAg=",
+        "recordedInputs": [
+          "REPO_MAPPING:rules_python+,bazel_tools bazel_tools",
+          "REPO_MAPPING:rules_python+,pypi__build rules_python++config+pypi__build",
+          "REPO_MAPPING:rules_python+,pypi__click rules_python++config+pypi__click",
+          "REPO_MAPPING:rules_python+,pypi__colorama rules_python++config+pypi__colorama",
+          "REPO_MAPPING:rules_python+,pypi__importlib_metadata rules_python++config+pypi__importlib_metadata",
+          "REPO_MAPPING:rules_python+,pypi__installer rules_python++config+pypi__installer",
+          "REPO_MAPPING:rules_python+,pypi__more_itertools rules_python++config+pypi__more_itertools",
+          "REPO_MAPPING:rules_python+,pypi__packaging rules_python++config+pypi__packaging",
+          "REPO_MAPPING:rules_python+,pypi__pep517 rules_python++config+pypi__pep517",
+          "REPO_MAPPING:rules_python+,pypi__pip rules_python++config+pypi__pip",
+          "REPO_MAPPING:rules_python+,pypi__pip_tools rules_python++config+pypi__pip_tools",
+          "REPO_MAPPING:rules_python+,pypi__pyproject_hooks rules_python++config+pypi__pyproject_hooks",
+          "REPO_MAPPING:rules_python+,pypi__setuptools rules_python++config+pypi__setuptools",
+          "REPO_MAPPING:rules_python+,pypi__tomli rules_python++config+pypi__tomli",
+          "REPO_MAPPING:rules_python+,pypi__wheel rules_python++config+pypi__wheel",
+          "REPO_MAPPING:rules_python+,pypi__zipp rules_python++config+pypi__zipp"
+        ],
+        "generatedRepoSpecs": {
+          "rules_python_internal": {
+            "repoRuleId": "@@rules_python+//python/private:internal_config_repo.bzl%internal_config_repo",
+            "attributes": {
+              "transition_setting_generators": {},
+              "transition_settings": []
+            }
+          },
+          "pypi__build": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/e2/03/f3c8ba0a6b6e30d7d18c40faab90807c9bb5e9a1e3b2fe2008af624a9c97/build-1.2.1-py3-none-any.whl",
+              "sha256": "75e10f767a433d9a86e50d83f418e83efc18ede923ee5ff7df93b6cb0306c5d4",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude to avoid non-determinism.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/*.pyc.*\",  # During pyc creation, temp files named *.pyc.NNN are created\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__click": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl",
+              "sha256": "ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude to avoid non-determinism.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/*.pyc.*\",  # During pyc creation, temp files named *.pyc.NNN are created\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__colorama": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl",
+              "sha256": "4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude to avoid non-determinism.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/*.pyc.*\",  # During pyc creation, temp files named *.pyc.NNN are created\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__importlib_metadata": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/2d/0a/679461c511447ffaf176567d5c496d1de27cbe34a87df6677d7171b2fbd4/importlib_metadata-7.1.0-py3-none-any.whl",
+              "sha256": "30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude to avoid non-determinism.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/*.pyc.*\",  # During pyc creation, temp files named *.pyc.NNN are created\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__installer": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/e5/ca/1172b6638d52f2d6caa2dd262ec4c811ba59eee96d54a7701930726bce18/installer-0.7.0-py3-none-any.whl",
+              "sha256": "05d1933f0a5ba7d8d6296bb6d5018e7c94fa473ceb10cf198a92ccea19c27b53",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude to avoid non-determinism.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/*.pyc.*\",  # During pyc creation, temp files named *.pyc.NNN are created\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__more_itertools": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/50/e2/8e10e465ee3987bb7c9ab69efb91d867d93959095f4807db102d07995d94/more_itertools-10.2.0-py3-none-any.whl",
+              "sha256": "686b06abe565edfab151cb8fd385a05651e1fdf8f0a14191e4439283421f8684",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude to avoid non-determinism.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/*.pyc.*\",  # During pyc creation, temp files named *.pyc.NNN are created\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__packaging": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/49/df/1fceb2f8900f8639e278b056416d49134fb8d84c5942ffaa01ad34782422/packaging-24.0-py3-none-any.whl",
+              "sha256": "2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude to avoid non-determinism.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/*.pyc.*\",  # During pyc creation, temp files named *.pyc.NNN are created\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__pep517": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/25/6e/ca4a5434eb0e502210f591b97537d322546e4833dcb4d470a48c375c5540/pep517-0.13.1-py3-none-any.whl",
+              "sha256": "31b206f67165b3536dd577c5c3f1518e8fbaf38cbc57efff8369a392feff1721",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude to avoid non-determinism.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/*.pyc.*\",  # During pyc creation, temp files named *.pyc.NNN are created\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__pip": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/8a/6a/19e9fe04fca059ccf770861c7d5721ab4c2aebc539889e97c7977528a53b/pip-24.0-py3-none-any.whl",
+              "sha256": "ba0d021a166865d2265246961bec0152ff124de910c5cc39f1156ce3fa7c69dc",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude to avoid non-determinism.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/*.pyc.*\",  # During pyc creation, temp files named *.pyc.NNN are created\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__pip_tools": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/0d/dc/38f4ce065e92c66f058ea7a368a9c5de4e702272b479c0992059f7693941/pip_tools-7.4.1-py3-none-any.whl",
+              "sha256": "4c690e5fbae2f21e87843e89c26191f0d9454f362d8acdbd695716493ec8b3a9",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude to avoid non-determinism.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/*.pyc.*\",  # During pyc creation, temp files named *.pyc.NNN are created\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__pyproject_hooks": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/ae/f3/431b9d5fe7d14af7a32340792ef43b8a714e7726f1d7b69cc4e8e7a3f1d7/pyproject_hooks-1.1.0-py3-none-any.whl",
+              "sha256": "7ceeefe9aec63a1064c18d939bdc3adf2d8aa1988a510afec15151578b232aa2",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude to avoid non-determinism.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/*.pyc.*\",  # During pyc creation, temp files named *.pyc.NNN are created\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__setuptools": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/90/99/158ad0609729111163fc1f674a5a42f2605371a4cf036d0441070e2f7455/setuptools-78.1.1-py3-none-any.whl",
+              "sha256": "c3a9c4211ff4c309edb8b8c4f1cbfa7ae324c4ba9f91ff254e3d305b9fd54561",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude to avoid non-determinism.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/*.pyc.*\",  # During pyc creation, temp files named *.pyc.NNN are created\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__tomli": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl",
+              "sha256": "939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude to avoid non-determinism.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/*.pyc.*\",  # During pyc creation, temp files named *.pyc.NNN are created\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__wheel": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/7d/cd/d7460c9a869b16c3dd4e1e403cce337df165368c71d6af229a74699622ce/wheel-0.43.0-py3-none-any.whl",
+              "sha256": "55c570405f142630c6b9f72fe09d9b67cf1477fcf543ae5b8dcb1f5b7377da81",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude to avoid non-determinism.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/*.pyc.*\",  # During pyc creation, temp files named *.pyc.NNN are created\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          },
+          "pypi__zipp": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "url": "https://files.pythonhosted.org/packages/da/55/a03fd7240714916507e1fcf7ae355bd9d9ed2e6db492595f1a67f61681be/zipp-3.18.2-py3-none-any.whl",
+              "sha256": "dce197b859eb796242b0622af1b8beb0a722d52aa2f57133ead08edd5bf5374e",
+              "type": "zip",
+              "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n    name = \"lib\",\n    srcs = glob([\"**/*.py\"]),\n    data = glob([\"**/*\"], exclude=[\n        # These entries include those put into user-installed dependencies by\n        # data_exclude to avoid non-determinism.\n        \"**/*.py\",\n        \"**/*.pyc\",\n        \"**/*.pyc.*\",  # During pyc creation, temp files named *.pyc.NNN are created\n        \"**/*.dist-info/RECORD\",\n        \"BUILD\",\n        \"WORKSPACE\",\n    ]),\n    # This makes this directory a top-level in the python import\n    # search path for anything that depends on this.\n    imports = [\".\"],\n)\n"
+            }
+          }
+        }
       }
     },
     "@@rules_python+//python/uv:uv.bzl%uv": {
       "general": {
-        "bzlTransitiveDigest": "Xpqjnjzy6zZ90Es9Wa888ZLHhn7IsNGbph/e6qoxzw8=",
-        "usagesDigest": "4JapxcpS0mL3524k0TZJffAtVyuRjDHZvN9kBRxxF1U=",
-        "recordedFileInputs": {},
-        "recordedDirentsInputs": {},
-        "envVariables": {},
+        "bzlTransitiveDigest": "ijW9KS7qsIY+yBVvJ+Nr1mzwQox09j13DnE3iIwaeTM=",
+        "usagesDigest": "H8dQoNZcoqP+Mu0tHZTi4KHATzvNkM5ePuEqoQdklIU=",
+        "recordedInputs": [
+          "REPO_MAPPING:rules_python+,bazel_tools bazel_tools",
+          "REPO_MAPPING:rules_python+,platforms platforms"
+        ],
         "generatedRepoSpecs": {
           "uv": {
             "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo",
@@ -561,175 +597,336 @@
               "toolchain_target_settings": {}
             }
           }
-        },
-        "recordedRepoMappingEntries": [
-          [
-            "rules_python+",
-            "platforms",
-            "platforms"
-          ]
-        ]
-      }
-    },
-    "@@rules_swift+//swift:extensions.bzl%non_module_deps": {
-      "general": {
-        "bzlTransitiveDigest": "6axDCXf6fQoPav8hojnUBxGA0FAMqLvtpC1cRsisCdw=",
-        "usagesDigest": "mhACFnrdMv9Wi0Mt67bxocJqviRkDSV+Ee5Mqdj5akA=",
-        "recordedFileInputs": {},
-        "recordedDirentsInputs": {},
-        "envVariables": {},
-        "generatedRepoSpecs": {
-          "com_github_apple_swift_protobuf": {
-            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
-            "attributes": {
-              "urls": [
-                "https://github.com/apple/swift-protobuf/archive/1.20.2.tar.gz"
-              ],
-              "sha256": "3fb50bd4d293337f202d917b6ada22f9548a0a0aed9d9a4d791e6fbd8a246ebb",
-              "strip_prefix": "swift-protobuf-1.20.2/",
-              "build_file": "@@rules_swift+//third_party:com_github_apple_swift_protobuf/BUILD.overlay"
-            }
-          },
-          "com_github_grpc_grpc_swift": {
-            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
-            "attributes": {
-              "urls": [
-                "https://github.com/grpc/grpc-swift/archive/1.16.0.tar.gz"
-              ],
-              "sha256": "58b60431d0064969f9679411264b82e40a217ae6bd34e17096d92cc4e47556a5",
-              "strip_prefix": "grpc-swift-1.16.0/",
-              "build_file": "@@rules_swift+//third_party:com_github_grpc_grpc_swift/BUILD.overlay"
-            }
-          },
-          "com_github_apple_swift_docc_symbolkit": {
-            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
-            "attributes": {
-              "urls": [
-                "https://github.com/apple/swift-docc-symbolkit/archive/refs/tags/swift-5.10-RELEASE.tar.gz"
-              ],
-              "sha256": "de1d4b6940468ddb53b89df7aa1a81323b9712775b0e33e8254fa0f6f7469a97",
-              "strip_prefix": "swift-docc-symbolkit-swift-5.10-RELEASE",
-              "build_file": "@@rules_swift+//third_party:com_github_apple_swift_docc_symbolkit/BUILD.overlay"
-            }
-          },
-          "com_github_apple_swift_nio": {
-            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
-            "attributes": {
-              "urls": [
-                "https://github.com/apple/swift-nio/archive/2.42.0.tar.gz"
-              ],
-              "sha256": "e3304bc3fb53aea74a3e54bd005ede11f6dc357117d9b1db642d03aea87194a0",
-              "strip_prefix": "swift-nio-2.42.0/",
-              "build_file": "@@rules_swift+//third_party:com_github_apple_swift_nio/BUILD.overlay"
-            }
-          },
-          "com_github_apple_swift_nio_http2": {
-            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
-            "attributes": {
-              "urls": [
-                "https://github.com/apple/swift-nio-http2/archive/1.26.0.tar.gz"
-              ],
-              "sha256": "f0edfc9d6a7be1d587e5b403f2d04264bdfae59aac1d74f7d974a9022c6d2b25",
-              "strip_prefix": "swift-nio-http2-1.26.0/",
-              "build_file": "@@rules_swift+//third_party:com_github_apple_swift_nio_http2/BUILD.overlay"
-            }
-          },
-          "com_github_apple_swift_nio_transport_services": {
-            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
-            "attributes": {
-              "urls": [
-                "https://github.com/apple/swift-nio-transport-services/archive/1.15.0.tar.gz"
-              ],
-              "sha256": "f3498dafa633751a52b9b7f741f7ac30c42bcbeb3b9edca6d447e0da8e693262",
-              "strip_prefix": "swift-nio-transport-services-1.15.0/",
-              "build_file": "@@rules_swift+//third_party:com_github_apple_swift_nio_transport_services/BUILD.overlay"
-            }
-          },
-          "com_github_apple_swift_nio_extras": {
-            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
-            "attributes": {
-              "urls": [
-                "https://github.com/apple/swift-nio-extras/archive/1.4.0.tar.gz"
-              ],
-              "sha256": "4684b52951d9d9937bb3e8ccd6b5daedd777021ef2519ea2f18c4c922843b52b",
-              "strip_prefix": "swift-nio-extras-1.4.0/",
-              "build_file": "@@rules_swift+//third_party:com_github_apple_swift_nio_extras/BUILD.overlay"
-            }
-          },
-          "com_github_apple_swift_log": {
-            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
-            "attributes": {
-              "urls": [
-                "https://github.com/apple/swift-log/archive/1.4.4.tar.gz"
-              ],
-              "sha256": "48fe66426c784c0c20031f15dc17faf9f4c9037c192bfac2f643f65cb2321ba0",
-              "strip_prefix": "swift-log-1.4.4/",
-              "build_file": "@@rules_swift+//third_party:com_github_apple_swift_log/BUILD.overlay"
-            }
-          },
-          "com_github_apple_swift_nio_ssl": {
-            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
-            "attributes": {
-              "urls": [
-                "https://github.com/apple/swift-nio-ssl/archive/2.23.0.tar.gz"
-              ],
-              "sha256": "4787c63f61dd04d99e498adc3d1a628193387e41efddf8de19b8db04544d016d",
-              "strip_prefix": "swift-nio-ssl-2.23.0/",
-              "build_file": "@@rules_swift+//third_party:com_github_apple_swift_nio_ssl/BUILD.overlay"
-            }
-          },
-          "com_github_apple_swift_collections": {
-            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
-            "attributes": {
-              "urls": [
-                "https://github.com/apple/swift-collections/archive/1.0.4.tar.gz"
-              ],
-              "sha256": "d9e4c8a91c60fb9c92a04caccbb10ded42f4cb47b26a212bc6b39cc390a4b096",
-              "strip_prefix": "swift-collections-1.0.4/",
-              "build_file": "@@rules_swift+//third_party:com_github_apple_swift_collections/BUILD.overlay"
-            }
-          },
-          "com_github_apple_swift_atomics": {
-            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
-            "attributes": {
-              "urls": [
-                "https://github.com/apple/swift-atomics/archive/1.1.0.tar.gz"
-              ],
-              "sha256": "1bee7f469f7e8dc49f11cfa4da07182fbc79eab000ec2c17bfdce468c5d276fb",
-              "strip_prefix": "swift-atomics-1.1.0/",
-              "build_file": "@@rules_swift+//third_party:com_github_apple_swift_atomics/BUILD.overlay"
-            }
-          },
-          "build_bazel_rules_swift_index_import": {
-            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
-            "attributes": {
-              "build_file": "@@rules_swift+//third_party:build_bazel_rules_swift_index_import/BUILD.overlay",
-              "canonical_id": "index-import-5.8",
-              "urls": [
-                "https://github.com/MobileNativeFoundation/index-import/releases/download/5.8.0.1/index-import.tar.gz"
-              ],
-              "sha256": "28c1ffa39d99e74ed70623899b207b41f79214c498c603915aef55972a851a15"
-            }
-          },
-          "build_bazel_rules_swift_local_config": {
-            "repoRuleId": "@@rules_swift+//swift/internal:swift_autoconfiguration.bzl%swift_autoconfiguration",
-            "attributes": {}
-          }
-        },
-        "recordedRepoMappingEntries": [
-          [
-            "rules_swift+",
-            "bazel_tools",
-            "bazel_tools"
-          ],
-          [
-            "rules_swift+",
-            "build_bazel_rules_swift",
-            "rules_swift+"
-          ]
-        ]
+        }
       }
     }
   },
-  "facts": {}
+  "facts": {
+    "@@rules_go+//go:extensions.bzl%go_sdk": {
+      "1.22.4": {
+        "aix_ppc64": [
+          "go1.22.4.aix-ppc64.tar.gz",
+          "b9647fa9fc83a0cc5d4f092a19eaeaecf45f063a5aa7d4962fde65aeb7ae6ce1"
+        ],
+        "darwin_amd64": [
+          "go1.22.4.darwin-amd64.tar.gz",
+          "c95967f50aa4ace34af0c236cbdb49a9a3e80ee2ad09d85775cb4462a5c19ed3"
+        ],
+        "darwin_arm64": [
+          "go1.22.4.darwin-arm64.tar.gz",
+          "242b78dc4c8f3d5435d28a0d2cec9b4c1aa999b601fb8aa59fb4e5a1364bf827"
+        ],
+        "dragonfly_amd64": [
+          "go1.22.4.dragonfly-amd64.tar.gz",
+          "f2fbb51af4719d3616efb482d6ed2b96579b474156f85a7ddc6f126764feec4b"
+        ],
+        "freebsd_386": [
+          "go1.22.4.freebsd-386.tar.gz",
+          "7c54884bb9f274884651d41e61d1bc12738863ad1497e97ea19ad0e9aa6bf7b5"
+        ],
+        "freebsd_amd64": [
+          "go1.22.4.freebsd-amd64.tar.gz",
+          "88d44500e1701dd35797619774d6dd51bf60f45a8338b0a82ddc018e4e63fb78"
+        ],
+        "freebsd_arm64": [
+          "go1.22.4.freebsd-arm64.tar.gz",
+          "726dc093cf020277be45debf03c3b02b43c2efb3e2a5d4fba8f52579d65327dc"
+        ],
+        "freebsd_armv6l": [
+          "go1.22.4.freebsd-arm.tar.gz",
+          "3d9efe47db142a22679aba46b1772e3900b0d87ae13bd2b3bc80dbf2ac0b2cd6"
+        ],
+        "freebsd_riscv64": [
+          "go1.22.4.freebsd-riscv64.tar.gz",
+          "5f6b67e5e32f1d6ccb2d4dcb44934a5e2e870a877ba7443d86ec43cfc28afa71"
+        ],
+        "illumos_amd64": [
+          "go1.22.4.illumos-amd64.tar.gz",
+          "d56ecc2f85b6418a21ef83879594d0c42ab4f65391a676bb12254870e6690d63"
+        ],
+        "linux_386": [
+          "go1.22.4.linux-386.tar.gz",
+          "47a2a8d249a91eb8605c33bceec63aedda0441a43eac47b4721e3975ff916cec"
+        ],
+        "linux_amd64": [
+          "go1.22.4.linux-amd64.tar.gz",
+          "ba79d4526102575196273416239cca418a651e049c2b099f3159db85e7bade7d"
+        ],
+        "linux_arm64": [
+          "go1.22.4.linux-arm64.tar.gz",
+          "a8e177c354d2e4a1b61020aca3562e27ea3e8f8247eca3170e3fa1e0c2f9e771"
+        ],
+        "linux_armv6l": [
+          "go1.22.4.linux-armv6l.tar.gz",
+          "e2b143fbacbc9cbd448e9ef41ac3981f0488ce849af1cf37e2341d09670661de"
+        ],
+        "linux_loong64": [
+          "go1.22.4.linux-loong64.tar.gz",
+          "e2ff9436e4b34bf6926b06d97916e26d67a909a2effec17967245900f0816f1d"
+        ],
+        "linux_mips": [
+          "go1.22.4.linux-mips.tar.gz",
+          "73f0dcc60458c4770593b05a7bc01cc0d31fc98f948c0c2334812c7a1f2fc3f1"
+        ],
+        "linux_mips64": [
+          "go1.22.4.linux-mips64.tar.gz",
+          "417af97fc2630a647052375768be4c38adcc5af946352ea5b28613ea81ca5d45"
+        ],
+        "linux_mips64le": [
+          "go1.22.4.linux-mips64le.tar.gz",
+          "7486e2d7dd8c98eb44df815ace35a7fe7f30b7c02326e3741bd934077508139b"
+        ],
+        "linux_mipsle": [
+          "go1.22.4.linux-mipsle.tar.gz",
+          "69479c8aad301e459a8365b40cad1074a0dbba5defb9291669f94809c4c4be6e"
+        ],
+        "linux_ppc64": [
+          "go1.22.4.linux-ppc64.tar.gz",
+          "dd238847e65bc3e2745caca475a5db6522a2fcf85cf6c38fc36a06642b19efd7"
+        ],
+        "linux_ppc64le": [
+          "go1.22.4.linux-ppc64le.tar.gz",
+          "a3e5834657ef92523f570f798fed42f1f87bc18222a16815ec76b84169649ec4"
+        ],
+        "linux_riscv64": [
+          "go1.22.4.linux-riscv64.tar.gz",
+          "56a827ff7dc6245bcd7a1e9288dffaa1d8b0fd7468562264c1523daf3b4f1b4a"
+        ],
+        "linux_s390x": [
+          "go1.22.4.linux-s390x.tar.gz",
+          "7590c3e278e2dc6040aae0a39da3ca1eb2e3921673a7304cc34d588c45889eec"
+        ],
+        "netbsd_386": [
+          "go1.22.4.netbsd-386.tar.gz",
+          "ddd2eebe34471a2502de6c5dad04ab27c9fc80cbde7a9ad5b3c66ecec4504e1d"
+        ],
+        "netbsd_amd64": [
+          "go1.22.4.netbsd-amd64.tar.gz",
+          "33af79f6f935f6fbacc5d23876450b3567b79348fc065beef8e64081127dd234"
+        ],
+        "netbsd_arm64": [
+          "go1.22.4.netbsd-arm64.tar.gz",
+          "c9a2971dec9f6d320c6f2b049b2353c6d0a2d35e87b8a4b2d78a2f0d62545f8e"
+        ],
+        "netbsd_armv6l": [
+          "go1.22.4.netbsd-arm.tar.gz",
+          "fa3550ebd5375a70b3bcd342b5a71f4bd271dcbbfaf4eabefa2144ab5d8924b6"
+        ],
+        "openbsd_386": [
+          "go1.22.4.openbsd-386.tar.gz",
+          "d21af022331bfdc2b5b161d616c3a1a4573d33cf7a30416ee509a8f3641deb47"
+        ],
+        "openbsd_amd64": [
+          "go1.22.4.openbsd-amd64.tar.gz",
+          "72c0094c43f7e5722ec49c2a3e9dfa7a1123ac43a5f3a63eecf3e3795d3ff0ae"
+        ],
+        "openbsd_arm64": [
+          "go1.22.4.openbsd-arm64.tar.gz",
+          "a7ab8d4e0b02bf06ed144ba42c61c0e93ee00f2b433415dfd4ad4b6e79f31650"
+        ],
+        "openbsd_armv6l": [
+          "go1.22.4.openbsd-arm.tar.gz",
+          "1096831ea3c5ea3ca57d14251d9eda3786889531eb40d7d6775dcaa324d4b065"
+        ],
+        "openbsd_ppc64": [
+          "go1.22.4.openbsd-ppc64.tar.gz",
+          "9716327c8a628358798898dc5148c49dbbeb5196bf2cbf088e550721a6e4f60b"
+        ],
+        "plan9_386": [
+          "go1.22.4.plan9-386.tar.gz",
+          "a8dd4503c95c32a502a616ab78870a19889c9325fe9bd31eb16dd69346e4bfa8"
+        ],
+        "plan9_amd64": [
+          "go1.22.4.plan9-amd64.tar.gz",
+          "5423a25808d76fe5aca8607a2e5ac5673abf45446b168cb5e9d8519ee9fe39a1"
+        ],
+        "plan9_armv6l": [
+          "go1.22.4.plan9-arm.tar.gz",
+          "6af939ad583f5c85c09c53728ab7d38c3cc2b39167562d6c18a07c5c6608b370"
+        ],
+        "solaris_amd64": [
+          "go1.22.4.solaris-amd64.tar.gz",
+          "e8cabe69c03085725afdb32a6f9998191a3e55a747b270d835fd05000d56abba"
+        ],
+        "windows_386": [
+          "go1.22.4.windows-386.zip",
+          "aca4e2c37278a10f1c70dd0df142f7d66b50334fcee48978d409202d308d6d25"
+        ],
+        "windows_amd64": [
+          "go1.22.4.windows-amd64.zip",
+          "26321c4d945a0035d8a5bc4a1965b0df401ff8ceac66ce2daadabf9030419a98"
+        ],
+        "windows_arm64": [
+          "go1.22.4.windows-arm64.zip",
+          "8a2daa9ea28cbdafddc6171aefed384f4e5b6e714fb52116fe9ed25a132f37ed"
+        ],
+        "windows_armv6l": [
+          "go1.22.4.windows-arm.zip",
+          "5fcd0671a49cecf39b41021621ee1b6e7aa1370f37122b72e80d4fd4185833b6"
+        ]
+      },
+      "1.25.0": {
+        "aix_ppc64": [
+          "go1.25.0.aix-ppc64.tar.gz",
+          "e5234a7dac67bc86c528fe9752fc9d63557918627707a733ab4cac1a6faed2d4"
+        ],
+        "darwin_amd64": [
+          "go1.25.0.darwin-amd64.tar.gz",
+          "5bd60e823037062c2307c71e8111809865116714d6f6b410597cf5075dfd80ef"
+        ],
+        "darwin_arm64": [
+          "go1.25.0.darwin-arm64.tar.gz",
+          "544932844156d8172f7a28f77f2ac9c15a23046698b6243f633b0a0b00c0749c"
+        ],
+        "dragonfly_amd64": [
+          "go1.25.0.dragonfly-amd64.tar.gz",
+          "5ed3cf9a810a1483822538674f1336c06b51aa1b94d6d545a1a0319a48177120"
+        ],
+        "freebsd_386": [
+          "go1.25.0.freebsd-386.tar.gz",
+          "abea5d5c6697e6b5c224731f2158fe87c602996a2a233ac0c4730cd57bf8374e"
+        ],
+        "freebsd_amd64": [
+          "go1.25.0.freebsd-amd64.tar.gz",
+          "86e6fe0a29698d7601c4442052dac48bd58d532c51cccb8f1917df648138730b"
+        ],
+        "freebsd_arm": [
+          "go1.25.0.freebsd-arm.tar.gz",
+          "d90b78e41921f72f30e8bbc81d9dec2cff7ff384a33d8d8debb24053e4336bfe"
+        ],
+        "freebsd_arm64": [
+          "go1.25.0.freebsd-arm64.tar.gz",
+          "451d0da1affd886bfb291b7c63a6018527b269505db21ce6e14724f22ab0662e"
+        ],
+        "freebsd_riscv64": [
+          "go1.25.0.freebsd-riscv64.tar.gz",
+          "7b565f76bd8bda46549eeaaefe0e53b251e644c230577290c0f66b1ecdb3cdbe"
+        ],
+        "illumos_amd64": [
+          "go1.25.0.illumos-amd64.tar.gz",
+          "b1e1fdaab1ad25aa1c08d7a36c97d45d74b98b89c3f78c6d2145f77face54a2c"
+        ],
+        "linux_386": [
+          "go1.25.0.linux-386.tar.gz",
+          "8c602dd9d99bc9453b3995d20ce4baf382cc50855900a0ece5de9929df4a993a"
+        ],
+        "linux_amd64": [
+          "go1.25.0.linux-amd64.tar.gz",
+          "2852af0cb20a13139b3448992e69b868e50ed0f8a1e5940ee1de9e19a123b613"
+        ],
+        "linux_arm64": [
+          "go1.25.0.linux-arm64.tar.gz",
+          "05de75d6994a2783699815ee553bd5a9327d8b79991de36e38b66862782f54ae"
+        ],
+        "linux_armv6l": [
+          "go1.25.0.linux-armv6l.tar.gz",
+          "a5a8f8198fcf00e1e485b8ecef9ee020778bf32a408a4e8873371bfce458cd09"
+        ],
+        "linux_loong64": [
+          "go1.25.0.linux-loong64.tar.gz",
+          "cab86b1cf761b1cb3bac86a8877cfc92e7b036fc0d3084123d77013d61432afc"
+        ],
+        "linux_mips": [
+          "go1.25.0.linux-mips.tar.gz",
+          "d66b6fb74c3d91b9829dc95ec10ca1f047ef5e89332152f92e136cf0e2da5be1"
+        ],
+        "linux_mips64": [
+          "go1.25.0.linux-mips64.tar.gz",
+          "4082e4381a8661bc2a839ff94ba3daf4f6cde20f8fb771b5b3d4762dc84198a2"
+        ],
+        "linux_mips64le": [
+          "go1.25.0.linux-mips64le.tar.gz",
+          "70002c299ec7f7175ac2ef673b1b347eecfa54ae11f34416a6053c17f855afcc"
+        ],
+        "linux_mipsle": [
+          "go1.25.0.linux-mipsle.tar.gz",
+          "b00a3a39eff099f6df9f1c7355bf28e4589d0586f42d7d4a394efb763d145a73"
+        ],
+        "linux_ppc64": [
+          "go1.25.0.linux-ppc64.tar.gz",
+          "df166f33bd98160662560a72ff0b4ba731f969a80f088922bddcf566a88c1ec1"
+        ],
+        "linux_ppc64le": [
+          "go1.25.0.linux-ppc64le.tar.gz",
+          "0f18a89e7576cf2c5fa0b487a1635d9bcbf843df5f110e9982c64df52a983ad0"
+        ],
+        "linux_riscv64": [
+          "go1.25.0.linux-riscv64.tar.gz",
+          "c018ff74a2c48d55c8ca9b07c8e24163558ffec8bea08b326d6336905d956b67"
+        ],
+        "linux_s390x": [
+          "go1.25.0.linux-s390x.tar.gz",
+          "34e5a2e19f2292fbaf8783e3a241e6e49689276aef6510a8060ea5ef54eee408"
+        ],
+        "netbsd_386": [
+          "go1.25.0.netbsd-386.tar.gz",
+          "f8586cdb7aa855657609a5c5f6dbf523efa00c2bbd7c76d3936bec80aa6c0aba"
+        ],
+        "netbsd_amd64": [
+          "go1.25.0.netbsd-amd64.tar.gz",
+          "ae8dc1469385b86a157a423bb56304ba45730de8a897615874f57dd096db2c2a"
+        ],
+        "netbsd_arm": [
+          "go1.25.0.netbsd-arm.tar.gz",
+          "1ff7e4cc764425fc9dd6825eaee79d02b3c7cafffbb3691687c8d672ade76cb7"
+        ],
+        "netbsd_arm64": [
+          "go1.25.0.netbsd-arm64.tar.gz",
+          "e1b310739f26724216aa6d7d7208c4031f9ff54c9b5b9a796ddc8bebcb4a5f16"
+        ],
+        "openbsd_386": [
+          "go1.25.0.openbsd-386.tar.gz",
+          "4802a9b20e533da91adb84aab42e94aa56cfe3e5475d0550bed3385b182e69d8"
+        ],
+        "openbsd_amd64": [
+          "go1.25.0.openbsd-amd64.tar.gz",
+          "c016cd984bebe317b19a4f297c4f50def120dc9788490540c89f28e42f1dabe1"
+        ],
+        "openbsd_arm": [
+          "go1.25.0.openbsd-arm.tar.gz",
+          "a1e31d0bf22172ddde42edf5ec811ef81be43433df0948ece52fecb247ccfd8d"
+        ],
+        "openbsd_arm64": [
+          "go1.25.0.openbsd-arm64.tar.gz",
+          "343ea8edd8c218196e15a859c6072d0dd3246fbbb168481ab665eb4c4140458d"
+        ],
+        "openbsd_ppc64": [
+          "go1.25.0.openbsd-ppc64.tar.gz",
+          "694c14da1bcaeb5e3332d49bdc2b6d155067648f8fe1540c5de8f3cf8e157154"
+        ],
+        "openbsd_riscv64": [
+          "go1.25.0.openbsd-riscv64.tar.gz",
+          "aa510ad25cf54c06cd9c70b6d80ded69cb20188ac6e1735655eef29ff7e7885f"
+        ],
+        "plan9_386": [
+          "go1.25.0.plan9-386.tar.gz",
+          "46f8cef02086cf04bf186c5912776b56535178d4cb319cd19c9fdbdd29231986"
+        ],
+        "plan9_amd64": [
+          "go1.25.0.plan9-amd64.tar.gz",
+          "29b34391d84095e44608a228f63f2f88113a37b74a79781353ec043dfbcb427b"
+        ],
+        "plan9_arm": [
+          "go1.25.0.plan9-arm.tar.gz",
+          "0a047107d13ebe7943aaa6d54b1d7bbd2e45e68ce449b52915a818da715799c2"
+        ],
+        "solaris_amd64": [
+          "go1.25.0.solaris-amd64.tar.gz",
+          "9977f9e4351984364a3b2b78f8b88bfd1d339812356d5237678514594b7d3611"
+        ],
+        "windows_386": [
+          "go1.25.0.windows-386.zip",
+          "df9f39db82a803af0db639e3613a36681ab7a42866b1384b3f3a1045663961a7"
+        ],
+        "windows_amd64": [
+          "go1.25.0.windows-amd64.zip",
+          "89efb4f9b30812eee083cc1770fdd2913c14d301064f6454851428f9707d190b"
+        ],
+        "windows_arm64": [
+          "go1.25.0.windows-arm64.zip",
+          "27bab004c72b3d7bd05a69b6ec0fc54a309b4b78cc569dd963d8b3ec28bfdb8c"
+        ]
+      }
+    }
+  }
 }
diff --git a/NOTICE.md b/NOTICE.md
new file mode 100644
index 0000000..31e8ed9
--- /dev/null
+++ b/NOTICE.md
@@ -0,0 +1,41 @@
+# Notices for Eclipse JGit
+
+This content is produced and maintained by the Eclipse JGit project.
+
+* Project home: https://projects.eclipse.org/projects/technology.jgit
+
+## Trademarks
+
+JGit™ is a trademark of the Eclipse Foundation.
+
+## Copyright
+
+All content is the property of the respective authors or their employers. For
+more information regarding authorship of content, please consult the listed
+source code repository logs.
+
+## Declared Project Licenses
+
+This program and the accompanying materials are made available under the terms
+of the Eclipse Distribution License v1.0 which is available at
+https://www.eclipse.org/org/documents/edl-v10.php.
+
+SPDX-License-Identifier: BSD-3-Clause
+
+## Source Code
+
+The project maintains the following source code repositories:
+
+* https://github.com/eclipse-jgit/.github
+* https://github.com/eclipse-jgit/jgit
+* https://github.com/eclipse-jgit/jgit-pipelines
+* https://github.com/eclipse-jgit/jgit-website
+
+## Cryptography
+
+Content may contain encryption software. The country in which you are currently
+may have restrictions on the import, possession, and use, and/or re-export to
+another country, of encryption software. BEFORE using any encryption software,
+please check the country's laws, regulations and policies concerning the import,
+possession, or use, and re-export of encryption software, to see if this is
+permitted.
diff --git a/README.md b/README.md
index acd1227..c69aded 100644
--- a/README.md
+++ b/README.md
@@ -111,6 +111,15 @@
 - __org.eclipse.jgit.ssh.apache.test__: Unit tests for org.eclipse.jgit.ssh.apache
 - __org.eclipse.jgit.test__: Unit tests for org.eclipse.jgit
 
+## SBOM
+
+To enhance supply chain security and offer users clear insight into project components,
+Eclipse JGit now generates a Software Bill of Materials (SBOM) for every release.
+These are published to the Eclipse Foundation SBOM registry
+[Eclipse Foundation SBOM registry](https://sbom.eclipse.org/projects/e315d88f-0474-4a00-a6ed-0b95e62a2acc/collectionprojects),
+with access instructions and usage details available in
+this [documentation](https://eclipse-csi.github.io/security-handbook/sbom/registry.html).
+
 ## Warnings/Caveats
 
 - Native symbolic links are supported, provided the file system supports
diff --git a/lib/BUILD b/lib/BUILD
index 4ce0c1a..833f2ea 100644
--- a/lib/BUILD
+++ b/lib/BUILD
@@ -176,7 +176,7 @@
     # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
     visibility = ["//visibility:public"],
     exports = [
-        "@external_deps//:org_eclipse_jetty_ee10_jetty_ee10_servlet",
+        "@external_deps//:org_eclipse_jetty_ee11_jetty_ee11_servlet",
         "@external_deps//:org_eclipse_jetty_jetty_util_ajax",
     ],
 )
@@ -218,10 +218,10 @@
 )
 
 java_library(
-    name = "jetty-ee10-servlet",
+    name = "jetty-ee11-servlet",
     # TODO: This should be testonly but org.eclipse.jgit.pgm depends on it.
     visibility = ["//visibility:public"],
-    exports = ["@external_deps//:org_eclipse_jetty_ee10_jetty_ee10_servlet"],
+    exports = ["@external_deps//:org_eclipse_jetty_ee11_jetty_ee11_servlet"],
 )
 
 java_library(
diff --git a/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
index e547cf4..29a2d3e 100644
--- a/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
@@ -5,14 +5,14 @@
 Automatic-Module-Name: org.eclipse.jgit.ant.test
 Bundle-SymbolicName: org.eclipse.jgit.ant.test
 Bundle-Vendor: %Bundle-Vendor
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
 Import-Package: org.apache.tools.ant,
- org.eclipse.jgit.ant.tasks;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.junit;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)",
+ org.eclipse.jgit.ant.tasks;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.junit;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.0)",
  org.hamcrest;version="[3.0.0,4.0.0)",
  org.junit;version="[4.13,5.0.0)"
diff --git a/org.eclipse.jgit.ant.test/pom.xml b/org.eclipse.jgit.ant.test/pom.xml
index d829c08..f9caf94 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ant.test</artifactId>
diff --git a/org.eclipse.jgit.ant/META-INF/MANIFEST.MF b/org.eclipse.jgit.ant/META-INF/MANIFEST.MF
index 634d6ae..ce0918d 100644
--- a/org.eclipse.jgit.ant/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ant/META-INF/MANIFEST.MF
@@ -3,14 +3,14 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ant
 Bundle-SymbolicName: org.eclipse.jgit.ant
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
 Import-Package: org.apache.tools.ant,
-  org.eclipse.jgit.storage.file;version="[7.7.2,7.8.0)"
+  org.eclipse.jgit.storage.file;version="[7.8.0,7.9.0)"
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.ant;version="7.7.2",
- org.eclipse.jgit.ant.tasks;version="7.7.2";
+Export-Package: org.eclipse.jgit.ant;version="7.8.0",
+ org.eclipse.jgit.ant.tasks;version="7.8.0";
   uses:="org.apache.tools.ant,
    org.apache.tools.ant.types"
diff --git a/org.eclipse.jgit.ant/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.ant/META-INF/SOURCE-MANIFEST.MF
index c729c22..b598163 100644
--- a/org.eclipse.jgit.ant/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ant/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.ant - Sources
 Bundle-SymbolicName: org.eclipse.jgit.ant.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.ant;version="7.7.2.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.ant;version="7.8.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ant/pom.xml b/org.eclipse.jgit.ant/pom.xml
index dc4fc30..f082013 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-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 f9de8fe..6052ba7 100644
--- a/org.eclipse.jgit.archive/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.archive/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.archive
 Bundle-SymbolicName: org.eclipse.jgit.archive
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
@@ -14,18 +14,18 @@
  org.apache.commons.compress.compressors.bzip2;version="[1.4,2.0)",
  org.apache.commons.compress.compressors.gzip;version="[1.4,2.0)",
  org.apache.commons.compress.compressors.xz;version="[1.4,2.0)",
- org.eclipse.jgit.api;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.nls;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revwalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)",
+ org.eclipse.jgit.api;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.nls;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revwalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.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.7.2";
+Export-Package: org.eclipse.jgit.archive;version="7.8.0";
   uses:="org.apache.commons.compress.archivers,
    org.osgi.framework,
    org.eclipse.jgit.api,
    org.eclipse.jgit.lib",
- org.eclipse.jgit.archive.internal;version="7.7.2";x-internal:=true
+ org.eclipse.jgit.archive.internal;version="7.8.0";x-internal:=true
diff --git a/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF
index 461e36a..4179521 100644
--- a/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.archive - Sources
 Bundle-SymbolicName: org.eclipse.jgit.archive.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.archive;version="7.7.2.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.archive;version="7.8.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.archive/pom.xml b/org.eclipse.jgit.archive/pom.xml
index 97b242b..cd93dc0 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.archive</artifactId>
diff --git a/org.eclipse.jgit.benchmarks/pom.xml b/org.eclipse.jgit.benchmarks/pom.xml
index 1a91e1d..0313e52 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.benchmarks</artifactId>
diff --git a/org.eclipse.jgit.coverage/pom.xml b/org.eclipse.jgit.coverage/pom.xml
index 3e2900d..6a12964 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
@@ -27,88 +27,88 @@
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ant</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.archive</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.http.apache</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.http.server</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs.server</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.pgm</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ui</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ssh.apache</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
 
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.test</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ant.test</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.http.test</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.pgm.test</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs.test</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs.server.test</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ssh.apache.test</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
   </dependencies>
 
diff --git a/org.eclipse.jgit.gpg.bc.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.gpg.bc.test/META-INF/MANIFEST.MF
index 4962ab0..284f95c 100644
--- a/org.eclipse.jgit.gpg.bc.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.gpg.bc.test/META-INF/MANIFEST.MF
@@ -3,20 +3,20 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.gpg.bc.test
 Bundle-SymbolicName: org.eclipse.jgit.gpg.bc.test
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Import-Package: org.bouncycastle.asn1.cryptlib;version="[1.84.0,2.0.0)",
- org.bouncycastle.jce.provider;version="[1.84.0,2.0.0)",
- org.bouncycastle.openpgp;version="[1.84.0,2.0.0)",
- org.bouncycastle.openpgp.operator;version="[1.84.0,2.0.0)",
- org.bouncycastle.openpgp.operator.jcajce;version="[1.84.0,2.0.0)",
- org.bouncycastle.util.encoders;version="[1.84.0,2.0.0)",
- org.eclipse.jgit.gpg.bc.internal;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.gpg.bc.internal.keys;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util.sha1;version="[7.7.2,7.8.0)",
+Import-Package: org.bouncycastle.asn1.cryptlib;version="[1.85.0,2.0.0)",
+ org.bouncycastle.jce.provider;version="[1.85.0,2.0.0)",
+ org.bouncycastle.openpgp;version="[1.85.0,2.0.0)",
+ org.bouncycastle.openpgp.operator;version="[1.85.0,2.0.0)",
+ org.bouncycastle.openpgp.operator.jcajce;version="[1.85.0,2.0.0)",
+ org.bouncycastle.util.encoders;version="[1.85.0,2.0.0)",
+ org.eclipse.jgit.gpg.bc.internal;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.gpg.bc.internal.keys;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util.sha1;version="[7.8.0,7.9.0)",
  org.hamcrest;version="[3.0.0,4.0.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.runner;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.gpg.bc.test/pom.xml b/org.eclipse.jgit.gpg.bc.test/pom.xml
index 557fd0c..b4e0964 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.gpg.bc.test</artifactId>
diff --git a/org.eclipse.jgit.gpg.bc/META-INF/MANIFEST.MF b/org.eclipse.jgit.gpg.bc/META-INF/MANIFEST.MF
index 91f4b46..e0dd44b 100644
--- a/org.eclipse.jgit.gpg.bc/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.gpg.bc/META-INF/MANIFEST.MF
@@ -3,29 +3,29 @@
 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.7.2,7.8.0)"
+Fragment-Host: org.eclipse.jgit;bundle-version="[7.8.0,7.9.0)"
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/gpg_bc
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Import-Package: org.bouncycastle.asn1;version="[1.84.0,2.0.0)",
- org.bouncycastle.asn1.x9;version="[1.84.0,2.0.0)",
- org.bouncycastle.bcpg;version="[1.84.0,2.0.0)",
- org.bouncycastle.bcpg.sig;version="[1.84.0,2.0.0)",
- org.bouncycastle.crypto.ec;version="[1.84.0,2.0.0)",
- org.bouncycastle.gpg;version="[1.84.0,2.0.0)",
- org.bouncycastle.gpg.keybox;version="[1.84.0,2.0.0)",
- org.bouncycastle.gpg.keybox.jcajce;version="[1.84.0,2.0.0)",
- org.bouncycastle.jcajce.interfaces;version="[1.84.0,2.0.0)",
- org.bouncycastle.jcajce.util;version="[1.84.0,2.0.0)",
- org.bouncycastle.math.ec;version="[1.84.0,2.0.0)",
- org.bouncycastle.math.field;version="[1.84.0,2.0.0)",
- org.bouncycastle.openpgp;version="[1.84.0,2.0.0)",
- org.bouncycastle.openpgp.jcajce;version="[1.84.0,2.0.0)",
- org.bouncycastle.openpgp.operator;version="[1.84.0,2.0.0)",
- org.bouncycastle.openpgp.operator.jcajce;version="[1.84.0,2.0.0)",
- org.bouncycastle.util.encoders;version="[1.84.0,2.0.0)",
+Import-Package: org.bouncycastle.asn1;version="[1.85.0,2.0.0)",
+ org.bouncycastle.asn1.x9;version="[1.85.0,2.0.0)",
+ org.bouncycastle.bcpg;version="[1.85.0,2.0.0)",
+ org.bouncycastle.bcpg.sig;version="[1.85.0,2.0.0)",
+ org.bouncycastle.crypto.ec;version="[1.85.0,2.0.0)",
+ org.bouncycastle.gpg;version="[1.85.0,2.0.0)",
+ org.bouncycastle.gpg.keybox;version="[1.85.0,2.0.0)",
+ org.bouncycastle.gpg.keybox.jcajce;version="[1.85.0,2.0.0)",
+ org.bouncycastle.jcajce.interfaces;version="[1.85.0,2.0.0)",
+ org.bouncycastle.jcajce.util;version="[1.85.0,2.0.0)",
+ org.bouncycastle.math.ec;version="[1.85.0,2.0.0)",
+ org.bouncycastle.math.field;version="[1.85.0,2.0.0)",
+ org.bouncycastle.openpgp;version="[1.85.0,2.0.0)",
+ org.bouncycastle.openpgp.jcajce;version="[1.85.0,2.0.0)",
+ org.bouncycastle.openpgp.operator;version="[1.85.0,2.0.0)",
+ org.bouncycastle.openpgp.operator.jcajce;version="[1.85.0,2.0.0)",
+ org.bouncycastle.util.encoders;version="[1.85.0,2.0.0)",
  org.slf4j;version="[1.7.0,3.0.0)"
-Export-Package: org.eclipse.jgit.gpg.bc.internal;version="7.7.2";x-friends:="org.eclipse.jgit.gpg.bc.test",
- org.eclipse.jgit.gpg.bc.internal.keys;version="7.7.2";x-friends:="org.eclipse.jgit.gpg.bc.test"
+Export-Package: org.eclipse.jgit.gpg.bc.internal;version="7.8.0";x-friends:="org.eclipse.jgit.gpg.bc.test",
+ org.eclipse.jgit.gpg.bc.internal.keys;version="7.8.0";x-friends:="org.eclipse.jgit.gpg.bc.test"
diff --git a/org.eclipse.jgit.gpg.bc/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.gpg.bc/META-INF/SOURCE-MANIFEST.MF
index 4a352cc..7dd65e2 100644
--- a/org.eclipse.jgit.gpg.bc/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.gpg.bc/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.gpg.bc - Sources
 Bundle-SymbolicName: org.eclipse.jgit.gpg.bc.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.gpg.bc;version="7.7.2.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.gpg.bc;version="7.8.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.gpg.bc/pom.xml b/org.eclipse.jgit.gpg.bc/pom.xml
index 236ddd5..74d9d1a 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.gpg.bc</artifactId>
diff --git a/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF
index 7c207cd..30d22e1 100644
--- a/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.http.apache
 Bundle-SymbolicName: org.eclipse.jgit.http.apache
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
 Bundle-Localization: OSGI-INF/l10n/plugin
@@ -27,11 +27,11 @@
  org.apache.http.impl.conn;version="[4.4.0,5.0.0)",
  org.apache.http.params;version="[4.3.0,5.0.0)",
  org.apache.http.ssl;version="[4.3.0,5.0.0)",
- org.eclipse.jgit.annotations;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.nls;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.http;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)"
-Export-Package: org.eclipse.jgit.transport.http.apache;version="7.7.2";
+ org.eclipse.jgit.annotations;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.nls;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.http;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.0)"
+Export-Package: org.eclipse.jgit.transport.http.apache;version="7.8.0";
   uses:="org.apache.http.client,
    org.eclipse.jgit.transport.http,
    org.apache.http.entity,
diff --git a/org.eclipse.jgit.http.apache/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.http.apache/META-INF/SOURCE-MANIFEST.MF
index 284e89d..9c108b3 100644
--- a/org.eclipse.jgit.http.apache/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.http.apache/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.http.apache - Sources
 Bundle-SymbolicName: org.eclipse.jgit.http.apache.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.http.apache;version="7.7.2.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.http.apache;version="7.8.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.http.apache/pom.xml b/org.eclipse.jgit.http.apache/pom.xml
index 08cbecf..5ae175b 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-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 cca7f35..cac9050 100644
--- a/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF
@@ -3,31 +3,31 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.http.server
 Bundle-SymbolicName: org.eclipse.jgit.http.server
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Export-Package: org.eclipse.jgit.http.server;version="7.7.2",
- org.eclipse.jgit.http.server.glue;version="7.7.2";
+Export-Package: org.eclipse.jgit.http.server;version="7.8.0",
+ org.eclipse.jgit.http.server.glue;version="7.8.0";
   uses:="jakarta.servlet,
   	jakarta.servlet.http",
- org.eclipse.jgit.http.server.resolver;version="7.7.2";
+ org.eclipse.jgit.http.server.resolver;version="7.8.0";
   uses:="jakarta.servlet.http
    org.eclipse.jgit.transport.resolver,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.transport,
-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.7.2,7.8.0)",
- org.eclipse.jgit.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.transport.parser;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.nls;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revwalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.resolver;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)"
+Import-Package: jakarta.servlet;version="[6.1.0,7.0.0)",
+ jakarta.servlet.http;version="[6.1.0,7.0.0)",
+ org.eclipse.jgit.annotations;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.transport.parser;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.nls;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revwalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.resolver;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.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 7675985..6bb08e3 100644
--- a/org.eclipse.jgit.http.server/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.http.server/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.http.server - Sources
 Bundle-SymbolicName: org.eclipse.jgit.http.server.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.http.server;version="7.7.2.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.http.server;version="7.8.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.http.server/pom.xml b/org.eclipse.jgit.http.server/pom.xml
index 387fc4b..f9e847b 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.http.server</artifactId>
diff --git a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
index f12a7a3..aa39fe4 100644
--- a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
@@ -3,13 +3,13 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.http.test
 Bundle-SymbolicName: org.eclipse.jgit.http.test
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Import-Package: jakarta.servlet;version="[6.0.0,7.0.0)",
- jakarta.servlet.http;version="[6.0.0,7.0.0)",
+Import-Package: jakarta.servlet;version="[6.1.0,7.0.0)",
+ jakarta.servlet.http;version="[6.1.0,7.0.0)",
  net.bytebuddy.agent;version="[1.9.0,2.0.0)",
  net.bytebuddy.dynamic.loading;version="[1.9.0,2.0.0)",
  org.apache.commons.codec;version="[1.6.0,2.0.0)",
@@ -17,7 +17,7 @@
  org.apache.http;version="[4.3.0,5.0.0)",
  org.apache.http.client;version="[4.4.0,5.0.0)",
  org.apache.http.message;version="[4.3.0,5.0.0)",
- org.eclipse.jetty.ee10.servlet;version="[12.0.0,13.0.0)",
+ org.eclipse.jetty.ee11.servlet;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.http;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.io;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.security;version="[12.0.0,13.0.0)",
@@ -28,26 +28,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.7.2,7.8.0)",
- org.eclipse.jgit.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.http.server;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.http.server.glue;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.http.server.resolver;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.junit;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.junit.http;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.nls;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revwalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.http;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.http.apache;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.resolver;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)",
+ org.eclipse.jgit.api;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.http.server;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.http.server.glue;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.http.server.resolver;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.junit;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.junit.http;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.nls;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revwalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.http;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.http.apache;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.resolver;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.0)",
  org.hamcrest;version="[3.0.0,4.0.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.rules;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.http.test/pom.xml b/org.eclipse.jgit.http.test/pom.xml
index 8290395..9f4f49b 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.http.test</artifactId>
@@ -82,8 +82,8 @@
     </dependency>
 
     <dependency>
-      <groupId>org.eclipse.jetty.ee10</groupId>
-      <artifactId>jetty-ee10-servlet</artifactId>
+      <groupId>org.eclipse.jetty.ee11</groupId>
+      <artifactId>jetty-ee11-servlet</artifactId>
     </dependency>
   </dependencies>
 
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AdvertiseErrorTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AdvertiseErrorTest.java
index fd78ba8..dfc6660 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AdvertiseErrorTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AdvertiseErrorTest.java
@@ -17,8 +17,8 @@
 
 import jakarta.servlet.http.HttpServletRequest;
 
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.errors.RemoteRepositoryException;
 import org.eclipse.jgit.errors.RepositoryNotFoundException;
 import org.eclipse.jgit.http.server.GitServlet;
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DumbClientDumbServerTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DumbClientDumbServerTest.java
index 7ccc0e5..2d78f81 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DumbClientDumbServerTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DumbClientDumbServerTest.java
@@ -25,9 +25,9 @@
 import java.util.List;
 import java.util.Map;
 
-import org.eclipse.jetty.ee10.servlet.DefaultServlet;
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.DefaultServlet;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.errors.NotSupportedException;
 import org.eclipse.jgit.junit.TestRepository;
 import org.eclipse.jgit.junit.http.AccessEvent;
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DumbClientSmartServerTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DumbClientSmartServerTest.java
index 9b9f684..b38c754 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DumbClientSmartServerTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DumbClientSmartServerTest.java
@@ -25,8 +25,8 @@
 import java.util.List;
 import java.util.Map;
 
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.errors.NotSupportedException;
 import org.eclipse.jgit.http.server.GitServlet;
 import org.eclipse.jgit.junit.TestRepository;
@@ -140,7 +140,14 @@ public void testListRemote() throws IOException {
 		assertEquals(join(remoteURI, "HEAD"), head.getPath());
 		assertEquals(0, head.getParameters().size());
 		assertEquals(200, head.getStatus());
-		assertEquals("text/plain", head.getResponseHeader(HDR_CONTENT_TYPE));
+		assertEquals("text/plain",
+				mediaType(head.getResponseHeader(HDR_CONTENT_TYPE)));
+	}
+
+	private static String mediaType(String contentType) {
+		int parameterStart = contentType.indexOf(';');
+		return parameterStart >= 0 ? contentType.substring(0, parameterStart)
+				: contentType;
 	}
 
 	@Test
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ErrorServletTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ErrorServletTest.java
index 9a610c6..b78451e 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ErrorServletTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ErrorServletTest.java
@@ -15,8 +15,8 @@
 import java.net.HttpURLConnection;
 import java.net.URI;
 
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.http.server.glue.ErrorServlet;
 import org.eclipse.jgit.junit.http.AppServer;
 import org.junit.After;
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/GitServletInitTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/GitServletInitTest.java
index c887360..6f9e99f 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/GitServletInitTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/GitServletInitTest.java
@@ -13,8 +13,8 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.http.server.GitServlet;
 import org.eclipse.jgit.junit.http.AppServer;
 import org.eclipse.jgit.junit.http.MockServletConfig;
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/GitServletResponseTests.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/GitServletResponseTests.java
index 9331efa..b3fa32d 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/GitServletResponseTests.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/GitServletResponseTests.java
@@ -17,8 +17,8 @@
 
 import jakarta.servlet.http.HttpServletRequest;
 
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.errors.CorruptObjectException;
 import org.eclipse.jgit.errors.RepositoryNotFoundException;
 import org.eclipse.jgit.errors.TooLargePackException;
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HookMessageTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HookMessageTest.java
index 082d853..af4a2ea 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HookMessageTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HookMessageTest.java
@@ -22,8 +22,8 @@
 
 import jakarta.servlet.http.HttpServletRequest;
 
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.errors.RepositoryNotFoundException;
 import org.eclipse.jgit.http.server.GitServlet;
 import org.eclipse.jgit.http.server.resolver.DefaultReceivePackFactory;
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java
index 2737a49..9ee91af 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java
@@ -30,9 +30,9 @@
 
 import jakarta.servlet.http.HttpServletRequest;
 
-import org.eclipse.jetty.ee10.servlet.DefaultServlet;
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.DefaultServlet;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.api.Git;
 import org.eclipse.jgit.errors.NoRemoteRepositoryException;
 import org.eclipse.jgit.errors.RepositoryNotFoundException;
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/MeasurePackSizeTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/MeasurePackSizeTest.java
index 183043b..9165cfe 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/MeasurePackSizeTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/MeasurePackSizeTest.java
@@ -16,8 +16,8 @@
 
 import jakarta.servlet.http.HttpServletRequest;
 
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.errors.RepositoryNotFoundException;
 import org.eclipse.jgit.http.server.GitServlet;
 import org.eclipse.jgit.http.server.resolver.DefaultReceivePackFactory;
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java
index 74028d7..3686501 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java
@@ -22,8 +22,8 @@
 
 import jakarta.servlet.http.HttpServletRequest;
 
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.errors.RepositoryNotFoundException;
 import org.eclipse.jgit.http.server.GitServlet;
 import org.eclipse.jgit.http.server.GitSmartHttpTools;
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/RegexPipelineTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/RegexPipelineTest.java
index dfdb975..ee75997 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/RegexPipelineTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/RegexPipelineTest.java
@@ -59,8 +59,8 @@
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.http.server.glue.MetaServlet;
 import org.eclipse.jgit.http.server.glue.RegexGroupFilter;
 import org.eclipse.jgit.junit.http.AppServer;
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SetAdditionalHeadersTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SetAdditionalHeadersTest.java
index d569431..0cd0191 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SetAdditionalHeadersTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SetAdditionalHeadersTest.java
@@ -20,9 +20,9 @@
 import java.util.List;
 import java.util.Map;
 
-import org.eclipse.jetty.ee10.servlet.DefaultServlet;
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.DefaultServlet;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.junit.TestRepository;
 import org.eclipse.jgit.junit.http.AccessEvent;
 import org.eclipse.jgit.lib.Repository;
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerSslTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerSslTest.java
index 13ed36c..b1857d6 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerSslTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerSslTest.java
@@ -29,9 +29,9 @@
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 
-import org.eclipse.jetty.ee10.servlet.FilterHolder;
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.FilterHolder;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.errors.TransportException;
 import org.eclipse.jgit.errors.UnsupportedCredentialItem;
 import org.eclipse.jgit.http.server.GitServlet;
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java
index 46a48f7..84b9fe6 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java
@@ -52,9 +52,9 @@
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 
-import org.eclipse.jetty.ee10.servlet.FilterHolder;
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.FilterHolder;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.api.Git;
 import org.eclipse.jgit.api.TransportConfigCallback;
 import org.eclipse.jgit.errors.NoRemoteRepositoryException;
diff --git a/org.eclipse.jgit.junit.http/.settings/.api_filters b/org.eclipse.jgit.junit.http/.settings/.api_filters
new file mode 100644
index 0000000..1736f52
--- /dev/null
+++ b/org.eclipse.jgit.junit.http/.settings/.api_filters
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.jgit.junit.http" version="2">
+    <resource path="src/org/eclipse/jgit/junit/http/AppServer.java" type="org.eclipse.jgit.junit.http.AppServer">
+        <filter id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.jgit.junit.http.AppServer"/>
+                <message_argument value="addContext(String)"/>
+            </message_arguments>
+        </filter>
+        <filter id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.jgit.junit.http.AppServer"/>
+                <message_argument value="authBasic(ServletContextHandler, String[])"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/jgit/junit/http/HttpTestCase.java" type="org.eclipse.jgit.junit.http.HttpTestCase">
+        <filter id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.jgit.junit.http.HttpTestCase"/>
+                <message_argument value="toURIish(ServletContextHandler, String)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>
diff --git a/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF b/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
index 014a2a0..0de8b2e 100644
--- a/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
@@ -3,17 +3,17 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.junit.http
 Bundle-SymbolicName: org.eclipse.jgit.junit.http
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Import-Package: jakarta.servlet;version="[6.0.0,7.0.0)",
- jakarta.servlet.http;version="[6.0.0,7.0.0)",
+Import-Package: jakarta.servlet;version="[6.1.0,7.0.0)",
+ jakarta.servlet.http;version="[6.1.0,7.0.0)",
  org.apache.commons.logging;version="[1.1.1,2.0.0)",
- org.eclipse.jetty.ee10.servlet;version="[12.0.0,13.0.0)",
- org.eclipse.jetty.ee10.servlet.security;version="[12.0.0,13.0.0)",
+ org.eclipse.jetty.ee11.servlet;version="[12.0.0,13.0.0)",
+ org.eclipse.jetty.ee11.servlet.security;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.http;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.security;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.security.authentication;version="[12.0.0,13.0.0)",
@@ -23,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.7.2,7.8.0)",
- org.eclipse.jgit.http.server;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.junit;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revwalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.resolver;version="[7.7.2,7.8.0)",
+ org.eclipse.jgit.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.http.server;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.junit;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revwalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.resolver;version="[7.8.0,7.9.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.7.2";
+Export-Package: org.eclipse.jgit.junit.http;version="7.8.0";
   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 3270e6f..4563406 100644
--- a/org.eclipse.jgit.junit.http/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.junit.http/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.junit.http - Sources
 Bundle-SymbolicName: org.eclipse.jgit.junit.http.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.junit.http;version="7.7.2.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.junit.http;version="7.8.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit.http/pom.xml b/org.eclipse.jgit.junit.http/pom.xml
index 8a94ef0..951ef3e 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.junit.http</artifactId>
@@ -58,8 +58,8 @@
     </dependency>
 
     <dependency>
-      <groupId>org.eclipse.jetty.ee10</groupId>
-      <artifactId>jetty-ee10-servlet</artifactId>
+      <groupId>org.eclipse.jetty.ee11</groupId>
+      <artifactId>jetty-ee11-servlet</artifactId>
     </dependency>
 
     <dependency>
diff --git a/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/AppServer.java b/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/AppServer.java
index 3a4bce7..710442e 100644
--- a/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/AppServer.java
+++ b/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/AppServer.java
@@ -14,9 +14,9 @@
 import java.util.List;
 import java.util.Locale;
 
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.security.ConstraintMapping;
-import org.eclipse.jetty.ee10.servlet.security.ConstraintSecurityHandler;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.security.ConstraintMapping;
+import org.eclipse.jetty.ee11.servlet.security.ConstraintSecurityHandler;
 import org.eclipse.jetty.security.AbstractLoginService;
 import org.eclipse.jetty.security.Constraint;
 import org.eclipse.jetty.security.authentication.BasicAuthenticator;
diff --git a/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/AppServerBase.java b/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/AppServerBase.java
index bc2baad..6a71f88 100644
--- a/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/AppServerBase.java
+++ b/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/AppServerBase.java
@@ -26,7 +26,7 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
 import org.eclipse.jetty.security.AbstractLoginService;
 import org.eclipse.jetty.security.RolePrincipal;
 import org.eclipse.jetty.security.UserPrincipal;
@@ -241,7 +241,7 @@ private void makePrivate(File file) {
 	 *            path of the context; use "/" for the root context if binding
 	 *            to the root is desired.
 	 * @return the context to add servlets into.
-	 * @since 7.0
+	 * @since 7.8
 	 */
 	public ServletContextHandler addContext(String path) {
 		assertNotYetSetUp();
@@ -263,7 +263,7 @@ public ServletContextHandler addContext(String path) {
 	 * @param methods
 	 *            the methods
 	 * @return servlet context handler
-	 * @since 7.0
+	 * @since 7.8
 	 */
 	public ServletContextHandler authBasic(ServletContextHandler ctx,
 			String... methods) {
diff --git a/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/HttpTestCase.java b/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/HttpTestCase.java
index f399471..ef56b6c 100644
--- a/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/HttpTestCase.java
+++ b/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/HttpTestCase.java
@@ -21,7 +21,7 @@
 import java.util.List;
 import java.util.Set;
 
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
 import org.eclipse.jgit.internal.storage.file.FileRepository;
 import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase;
 import org.eclipse.jgit.junit.TestRepository;
@@ -109,7 +109,7 @@ protected URIish toURIish(String path) throws URISyntaxException {
 	 * @return the warnings (if any) from the last execution
 	 * @throws URISyntaxException
 	 *             if URI is invalid
-	 * @since 7.0
+	 * @since 7.8
 	 */
 	protected URIish toURIish(ServletContextHandler app, String name)
 			throws URISyntaxException {
diff --git a/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/SimpleHttpServer.java b/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/SimpleHttpServer.java
index bce4138..63f7ddf 100644
--- a/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/SimpleHttpServer.java
+++ b/org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/SimpleHttpServer.java
@@ -15,8 +15,8 @@
 
 import jakarta.servlet.http.HttpServletRequest;
 
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.errors.RepositoryNotFoundException;
 import org.eclipse.jgit.http.server.GitServlet;
 import org.eclipse.jgit.lib.Repository;
diff --git a/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF b/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
index c7099c5..77e5c1d 100644
--- a/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
@@ -3,47 +3,47 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.junit.ssh
 Bundle-SymbolicName: org.eclipse.jgit.junit.ssh
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Import-Package: org.apache.sshd.common;version="[2.19.0,3.0.0)",
- org.apache.sshd.common.config.keys;version="[2.19.0,3.0.0)",
- org.apache.sshd.common.file.virtualfs;version="[2.19.0,3.0.0)",
- org.apache.sshd.common.helpers;version="[2.19.0,3.0.0)",
- org.apache.sshd.common.io;version="[2.19.0,3.0.0)",
- org.apache.sshd.common.kex;version="[2.19.0,3.0.0)",
- org.apache.sshd.common.keyprovider;version="[2.19.0,3.0.0)",
- org.apache.sshd.common.session;version="[2.19.0,3.0.0)",
- org.apache.sshd.common.signature;version="[2.19.0,3.0.0)",
- org.apache.sshd.common.util.buffer;version="[2.19.0,3.0.0)",
- org.apache.sshd.common.util.logging;version="[2.19.0,3.0.0)",
- org.apache.sshd.common.util.security;version="[2.19.0,3.0.0)",
- org.apache.sshd.common.util.threads;version="[2.19.0,3.0.0)",
- org.apache.sshd.core;version="[2.19.0,3.0.0)",
- org.apache.sshd.server;version="[2.19.0,3.0.0)",
- org.apache.sshd.server.auth;version="[2.19.0,3.0.0)",
- org.apache.sshd.server.auth.gss;version="[2.19.0,3.0.0)",
- org.apache.sshd.server.auth.keyboard;version="[2.19.0,3.0.0)",
- org.apache.sshd.server.auth.password;version="[2.19.0,3.0.0)",
- org.apache.sshd.server.command;version="[2.19.0,3.0.0)",
- org.apache.sshd.server.session;version="[2.19.0,3.0.0)",
- org.apache.sshd.server.shell;version="[2.19.0,3.0.0)",
- org.apache.sshd.server.subsystem;version="[2.19.0,3.0.0)",
- org.apache.sshd.sftp;version="[2.19.0,3.0.0)",
- org.apache.sshd.sftp.server;version="[2.19.0,3.0.0)",
- org.eclipse.jgit.annotations;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.api;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.api.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.junit;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revwalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)",
+Import-Package: org.apache.sshd.common;version="[2.19.0,2.20.0)",
+ org.apache.sshd.common.config.keys;version="[2.19.0,2.20.0)",
+ org.apache.sshd.common.file.virtualfs;version="[2.19.0,2.20.0)",
+ org.apache.sshd.common.helpers;version="[2.19.0,2.20.0)",
+ org.apache.sshd.common.io;version="[2.19.0,2.20.0)",
+ org.apache.sshd.common.kex;version="[2.19.0,2.20.0)",
+ org.apache.sshd.common.keyprovider;version="[2.19.0,2.20.0)",
+ org.apache.sshd.common.session;version="[2.19.0,2.20.0)",
+ org.apache.sshd.common.signature;version="[2.19.0,2.20.0)",
+ org.apache.sshd.common.util.buffer;version="[2.19.0,2.20.0)",
+ org.apache.sshd.common.util.logging;version="[2.19.0,2.20.0)",
+ org.apache.sshd.common.util.security;version="[2.19.0,2.20.0)",
+ org.apache.sshd.common.util.threads;version="[2.19.0,2.20.0)",
+ org.apache.sshd.core;version="[2.19.0,2.20.0)",
+ org.apache.sshd.server;version="[2.19.0,2.20.0)",
+ org.apache.sshd.server.auth;version="[2.19.0,2.20.0)",
+ org.apache.sshd.server.auth.gss;version="[2.19.0,2.20.0)",
+ org.apache.sshd.server.auth.keyboard;version="[2.19.0,2.20.0)",
+ org.apache.sshd.server.auth.password;version="[2.19.0,2.20.0)",
+ org.apache.sshd.server.command;version="[2.19.0,2.20.0)",
+ org.apache.sshd.server.session;version="[2.19.0,2.20.0)",
+ org.apache.sshd.server.shell;version="[2.19.0,2.20.0)",
+ org.apache.sshd.server.subsystem;version="[2.19.0,2.20.0)",
+ org.apache.sshd.sftp;version="[2.19.0,2.20.0)",
+ org.apache.sshd.sftp.server;version="[2.19.0,2.20.0)",
+ org.eclipse.jgit.annotations;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.api;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.api.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.junit;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revwalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.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.7.2"
+Export-Package: org.eclipse.jgit.junit.ssh;version="7.8.0"
diff --git a/org.eclipse.jgit.junit.ssh/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.junit.ssh/META-INF/SOURCE-MANIFEST.MF
index 554e50f..d52282f 100644
--- a/org.eclipse.jgit.junit.ssh/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.junit.ssh/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.junit.ssh - Sources
 Bundle-SymbolicName: org.eclipse.jgit.junit.ssh.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.junit.ssh;version="7.7.2.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.junit.ssh;version="7.8.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit.ssh/pom.xml b/org.eclipse.jgit.junit.ssh/pom.xml
index 14f2321..5ac4ae7 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.junit.ssh</artifactId>
diff --git a/org.eclipse.jgit.junit/META-INF/MANIFEST.MF b/org.eclipse.jgit.junit/META-INF/MANIFEST.MF
index ce151b9..6d7b85e 100644
--- a/org.eclipse.jgit.junit/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit/META-INF/MANIFEST.MF
@@ -3,38 +3,38 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.junit
 Bundle-SymbolicName: org.eclipse.jgit.junit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Import-Package: org.eclipse.jgit.annotations;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.api;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.api.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.dircache;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.pack;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.util;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.merge;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revwalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.storage.pack;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport;version="7.7.2",
- org.eclipse.jgit.treewalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util.io;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util.time;version="[7.7.2,7.8.0)",
+Import-Package: org.eclipse.jgit.annotations;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.api;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.api.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.dircache;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.util;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.merge;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revwalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.storage.pack;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport;version="7.8.0",
+ org.eclipse.jgit.treewalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util.io;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util.time;version="[7.8.0,7.9.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.7.2";
+Export-Package: org.eclipse.jgit.junit;version="7.8.0";
   uses:="org.eclipse.jgit.dircache,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
@@ -47,4 +47,4 @@
    org.junit.runners.model,
    org.junit.runner,
    org.eclipse.jgit.util.time",
- org.eclipse.jgit.junit.time;version="7.7.2";uses:="org.eclipse.jgit.util.time"
+ org.eclipse.jgit.junit.time;version="7.8.0";uses:="org.eclipse.jgit.util.time"
diff --git a/org.eclipse.jgit.junit/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.junit/META-INF/SOURCE-MANIFEST.MF
index 46a0949..4ccd459 100644
--- a/org.eclipse.jgit.junit/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.junit/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.junit - Sources
 Bundle-SymbolicName: org.eclipse.jgit.junit.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.junit;version="7.7.2.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.junit;version="7.8.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit/pom.xml b/org.eclipse.jgit.junit/pom.xml
index 92d47e7..ac83f53 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.junit</artifactId>
diff --git a/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF
index 3df1a6f..5a923f5 100644
--- a/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF
@@ -3,19 +3,19 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs.server.test
 Bundle-SymbolicName: org.eclipse.jgit.lfs.server.test
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Import-Package: jakarta.servlet;version="[6.0.0,7.0.0)",
- jakarta.servlet.http;version="[6.0.0,7.0.0)",
+Import-Package: jakarta.servlet;version="[6.1.0,7.0.0)",
+ jakarta.servlet.http;version="[6.1.0,7.0.0)",
  org.apache.http;version="[4.4.0,5.0.0)",
  org.apache.http.client;version="[4.4.0,5.0.0)",
  org.apache.http.client.methods;version="[4.4.0,5.0.0)",
  org.apache.http.entity;version="[4.4.0,5.0.0)",
  org.apache.http.impl.client;version="[4.4.0,5.0.0)",
- org.eclipse.jetty.ee10.servlet;version="[12.0.0,13.0.0)",
+ org.eclipse.jetty.ee11.servlet;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.http;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.io;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.security;version="[12.0.0,13.0.0)",
@@ -27,24 +27,24 @@
  org.eclipse.jetty.util.component;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.util.security;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.util.thread;version="[12.0.0,13.0.0)",
- org.eclipse.jgit.api;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.api.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.junit;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.junit.http;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs.server;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs.server.fs;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs.test;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revwalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.treewalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)",
+ org.eclipse.jgit.api;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.api.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.junit;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.junit.http;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs.server;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs.server.fs;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs.test;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revwalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.treewalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.0)",
  org.hamcrest;version="[3.0.0,4.0.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.rules;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.lfs.server.test/pom.xml b/org.eclipse.jgit.lfs.server.test/pom.xml
index 49e3834..3620dd7 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.lfs.server.test</artifactId>
@@ -74,8 +74,8 @@
     </dependency>
 
     <dependency>
-      <groupId>org.eclipse.jetty.ee10</groupId>
-      <artifactId>jetty-ee10-servlet</artifactId>
+      <groupId>org.eclipse.jetty.ee11</groupId>
+      <artifactId>jetty-ee11-servlet</artifactId>
       <scope>test</scope>
     </dependency>
 
diff --git a/org.eclipse.jgit.lfs.server.test/tst/org/eclipse/jgit/lfs/server/fs/LfsServerTest.java b/org.eclipse.jgit.lfs.server.test/tst/org/eclipse/jgit/lfs/server/fs/LfsServerTest.java
index 9a49023..f1b070c 100644
--- a/org.eclipse.jgit.lfs.server.test/tst/org/eclipse/jgit/lfs/server/fs/LfsServerTest.java
+++ b/org.eclipse.jgit.lfs.server.test/tst/org/eclipse/jgit/lfs/server/fs/LfsServerTest.java
@@ -39,8 +39,8 @@
 import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClientBuilder;
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.junit.MockSystemReader;
 import org.eclipse.jgit.junit.http.AppServer;
 import org.eclipse.jgit.lfs.errors.LfsException;
diff --git a/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
index e546b5d..68d7877 100644
--- a/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
@@ -3,37 +3,37 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs.server
 Bundle-SymbolicName: org.eclipse.jgit.lfs.server
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Export-Package: org.eclipse.jgit.lfs.server;version="7.7.2";
+Export-Package: org.eclipse.jgit.lfs.server;version="7.8.0";
   uses:="jakarta.servlet.http,
    org.eclipse.jgit.lfs.lib",
- org.eclipse.jgit.lfs.server.fs;version="7.7.2";
+ org.eclipse.jgit.lfs.server.fs;version="7.8.0";
   uses:="jakarta.servlet,
    jakarta.servlet.http,
    org.eclipse.jgit.lfs.server,
    org.eclipse.jgit.lfs.lib",
- org.eclipse.jgit.lfs.server.internal;version="7.7.2";x-internal:=true,
- org.eclipse.jgit.lfs.server.s3;version="7.7.2";
+ org.eclipse.jgit.lfs.server.internal;version="7.8.0";x-internal:=true,
+ org.eclipse.jgit.lfs.server.s3;version="7.8.0";
   uses:="org.eclipse.jgit.lfs.server,
    org.eclipse.jgit.lfs.lib"
 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)",
+ jakarta.servlet;version="[6.1.0,7.0.0)",
+ jakarta.servlet.annotation;version="[6.1.0,7.0.0)",
+ jakarta.servlet.http;version="[6.1.0,7.0.0)",
  org.apache.http;version="[4.3.0,5.0.0)",
- org.eclipse.jgit.annotations;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs.internal;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.nls;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.http;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.http.apache;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)",
+ org.eclipse.jgit.annotations;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs.internal;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.nls;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.http;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.http.apache;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.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 f8dfdb5..5e4c9cf 100644
--- a/org.eclipse.jgit.lfs.server/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.server/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.lfs.server - Sources
 Bundle-SymbolicName: org.eclipse.jgit.lfs.server.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.lfs.server;version="7.7.2.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.lfs.server;version="7.8.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.lfs.server/pom.xml b/org.eclipse.jgit.lfs.server/pom.xml
index e66ea6b..67b1bf2 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.lfs.server</artifactId>
diff --git a/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
index 66bcdcc..82b1403 100644
--- a/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
@@ -3,29 +3,29 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs.test
 Bundle-SymbolicName: org.eclipse.jgit.lfs.test
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Import-Package: org.eclipse.jgit.api;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.attributes;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.junit;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs.internal;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revwalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.http;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.treewalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)",
+Import-Package: org.eclipse.jgit.api;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.attributes;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.junit;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs.internal;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revwalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.http;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.treewalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.0)",
  org.hamcrest;version="[3.0.0,4.0.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.runner;version="[4.13,5.0.0)",
  org.junit.runners;version="[4.13,5.0.0)"
-Export-Package: org.eclipse.jgit.lfs.test;version="7.7.2";x-friends:="org.eclipse.jgit.lfs.server.test"
+Export-Package: org.eclipse.jgit.lfs.test;version="7.8.0";x-friends:="org.eclipse.jgit.lfs.server.test"
diff --git a/org.eclipse.jgit.lfs.test/pom.xml b/org.eclipse.jgit.lfs.test/pom.xml
index e595256..2380339 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.lfs.test</artifactId>
diff --git a/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
index e2975e4..4a10127 100644
--- a/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
@@ -3,33 +3,33 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs
 Bundle-SymbolicName: org.eclipse.jgit.lfs
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Export-Package: org.eclipse.jgit.lfs;version="7.7.2",
- org.eclipse.jgit.lfs.errors;version="7.7.2",
- org.eclipse.jgit.lfs.internal;version="7.7.2";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.7.2"
+Export-Package: org.eclipse.jgit.lfs;version="7.8.0",
+ org.eclipse.jgit.lfs.errors;version="7.8.0",
+ org.eclipse.jgit.lfs.internal;version="7.8.0";x-friends:="org.eclipse.jgit.lfs.test,org.eclipse.jgit.lfs.server.fs,org.eclipse.jgit.lfs.server",
+ org.eclipse.jgit.lfs.lib;version="7.8.0"
 Import-Package: com.google.gson;version="[2.8.2,3.0.0)",
  com.google.gson.stream;version="[2.8.2,3.0.0)",
- org.eclipse.jgit.annotations;version="[7.7.2,7.8.0)";resolution:=optional,
- org.eclipse.jgit.api.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.attributes;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.diff;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.dircache;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.hooks;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.nls;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revwalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.storage.pack;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.http;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.treewalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util.io;version="[7.7.2,7.8.0)"
+ org.eclipse.jgit.annotations;version="[7.8.0,7.9.0)";resolution:=optional,
+ org.eclipse.jgit.api.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.attributes;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.diff;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.dircache;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.hooks;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.nls;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revwalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.storage.pack;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.http;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.treewalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util.io;version="[7.8.0,7.9.0)"
diff --git a/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF
index 8b53b3d..b468bc3 100644
--- a/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.lfs - Sources
 Bundle-SymbolicName: org.eclipse.jgit.lfs.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.lfs;version="7.7.2.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.lfs;version="7.8.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.lfs/pom.xml b/org.eclipse.jgit.lfs/pom.xml
index 7161314..78d3b39 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.lfs</artifactId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml
index c41629b..1c04cc8 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.7.2.qualifier"
+      version="7.8.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml
index af1cf1d..62ebf82 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.gpg.bc.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.gpg.bc.feature/feature.xml
index 91713f6..17a3e8f 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.7.2.qualifier"
+      version="7.8.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.jgit" version="7.7.2" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="7.8.0" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.gpg.bc.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.gpg.bc.feature/pom.xml
index 13c184a..e52ff55 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml
index 057f3d1..81e9291 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.7.2.qualifier"
+      version="7.8.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.jgit" version="7.7.2" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="7.8.0" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml
index 3820828..e54d0ad 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml
index 374d16f..4bdf267 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.7.2.qualifier"
+      version="7.8.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -24,7 +24,7 @@
 
    <requires>
       <import plugin="com.jcraft.jsch"/>
-      <import plugin="org.eclipse.jgit" version="7.7.2" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="7.8.0" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml
index a34d657..9d0108b 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml
index 6c5383e..811948a 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.7.2.qualifier"
+      version="7.8.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="7.7.2" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="7.8.0" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml
index c80516b..062837d 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml
index 6345444..feb0400 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.7.2.qualifier"
+      version="7.8.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -35,9 +35,9 @@
          version="0.0.0"/>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="7.7.2" match="equivalent"/>
-      <import feature="org.eclipse.jgit.lfs" version="7.7.2" match="equivalent"/>
-      <import feature="org.eclipse.jgit.ssh.apache" version="7.7.2" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="7.8.0" match="equivalent"/>
+      <import feature="org.eclipse.jgit.lfs" version="7.8.0" match="equivalent"/>
+      <import feature="org.eclipse.jgit.ssh.apache" version="7.8.0" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/pom.xml
index 998f0f3..e305823 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/category.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/category.xml
index ead448d..e6a9c63 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/category.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/category.xml
@@ -105,10 +105,10 @@
    <bundle id="org.eclipse.jetty.server.source">
       <category name="JGit-dependency-bundles"/>
    </bundle>
-   <bundle id="org.eclipse.jetty.ee10.servlet">
+   <bundle id="org.eclipse.jetty.ee11.servlet">
       <category name="JGit-dependency-bundles"/>
    </bundle>
-   <bundle id="org.eclipse.jetty.ee10.servlet.source">
+   <bundle id="org.eclipse.jetty.ee11.servlet.source">
       <category name="JGit-dependency-bundles"/>
    </bundle>
    <bundle id="org.eclipse.jetty.util">
@@ -147,7 +147,7 @@
    <bundle id="org.apache.commons.lang3.source">
       <category name="JGit-dependency-bundles"/>
    </bundle>
-   <bundle id="org.apache.commons.logging">
+   <bundle id="org.apache.commons.commons-logging">
       <category name="JGit-dependency-bundles"/>
    </bundle>
    <bundle id="org.apache.httpcomponents.httpclient">
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 73834e2..4b597ea 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.repository</artifactId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml
index 1dbeb44..5908568 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.7.2.qualifier"
+      version="7.8.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="7.7.2" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="7.8.0" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml
index 9832c13..5a13758 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
@@ -30,7 +30,7 @@
     <dependency>
       <groupId>org.eclipse.jgit.feature</groupId>
       <artifactId>org.eclipse.jgit</artifactId>
-      <version>7.7.2-SNAPSHOT</version>
+      <version>7.8.0-SNAPSHOT</version>
     </dependency>
   </dependencies>
 
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/feature.xml
index ae14a63..2cd6ac8 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.7.2.qualifier"
+      version="7.8.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="7.7.2" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="7.8.0" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/pom.xml
index 40a8390..f022882 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.jsch.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.jsch.feature/feature.xml
index bb2cb10..c14e4a3 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.7.2.qualifier"
+      version="7.8.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.jgit" version="7.7.2" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="7.8.0" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.jsch.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.jsch.feature/pom.xml
index 7d153b8..dbee9fe 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.34.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.34.target
index ecc31ea..d49c234 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="1784546876">
+<target name="jgit-4.34" sequenceNumber="1784069096">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -97,13 +97,13 @@
         <dependency>
           <groupId>net.java.dev.jna</groupId>
           <artifactId>jna</artifactId>
-          <version>5.18.1</version>
+          <version>5.19.1</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.java.dev.jna</groupId>
           <artifactId>jna-platform</artifactId>
-          <version>5.18.1</version>
+          <version>5.19.1</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -111,51 +111,51 @@
     <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.9</version>
+          <groupId>org.eclipse.jetty.ee11</groupId>
+          <artifactId>jetty-ee11-servlet</artifactId>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -201,13 +201,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.18.8</version>
+          <version>1.18.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.18.8</version>
+          <version>1.18.11</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -217,25 +217,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -289,7 +289,7 @@
         <dependency>
           <groupId>commons-logging</groupId>
           <artifactId>commons-logging</artifactId>
-          <version>1.3.6</version>
+          <version>1.4.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
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 b2c1290..65b305c 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="1784546876">
+<target name="jgit-4.35" sequenceNumber="1784069096">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -97,13 +97,13 @@
         <dependency>
           <groupId>net.java.dev.jna</groupId>
           <artifactId>jna</artifactId>
-          <version>5.18.1</version>
+          <version>5.19.1</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.java.dev.jna</groupId>
           <artifactId>jna-platform</artifactId>
-          <version>5.18.1</version>
+          <version>5.19.1</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -111,51 +111,51 @@
     <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.9</version>
+          <groupId>org.eclipse.jetty.ee11</groupId>
+          <artifactId>jetty-ee11-servlet</artifactId>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -201,13 +201,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.18.8</version>
+          <version>1.18.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.18.8</version>
+          <version>1.18.11</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -217,25 +217,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -289,7 +289,7 @@
         <dependency>
           <groupId>commons-logging</groupId>
           <artifactId>commons-logging</artifactId>
-          <version>1.3.6</version>
+          <version>1.4.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
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 8900146..16e63cc 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="1784546876">
+<target name="jgit-4.36" sequenceNumber="1784069095">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -97,13 +97,13 @@
         <dependency>
           <groupId>net.java.dev.jna</groupId>
           <artifactId>jna</artifactId>
-          <version>5.18.1</version>
+          <version>5.19.1</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.java.dev.jna</groupId>
           <artifactId>jna-platform</artifactId>
-          <version>5.18.1</version>
+          <version>5.19.1</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -111,51 +111,51 @@
     <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.9</version>
+          <groupId>org.eclipse.jetty.ee11</groupId>
+          <artifactId>jetty-ee11-servlet</artifactId>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -201,13 +201,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.18.8</version>
+          <version>1.18.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.18.8</version>
+          <version>1.18.11</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -217,25 +217,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -289,7 +289,7 @@
         <dependency>
           <groupId>commons-logging</groupId>
           <artifactId>commons-logging</artifactId>
-          <version>1.3.6</version>
+          <version>1.4.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.37.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.37.target
index 1386b22..15e188a 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.37.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.37.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.37" sequenceNumber="1784546876">
+<target name="jgit-4.37" sequenceNumber="1784069095">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -97,13 +97,13 @@
         <dependency>
           <groupId>net.java.dev.jna</groupId>
           <artifactId>jna</artifactId>
-          <version>5.18.1</version>
+          <version>5.19.1</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.java.dev.jna</groupId>
           <artifactId>jna-platform</artifactId>
-          <version>5.18.1</version>
+          <version>5.19.1</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -111,51 +111,51 @@
     <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.9</version>
+          <groupId>org.eclipse.jetty.ee11</groupId>
+          <artifactId>jetty-ee11-servlet</artifactId>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -201,13 +201,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.18.8</version>
+          <version>1.18.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.18.8</version>
+          <version>1.18.11</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -217,25 +217,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -289,7 +289,7 @@
         <dependency>
           <groupId>commons-logging</groupId>
           <artifactId>commons-logging</artifactId>
-          <version>1.3.6</version>
+          <version>1.4.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.38.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.38.target
index cb3d019..177b47e 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.38.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.38.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.38" sequenceNumber="1784546877">
+<target name="jgit-4.38" sequenceNumber="1784069094">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -97,13 +97,13 @@
         <dependency>
           <groupId>net.java.dev.jna</groupId>
           <artifactId>jna</artifactId>
-          <version>5.18.1</version>
+          <version>5.19.1</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.java.dev.jna</groupId>
           <artifactId>jna-platform</artifactId>
-          <version>5.18.1</version>
+          <version>5.19.1</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -111,51 +111,51 @@
     <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.9</version>
+          <groupId>org.eclipse.jetty.ee11</groupId>
+          <artifactId>jetty-ee11-servlet</artifactId>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -201,13 +201,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.18.8</version>
+          <version>1.18.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.18.8</version>
+          <version>1.18.11</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -217,25 +217,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -289,7 +289,7 @@
         <dependency>
           <groupId>commons-logging</groupId>
           <artifactId>commons-logging</artifactId>
-          <version>1.3.6</version>
+          <version>1.4.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.39.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.39.target
index 4300c83..acf36c7 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.39.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.39.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.39" sequenceNumber="1784546877">
+<target name="jgit-4.39" sequenceNumber="1784069094">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -97,13 +97,13 @@
         <dependency>
           <groupId>net.java.dev.jna</groupId>
           <artifactId>jna</artifactId>
-          <version>5.18.1</version>
+          <version>5.19.1</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.java.dev.jna</groupId>
           <artifactId>jna-platform</artifactId>
-          <version>5.18.1</version>
+          <version>5.19.1</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -111,51 +111,51 @@
     <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.9</version>
+          <groupId>org.eclipse.jetty.ee11</groupId>
+          <artifactId>jetty-ee11-servlet</artifactId>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -201,13 +201,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.18.8</version>
+          <version>1.18.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.18.8</version>
+          <version>1.18.11</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -217,25 +217,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -289,7 +289,7 @@
         <dependency>
           <groupId>commons-logging</groupId>
           <artifactId>commons-logging</artifactId>
-          <version>1.3.6</version>
+          <version>1.4.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.40.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.40.target
index e220559..232122a 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.40.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.40.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.40" sequenceNumber="1784546876">
+<target name="jgit-4.40" sequenceNumber="1784069094">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -32,7 +32,7 @@
     </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/2026-06/"/>
+      <repository location="https://download.eclipse.org/releases/2026-06/"/>
     </location>
     <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="xz">
       <dependencies>
@@ -97,13 +97,13 @@
         <dependency>
           <groupId>net.java.dev.jna</groupId>
           <artifactId>jna</artifactId>
-          <version>5.18.1</version>
+          <version>5.19.1</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.java.dev.jna</groupId>
           <artifactId>jna-platform</artifactId>
-          <version>5.18.1</version>
+          <version>5.19.1</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -111,51 +111,51 @@
     <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.9</version>
+          <groupId>org.eclipse.jetty.ee11</groupId>
+          <artifactId>jetty-ee11-servlet</artifactId>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.1.9</version>
+          <version>12.1.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -201,13 +201,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.18.8</version>
+          <version>1.18.11</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.18.8</version>
+          <version>1.18.11</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -217,25 +217,25 @@
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpg-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcutil-jdk18on</artifactId>
-          <version>1.84</version>
+          <version>1.85</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -289,7 +289,7 @@
         <dependency>
           <groupId>commons-logging</groupId>
           <artifactId>commons-logging</artifactId>
-          <version>1.3.6</version>
+          <version>1.4.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.40.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.40.tpd
index 62e9f38..267a671 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.40.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.40.tpd
@@ -3,6 +3,6 @@
 include "orbit/orbit-4.40.tpd"
 include "maven/dependencies.tpd"
 
-location "https://download.eclipse.org/staging/2026-06/" {
+location "https://download.eclipse.org/releases/2026-06/" {
 	org.eclipse.osgi lazy
 }
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.41.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.41.target
new file mode 100644
index 0000000..6dc9701
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.41.target
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde?>
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="jgit-4.41" sequenceNumber="1784069094">
+  <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.17.v20260410-1000"/>
+      <unit id="org.apache.ant.source" version="1.10.17.v20260410-1000"/>
+      <unit id="org.apache.aries.spifly.dynamic.bundle" version="1.3.7"/>
+      <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" version="3.0.0"/>
+      <unit id="org.hamcrest.source" version="3.0.0"/>
+      <unit id="org.junit" version="4.13.2.v20240929-1000"/>
+      <unit id="org.junit.source" version="4.13.2.v20240929-1000"/>
+      <unit id="org.objectweb.asm" version="9.10.1"/>
+      <unit id="org.objectweb.asm.commons" version="9.10.1"/>
+      <unit id="org.objectweb.asm.util" version="9.10.1"/>
+      <unit id="org.objectweb.asm.tree" version="9.10.1"/>
+      <unit id="org.objectweb.asm.tree.analysis" version="9.10.1"/>
+      <unit id="org.objenesis" version="3.5.0"/>
+      <unit id="org.objenesis.source" version="3.5.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/2026-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/2026-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.12</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>2.0.18</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.slf4j</groupId>
+          <artifactId>slf4j-simple</artifactId>
+          <version>2.0.18</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.slf4j</groupId>
+          <artifactId>jcl-over-slf4j</artifactId>
+          <version>2.0.18</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.19.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.sshd</groupId>
+          <artifactId>sshd-sftp</artifactId>
+          <version>2.19.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.23.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.19.1</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>net.java.dev.jna</groupId>
+          <artifactId>jna-platform</artifactId>
+          <version>5.19.1</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.ee11</groupId>
+          <artifactId>jetty-ee11-servlet</artifactId>
+          <version>12.1.11</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-http</artifactId>
+          <version>12.1.11</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-io</artifactId>
+          <version>12.1.11</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-security</artifactId>
+          <version>12.1.11</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-server</artifactId>
+          <version>12.1.11</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-session</artifactId>
+          <version>12.1.11</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-util</artifactId>
+          <version>12.1.11</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-util-ajax</artifactId>
+          <version>12.1.11</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>3.0</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.14.0</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.18.11</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>net.bytebuddy</groupId>
+          <artifactId>byte-buddy-agent</artifactId>
+          <version>1.18.11</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.85</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.bouncycastle</groupId>
+          <artifactId>bcprov-jdk18on</artifactId>
+          <version>1.85</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.bouncycastle</groupId>
+          <artifactId>bcpkix-jdk18on</artifactId>
+          <version>1.85</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>org.bouncycastle</groupId>
+          <artifactId>bcutil-jdk18on</artifactId>
+          <version>1.85</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.7</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.22.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.20.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>commons-io</groupId>
+          <artifactId>commons-io</artifactId>
+          <version>2.22.0</version>
+          <type>jar</type>
+        </dependency>
+        <dependency>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+          <version>1.4.0</version>
+          <type>jar</type>
+        </dependency>
+      </dependencies>
+    </location>
+  </locations>
+</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.41.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.41.tpd
new file mode 100644
index 0000000..1670b1b
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.41.tpd
@@ -0,0 +1,8 @@
+target "jgit-4.41" with source configurePhase
+
+include "orbit/orbit-4.41.tpd"
+include "maven/dependencies.tpd"
+
+location "https://download.eclipse.org/staging/2026-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 c30cfae..3516ee9 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
@@ -30,7 +30,7 @@
 	dependency {
 		groupId = "commons-logging"
 		artifactId = "commons-logging"
-		version = "1.3.6"
+		version = "1.4.0"
 	}
 }
 
@@ -69,22 +69,22 @@
 	dependency {
 		groupId = "org.bouncycastle"
 		artifactId = "bcpg-jdk18on"
-		version = "1.84"
+		version = "1.85"
 	}
 	dependency {
 		groupId = "org.bouncycastle"
 		artifactId = "bcprov-jdk18on"
-		version = "1.84"
+		version = "1.85"
 	}
 	dependency {
 		groupId = "org.bouncycastle"
 		artifactId = "bcpkix-jdk18on"
-		version = "1.84"
+		version = "1.85"
 	}
 	dependency {
 		groupId = "org.bouncycastle"
 		artifactId = "bcutil-jdk18on"
-		version = "1.84"
+		version = "1.85"
 	}
 }
 
@@ -97,12 +97,12 @@
 	dependency {
 		groupId = "net.bytebuddy"
 		artifactId = "byte-buddy"
-		version = "1.18.8"
+		version = "1.18.11"
 	}
 	dependency {
 		groupId = "net.bytebuddy"
 		artifactId = "byte-buddy-agent"
-		version = "1.18.8"
+		version = "1.18.11"
 	}
 }
 
@@ -152,44 +152,44 @@
 	includeSources
 {
 	dependency {
-		groupId = "org.eclipse.jetty.ee10"
-		artifactId = "jetty-ee10-servlet"
-		version = "12.1.9"
+		groupId = "org.eclipse.jetty.ee11"
+		artifactId = "jetty-ee11-servlet"
+		version = "12.1.11"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-http"
-		version = "12.1.9"
+		version = "12.1.11"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-io"
-		version = "12.1.9"
+		version = "12.1.11"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-security"
-		version = "12.1.9"
+		version = "12.1.11"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-server"
-		version = "12.1.9"
+		version = "12.1.11"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-session"
-		version = "12.1.9"
+		version = "12.1.11"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-util"
-		version = "12.1.9"
+		version = "12.1.11"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-util-ajax"
-		version = "12.1.9"
+		version = "12.1.11"
 	}
 	dependency {
 		groupId = "jakarta.servlet"
@@ -207,12 +207,12 @@
 	dependency {
 		groupId = "net.java.dev.jna"
 		artifactId = "jna"
-		version = "5.18.1"
+		version = "5.19.1"
 	}
 	dependency {
 		groupId = "net.java.dev.jna"
 		artifactId = "jna-platform"
-		version = "5.18.1"
+		version = "5.19.1"
 	}
 }
 
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/orbit-4.41.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/orbit-4.41.tpd
new file mode 100644
index 0000000..f38ad94
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/orbit-4.41.tpd
@@ -0,0 +1,29 @@
+target "orbit-4.41" with source configurePhase
+// see https://download.eclipse.org/tools/orbit/downloads/
+
+location "https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2026-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.17.v20260410-1000,1.10.17.v20260410-1000]
+	org.apache.ant.source [1.10.17.v20260410-1000,1.10.17.v20260410-1000]
+	org.apache.aries.spifly.dynamic.bundle [1.3.7,1.3.7]
+	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 [3.0.0,3.0.0]
+	org.hamcrest.source [3.0.0,3.0.0]
+	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.objectweb.asm [9.10.1,9.10.1]
+	org.objectweb.asm.commons [9.10.1,9.10.1]
+	org.objectweb.asm.util [9.10.1,9.10.1]
+	org.objectweb.asm.tree [9.10.1,9.10.1]
+	org.objectweb.asm.tree.analysis [9.10.1,9.10.1]
+	org.objenesis [3.5.0,3.5.0]
+	org.objenesis.source [3.5.0,3.5.0]
+	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 6f5c86f..a31b928 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.7.2-SNAPSHOT</version>
+  <version>7.8.0-SNAPSHOT</version>
   <packaging>pom</packaging>
 
   <name>JGit Tycho Parent</name>
diff --git a/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
index 0f86e87..a28a4ef 100644
--- a/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
@@ -3,31 +3,31 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.pgm.test
 Bundle-SymbolicName: org.eclipse.jgit.pgm.test
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Import-Package: org.eclipse.jgit.api;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.api.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.diff;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.dircache;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.diffmergetool;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.junit;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib.internal;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.merge;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.pgm;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.pgm.internal;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.pgm.opt;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revwalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.treewalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util.io;version="[7.7.2,7.8.0)",
+Import-Package: org.eclipse.jgit.api;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.api.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.diff;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.dircache;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.diffmergetool;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.junit;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib.internal;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.merge;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.pgm;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.pgm.internal;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.pgm.opt;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revwalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.treewalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util.io;version="[7.8.0,7.9.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 318a4a5..5319d3e 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.pgm.test</artifactId>
diff --git a/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF b/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF
index 4a83db8..83dc25a 100644
--- a/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF
@@ -3,62 +3,62 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.pgm
 Bundle-SymbolicName: org.eclipse.jgit.pgm
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.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)",
+Import-Package: jakarta.servlet;version="[6.1.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)",
+ org.eclipse.jetty.ee11.servlet;version="[12.0.0,13.0.0)",
  org.eclipse.jetty.server;version="[12.0.0,13.0.0)",
  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.7.2,7.8.0)",
- org.eclipse.jgit.api.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.archive;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.awtui;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.blame;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.diff;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.dircache;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.gitrepo;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.diffmergetool;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.io;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.midx;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.pack;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs.server;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs.server.fs;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs.server.s3;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib.internal;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.merge;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.nls;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.notes;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revplot;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revwalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revwalk.filter;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.storage.pack;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.http.apache;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.resolver;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.ssh.jsch;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.sshd;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.treewalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util.io;version="[7.7.2,7.8.0)",
+ org.eclipse.jgit.api;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.api.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.archive;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.awtui;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.blame;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.diff;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.dircache;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.gitrepo;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.diffmergetool;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.io;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.midx;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs.server;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs.server.fs;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs.server.s3;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib.internal;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.merge;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.nls;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.notes;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revplot;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revwalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revwalk.filter;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.storage.pack;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.http.apache;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.resolver;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.ssh.jsch;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.sshd;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.treewalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util.io;version="[7.8.0,7.9.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.7.2";
+Export-Package: org.eclipse.jgit.console;version="7.8.0";
  uses:="org.eclipse.jgit.transport,
   org.eclipse.jgit.util",
- org.eclipse.jgit.pgm;version="7.7.2";
+ org.eclipse.jgit.pgm;version="7.8.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.util.io,
    org.eclipse.jgit.awtui,
@@ -70,14 +70,14 @@
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.api,
    javax.swing",
- org.eclipse.jgit.pgm.debug;version="7.7.2";
+ org.eclipse.jgit.pgm.debug;version="7.8.0";
   uses:="org.eclipse.jgit.util.io,
    org.eclipse.jgit.pgm,
    org.eclipse.jetty.servlet",
- org.eclipse.jgit.pgm.internal;version="7.7.2";
+ org.eclipse.jgit.pgm.internal;version="7.8.0";
   x-friends:="org.eclipse.jgit.pgm.test,
    org.eclipse.jgit.test",
- org.eclipse.jgit.pgm.opt;version="7.7.2";
+ org.eclipse.jgit.pgm.opt;version="7.8.0";
   uses:="org.kohsuke.args4j,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
diff --git a/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF
index 4a29f5b..e9a6b04 100644
--- a/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.pgm - Sources
 Bundle-SymbolicName: org.eclipse.jgit.pgm.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.pgm;version="7.7.2.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.pgm;version="7.8.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.pgm/pom.xml b/org.eclipse.jgit.pgm/pom.xml
index 66fefdc..042033d 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.pgm</artifactId>
@@ -107,8 +107,8 @@
     </dependency>
 
     <dependency>
-      <groupId>org.eclipse.jetty.ee10</groupId>
-      <artifactId>jetty-ee10-servlet</artifactId>
+      <groupId>org.eclipse.jetty.ee11</groupId>
+      <artifactId>jetty-ee11-servlet</artifactId>
     </dependency>
 
     <dependency>
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/LfsStore.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/LfsStore.java
index 757c435..fa40431 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/LfsStore.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/LfsStore.java
@@ -26,8 +26,8 @@
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.ServerConnector;
 import org.eclipse.jetty.server.handler.ContextHandlerCollection;
-import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
 import org.eclipse.jgit.errors.ConfigInvalidException;
 import org.eclipse.jgit.lfs.server.LargeFileRepository;
 import org.eclipse.jgit.lfs.server.LfsProtocolServlet;
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 79e99df..35e1533 100644
--- a/org.eclipse.jgit.ssh.apache.agent/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache.agent/META-INF/MANIFEST.MF
@@ -2,17 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.agent;singleton:=true
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/agent
 Bundle-Vendor: %Bundle-Vendor
-Fragment-Host: org.eclipse.jgit.ssh.apache;bundle-version="[7.7.2,7.8.0)"
+Fragment-Host: org.eclipse.jgit.ssh.apache;bundle-version="[7.8.0,7.9.0)"
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.jgit.ssh.apache.agent
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Import-Package: org.eclipse.jgit.transport.sshd;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.nls;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)"
+Import-Package: org.eclipse.jgit.transport.sshd;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.nls;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.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.7.2";x-internal:=true
+Export-Package: org.eclipse.jgit.internal.transport.sshd.agent.connector;version="7.8.0";x-internal:=true
+
diff --git a/org.eclipse.jgit.ssh.apache.agent/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.ssh.apache.agent/META-INF/SOURCE-MANIFEST.MF
index 5a47ca5..9a8ae16 100644
--- a/org.eclipse.jgit.ssh.apache.agent/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache.agent/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.ssh.apache.agent - Sources
 Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.agent.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache.agent;version="7.7.2.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache.agent;version="7.8.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.apache.agent/pom.xml b/org.eclipse.jgit.ssh.apache.agent/pom.xml
index e8e7c7a..8769f64 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ssh.apache.agent</artifactId>
diff --git a/org.eclipse.jgit.ssh.apache.test/BUILD b/org.eclipse.jgit.ssh.apache.test/BUILD
index bf796c0..e36f8d6 100644
--- a/org.eclipse.jgit.ssh.apache.test/BUILD
+++ b/org.eclipse.jgit.ssh.apache.test/BUILD
@@ -6,6 +6,7 @@
     "@com_googlesource_gerrit_bazlets//tools:junit.bzl",
     "junit_tests",
 )
+load("@rules_java//java:defs.bzl", "java_library")
 
 DEPS = [
     "//lib:bcpkix",
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 6ee695b..b83e577 100644
--- a/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ssh.apache.test
 Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.test
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
@@ -22,26 +22,26 @@
  org.apache.sshd.common.signature;version="[2.19.0,3.0.0)",
  org.apache.sshd.common.util.buffer;version="[2.19.0,3.0.0)",
  org.apache.sshd.common.util.net;version="[2.19.0,3.0.0)",
- org.apache.sshd.common.util.security;version="[2.19.0,3.0.0)",
+ org.apache.sshd.common.util.security;version="[2.19.0,3.0.0",
  org.apache.sshd.core;version="[2.19.0,3.0.0)",
  org.apache.sshd.server;version="[2.19.0,3.0.0)",
  org.apache.sshd.server.forward;version="[2.19.0,3.0.0)",
- org.eclipse.jgit.annotations;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.api;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.api.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.signing.ssh;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.transport.sshd;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.transport.sshd.proxy;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.junit;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.junit.ssh;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revwalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.sshd;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.sshd.agent;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)",
+ org.eclipse.jgit.annotations;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.api;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.api.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.signing.ssh;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.transport.sshd;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.transport.sshd.proxy;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.junit;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.junit.ssh;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revwalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.sshd;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.sshd.agent;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.0)",
  org.hamcrest;version="[3.0.0,4.0.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.experimental.theories;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.ssh.apache.test/pom.xml b/org.eclipse.jgit.ssh.apache.test/pom.xml
index ef74fb2..c42eb2b 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ssh.apache.test</artifactId>
diff --git a/org.eclipse.jgit.ssh.apache/META-INF/MANIFEST.MF b/org.eclipse.jgit.ssh.apache/META-INF/MANIFEST.MF
index 11eab59..37f2ab9 100644
--- a/org.eclipse.jgit.ssh.apache/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache/META-INF/MANIFEST.MF
@@ -6,11 +6,11 @@
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-ActivationPolicy: lazy
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Export-Package: org.eclipse.jgit.internal.signing.ssh;version="7.7.2";x-friends:="org.eclipse.jgit.ssh.apache.test",
- org.eclipse.jgit.internal.transport.sshd;version="7.7.2";x-friends:="org.eclipse.jgit.ssh.apache.test";
+Export-Package: org.eclipse.jgit.internal.signing.ssh;version="7.8.0";x-friends:="org.eclipse.jgit.ssh.apache.test",
+ org.eclipse.jgit.internal.transport.sshd;version="7.8.0";x-friends:="org.eclipse.jgit.ssh.apache.test";
   uses:="org.apache.sshd.client,
    org.apache.sshd.client.auth,
    org.apache.sshd.client.auth.keyboard,
@@ -25,19 +25,19 @@
    org.apache.sshd.common.signature,
    org.apache.sshd.common.util.buffer,
    org.eclipse.jgit.transport",
- org.eclipse.jgit.internal.transport.sshd.agent;version="7.7.2";x-internal:=true,
- org.eclipse.jgit.internal.transport.sshd.auth;version="7.7.2";x-internal:=true,
- org.eclipse.jgit.internal.transport.sshd.pkcs11;version="7.7.2";x-internal:=true,
- org.eclipse.jgit.internal.transport.sshd.proxy;version="7.7.2";x-friends:="org.eclipse.jgit.ssh.apache.test",
- org.eclipse.jgit.signing.ssh;version="7.7.2";uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.transport.sshd;version="7.7.2";
+ org.eclipse.jgit.internal.transport.sshd.agent;version="7.8.0";x-internal:=true,
+ org.eclipse.jgit.internal.transport.sshd.auth;version="7.8.0";x-internal:=true,
+ org.eclipse.jgit.internal.transport.sshd.pkcs11;version="7.8.0";x-internal:=true,
+ org.eclipse.jgit.internal.transport.sshd.proxy;version="7.8.0";x-friends:="org.eclipse.jgit.ssh.apache.test",
+ org.eclipse.jgit.signing.ssh;version="7.8.0";uses:="org.eclipse.jgit.lib",
+ org.eclipse.jgit.transport.sshd;version="7.8.0";
   uses:="org.eclipse.jgit.transport,
    org.apache.sshd.client.config.hosts,
    org.apache.sshd.common.keyprovider,
    org.eclipse.jgit.util,
    org.apache.sshd.client.session,
    org.apache.sshd.client.keyverifier",
- org.eclipse.jgit.transport.sshd.agent;version="7.7.2"
+ org.eclipse.jgit.transport.sshd.agent;version="7.8.0"
 Import-Package: org.bouncycastle.jce.provider;version="[1.84.0,2.0.0)",
  org.apache.sshd.agent;version="[2.19.0,3.0.0)",
  org.apache.sshd.client;version="[2.19.0,3.0.0)",
@@ -91,14 +91,14 @@
  org.apache.sshd.sftp;version="[2.19.0,3.0.0)",
  org.apache.sshd.sftp.client;version="[2.19.0,3.0.0)",
  org.apache.sshd.sftp.common;version="[2.19.0,3.0.0)",
- org.eclipse.jgit.annotations;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.api.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.fnmatch;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.nls;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)",
+ org.eclipse.jgit.annotations;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.api.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.fnmatch;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.nls;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.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 8e9fdf3..3b936a8 100644
--- a/org.eclipse.jgit.ssh.apache/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.ssh.apache - Sources
 Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache;version="7.7.2.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache;version="7.8.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.apache/pom.xml b/org.eclipse.jgit.ssh.apache/pom.xml
index 31da284..d5cff8d 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ssh.apache</artifactId>
diff --git a/org.eclipse.jgit.ssh.jsch.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.ssh.jsch.test/META-INF/MANIFEST.MF
index 0f6a0f6..85d12ab 100644
--- a/org.eclipse.jgit.ssh.jsch.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.jsch.test/META-INF/MANIFEST.MF
@@ -3,20 +3,20 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ssh.jsch.test
 Bundle-SymbolicName: org.eclipse.jgit.ssh.jsch.test
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
 Import-Package: com.jcraft.jsch;version="[0.1.54,0.2.0)",
- org.eclipse.jgit.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.junit;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.junit.ssh;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.ssh.jsch;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)",
+ org.eclipse.jgit.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.junit;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.junit.ssh;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.ssh.jsch;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.0)",
  org.hamcrest;version="[3.0.0,4.0.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.experimental.theories;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.ssh.jsch.test/pom.xml b/org.eclipse.jgit.ssh.jsch.test/pom.xml
index 925d7d8..a5e57f6 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ssh.jsch.test</artifactId>
diff --git a/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF b/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF
index abb3690..8eaf94d 100644
--- a/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF
@@ -3,20 +3,20 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ssh.jsch
 Bundle-SymbolicName: org.eclipse.jgit.ssh.jsch;singleton:=true
-Fragment-Host: org.eclipse.jgit;bundle-version="[7.7.2,7.8.0)"
+Fragment-Host: org.eclipse.jgit;bundle-version="[7.8.0,7.9.0)"
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/jsch
 Bundle-ActivationPolicy: lazy
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Export-Package: org.eclipse.jgit.transport.ssh.jsch;version="7.7.2"
+Export-Package: org.eclipse.jgit.transport.ssh.jsch;version="7.8.0"
 Import-Package: com.jcraft.jsch;version="[0.1.37,0.2.0)",
- org.eclipse.jgit.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.nls;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util.io;version="[7.7.2,7.8.0)",
+ org.eclipse.jgit.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.nls;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util.io;version="[7.8.0,7.9.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 4568eaa..9d08701 100644
--- a/org.eclipse.jgit.ssh.jsch/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.jsch/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.ssh.jsch - Sources
 Bundle-SymbolicName: org.eclipse.jgit.ssh.jsch.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.jsch;version="7.7.2.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.ssh.jsch;version="7.8.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.jsch/pom.xml b/org.eclipse.jgit.ssh.jsch/pom.xml
index 356bf98..865298d 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ssh.jsch</artifactId>
diff --git a/org.eclipse.jgit.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.test/META-INF/MANIFEST.MF
index 9b2b373..5cab045 100644
--- a/org.eclipse.jgit.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.test/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.test
 Bundle-SymbolicName: org.eclipse.jgit.test
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Localization: plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-RequiredExecutionEnvironment: JavaSE-17
@@ -21,66 +21,66 @@
  org.apache.commons.io.output;version="[2.15.0,3.0.0)",
  org.apache.commons.lang3;version="[3.17.0,4.0.0)",
  org.assertj.core.api;version="[3.14.0,4.0.0)",
- org.eclipse.jgit.annotations;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.api;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.api.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.archive;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.attributes;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.awtui;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.blame;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.blame.cache;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.diff;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.dircache;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.events;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.fnmatch;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.gitrepo;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.hooks;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.ignore;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.ignore.internal;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.diff;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.diffmergetool;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.fsck;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.revwalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.commitgraph;version="7.7.2",
- org.eclipse.jgit.internal.storage.dfs;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.io;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.memory;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.midx;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.pack;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.transport.connectivity;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.transport.http;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.transport.parser;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.junit;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.junit.time;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lfs;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib.internal;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.logging;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.merge;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.nls;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.notes;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.patch;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.pgm;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.pgm.internal;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revplot;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revwalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revwalk.filter;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.storage.file;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.storage.pack;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.submodule;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.http;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport.resolver;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.treewalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.treewalk.filter;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util.io;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util.sha1;version="[7.7.2,7.8.0)",
+ org.eclipse.jgit.annotations;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.api;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.api.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.archive;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.attributes;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.awtui;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.blame;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.blame.cache;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.diff;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.dircache;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.events;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.fnmatch;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.gitrepo;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.hooks;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.ignore;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.ignore.internal;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.diff;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.diffmergetool;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.fsck;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.revwalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.commitgraph;version="7.8.0",
+ org.eclipse.jgit.internal.storage.dfs;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.io;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.memory;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.midx;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.transport.connectivity;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.transport.http;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.transport.parser;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.junit;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.junit.time;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lfs;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib.internal;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.logging;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.merge;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.nls;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.notes;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.patch;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.pgm;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.pgm.internal;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revplot;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revwalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revwalk.filter;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.storage.file;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.storage.pack;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.submodule;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.http;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport.resolver;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.treewalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.treewalk.filter;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util.io;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util.sha1;version="[7.8.0,7.9.0)",
  org.hamcrest;version="[3.0.0,4.0.0)",
  org.hamcrest.collection;version="[3.0.0,4.0.0)",
  org.junit;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.test/pom.xml b/org.eclipse.jgit.test/pom.xml
index 5da607c..531bdcb 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.test</artifactId>
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/dircache/DirCacheEntryTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/dircache/DirCacheEntryTest.java
index 01d1e02..158d9de 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/dircache/DirCacheEntryTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/dircache/DirCacheEntryTest.java
@@ -22,6 +22,7 @@
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.security.MessageDigest;
+import java.time.Duration;
 import java.time.Instant;
 import java.util.concurrent.TimeUnit;
 
@@ -339,4 +340,29 @@ private static void copyMetaDataHelper(boolean keepStage) {
 		assertTrue(e.isUpdateNeeded());
 		assertEquals("some/path", e.getPathString());
 	}
+
+	@Test
+	public void testMightBeRacilyCleanNanoOverflow() {
+		DirCacheEntry entry = new DirCacheEntry("some/path");
+		final Instant instant = Instant.ofEpochSecond(1, 999_999_999);
+		entry.setLastModified(instant.plus(Duration.ofNanos(1)));
+		assertTrue(entry.mightBeRacilyClean(instant));
+	}
+
+	@Test
+	public void testMightBeRacilyCleanOneSecondAfter() {
+		DirCacheEntry entry = new DirCacheEntry("some/path");
+		final Instant instant = Instant.ofEpochSecond(1, 0);
+		entry.setLastModified(instant.plus(Duration.ofSeconds(1)));
+		assertTrue(entry.mightBeRacilyClean(instant));
+	}
+
+	@Test
+	public void testNotRacilyCleanWhenSmudgeIsAfter() {
+		DirCacheEntry entry = new DirCacheEntry("some/path");
+		final Instant entryTime = Instant.ofEpochSecond(1, 0);
+		entry.setLastModified(entryTime);
+		final Instant smudge = entryTime.plus(Duration.ofNanos(1));
+		assertFalse(entry.mightBeRacilyClean(smudge));
+	}
 }
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java
index d64cfc5..b1fd58e 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java
@@ -1996,16 +1996,18 @@ public void testLongFilename() throws Exception {
 				break;
 			}
 		}
-		char[] bytes = new char[maximumFileNameLength];
-		Arrays.fill(bytes, 'f');
-		String longFileName = new String(bytes);
+		String longFileName = "f".repeat(maximumFileNameLength);
+		String longFileName2 = "ф".repeat(maximumFileNameLength / 2);
 		// 1
-		doit(mkmap(longFileName, "a"), mkmap(longFileName, "b"),
-				mkmap(longFileName, "a"));
+		doit(mkmap(longFileName, "a", longFileName2, "a"),
+				mkmap(longFileName, "b", longFileName2, "b"),
+				mkmap(longFileName, "a", longFileName2, "a"));
 		writeTrashFile(longFileName, "a");
+		writeTrashFile(longFileName2, "a");
 		checkout();
 		assertNoConflicts();
 		assertUpdated(longFileName);
+		assertUpdated(longFileName2);
 	}
 
 	@Test
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/AbstractRevWalkWithCommitGraphTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/AbstractRevWalkWithCommitGraphTest.java
new file mode 100644
index 0000000..4276f10
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/AbstractRevWalkWithCommitGraphTest.java
@@ -0,0 +1,150 @@
+/*
+ * Copyright (C) 2023, Tencent 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.revwalk;
+
+import static org.eclipse.jgit.internal.storage.commitgraph.CommitGraph.EMPTY;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.errors.AmbiguousObjectException;
+import org.eclipse.jgit.errors.ConfigInvalidException;
+import org.eclipse.jgit.errors.IncorrectObjectTypeException;
+import org.eclipse.jgit.errors.MissingObjectException;
+import org.eclipse.jgit.internal.storage.file.GC;
+import org.eclipse.jgit.lib.ConfigConstants;
+import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.revwalk.filter.RevFilter;
+import org.eclipse.jgit.storage.file.FileBasedConfig;
+import org.eclipse.jgit.treewalk.filter.TreeFilter;
+
+public abstract class AbstractRevWalkWithCommitGraphTest extends RevWalkTestCase {
+
+	@Override
+	public void setUp() throws Exception {
+		super.setUp();
+		reinitializeRevWalk();
+		mockSystemReader.setJGitConfig(new MockConfig());
+	}
+
+	protected final void assertCommitCntInGraph(int expect) {
+		assertEquals(expect, rw.commitGraph().getCommitCnt());
+	}
+
+	protected final void assertCommits(List<RevCommit> expect,
+			List<RevCommit> actual) {
+		assertEquals(expect.size(), actual.size());
+
+		for (int i = 0; i < expect.size(); i++) {
+			RevCommit c1 = expect.get(i);
+			RevCommit c2 = actual.get(i);
+			assertEquals(c1.getId(), c2.getId());
+			assertEquals(c1.getTree(), c2.getTree());
+			assertEquals(c1.getCommitTime(), c2.getCommitTime());
+			assertArrayEquals(c1.getParents(), c2.getParents());
+			assertArrayEquals(c1.getRawBuffer(), c2.getRawBuffer());
+		}
+	}
+
+	protected final Ref branch(RevCommit commit, String name) throws Exception {
+		return Git.wrap(db).branchCreate().setName(name)
+				.setStartPoint(commit.name()).call();
+	}
+
+	protected final List<RevCommit> travel(TreeFilter treeFilter,
+			RevFilter revFilter, RevSort revSort, boolean enableCommitGraph,
+			String... starts)
+			throws MissingObjectException, IncorrectObjectTypeException,
+			IOException, AmbiguousObjectException {
+		db.getConfig().setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null,
+				ConfigConstants.CONFIG_COMMIT_GRAPH, enableCommitGraph);
+
+		try (RevWalk walk = new RevWalk(db)) {
+			walk.setTreeFilter(treeFilter);
+			walk.setRevFilter(revFilter);
+			walk.sort(revSort);
+			walk.setRetainBody(false);
+			for (String start : starts) {
+				walk.markStart(walk.lookupCommit(db.resolve(start)));
+			}
+			List<RevCommit> commits = new ArrayList<>();
+
+			if (enableCommitGraph) {
+				assertTrue(walk.commitGraph().getCommitCnt() > 0);
+			} else {
+				assertEquals(EMPTY, walk.commitGraph());
+			}
+
+			for (RevCommit commit : walk) {
+				commits.add(commit);
+			}
+			return commits;
+		}
+	}
+
+	protected final void enableAndWriteCommitGraph() throws Exception {
+		db.getConfig().setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null,
+				ConfigConstants.CONFIG_COMMIT_GRAPH, true);
+		db.getConfig().setBoolean(ConfigConstants.CONFIG_GC_SECTION, null,
+				ConfigConstants.CONFIG_KEY_WRITE_COMMIT_GRAPH, true);
+		db.getConfig().setBoolean(ConfigConstants.CONFIG_GC_SECTION, null,
+				ConfigConstants.CONFIG_KEY_WRITE_CHANGED_PATHS, true);
+		GC gc = new GC(db);
+		gc.gc().get();
+	}
+
+	protected final void reinitializeRevWalk() {
+		rw.close();
+		rw = new RevWalk(db);
+	}
+
+	private static final class MockConfig extends FileBasedConfig {
+		private MockConfig() {
+			super(null, null);
+		}
+
+		@Override
+		public void load() throws IOException, ConfigInvalidException {
+			// Do nothing
+		}
+
+		@Override
+		public void save() throws IOException {
+			// Do nothing
+		}
+
+		@Override
+		public boolean isOutdated() {
+			return false;
+		}
+
+		@Override
+		public String toString() {
+			return "MockConfig";
+		}
+
+		@Override
+		public boolean getBoolean(final String section, final String name,
+				final boolean defaultValue) {
+			if (section.equals(ConfigConstants.CONFIG_COMMIT_GRAPH_SECTION)
+					&& name.equals(
+							ConfigConstants.CONFIG_KEY_READ_CHANGED_PATHS)) {
+				return true;
+			}
+			return defaultValue;
+		}
+	}
+
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkCommitGraphTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkCommitGraphTest.java
index e47dd89..41b2c24 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkCommitGraphTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkCommitGraphTest.java
@@ -11,7 +11,6 @@
 package org.eclipse.jgit.revwalk;
 
 import static java.util.Arrays.asList;
-import static org.eclipse.jgit.internal.storage.commitgraph.CommitGraph.EMPTY;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -20,22 +19,17 @@
 import static org.junit.Assert.assertTrue;
 
 import java.io.IOException;
-import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 
-import org.eclipse.jgit.api.Git;
 import org.eclipse.jgit.diff.DiffConfig;
-import org.eclipse.jgit.errors.ConfigInvalidException;
-import org.eclipse.jgit.internal.storage.file.GC;
 import org.eclipse.jgit.lib.AnyObjectId;
 import org.eclipse.jgit.lib.ConfigConstants;
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.Ref;
 import org.eclipse.jgit.revwalk.filter.MessageRevFilter;
 import org.eclipse.jgit.revwalk.filter.RevFilter;
-import org.eclipse.jgit.storage.file.FileBasedConfig;
 import org.eclipse.jgit.treewalk.filter.AndTreeFilter;
 import org.eclipse.jgit.treewalk.filter.ChangedPathTreeFilter;
 import org.eclipse.jgit.treewalk.filter.OrTreeFilter;
@@ -43,16 +37,7 @@
 import org.eclipse.jgit.treewalk.filter.TreeFilter;
 import org.junit.Test;
 
-public class RevWalkCommitGraphTest extends RevWalkTestCase {
-
-	private RevWalk rw;
-
-	@Override
-	public void setUp() throws Exception {
-		super.setUp();
-		rw = new RevWalk(db);
-		mockSystemReader.setJGitConfig(new MockConfig());
-	}
+public class RevWalkCommitGraphTest extends AbstractRevWalkWithCommitGraphTest {
 
 	@Test
 	public void testParseHeaders() throws Exception {
@@ -60,7 +45,6 @@ public void testParseHeaders() throws Exception {
 
 		RevCommit notParseInGraph = rw.lookupCommit(c1);
 		rw.parseHeaders(notParseInGraph);
-		assertFalse(notParseInGraph instanceof RevCommitCG);
 		assertNotNull(notParseInGraph.getRawBuffer());
 		assertEquals(Constants.COMMIT_GENERATION_UNKNOWN,
 				notParseInGraph.getGeneration());
@@ -71,7 +55,6 @@ public void testParseHeaders() throws Exception {
 		RevCommit parseInGraph = rw.lookupCommit(c1);
 		parseInGraph.parseHeaders(rw);
 
-		assertTrue(parseInGraph instanceof RevCommitCG);
 		assertNotNull(parseInGraph.getRawBuffer());
 		assertEquals(1, parseInGraph.getGeneration());
 		assertEquals(notParseInGraph.getId(), parseInGraph.getId());
@@ -84,7 +67,6 @@ public void testParseHeaders() throws Exception {
 		RevCommit noBody = rw.lookupCommit(c1);
 		noBody.parseHeaders(rw);
 
-		assertTrue(noBody instanceof RevCommitCG);
 		assertNull(noBody.getRawBuffer());
 		assertEquals(1, noBody.getGeneration());
 		assertEquals(notParseInGraph.getId(), noBody.getId());
@@ -105,7 +87,6 @@ public void testParseCanonical() throws Exception {
 		RevCommit parseInGraph = rw.lookupCommit(c1);
 		parseInGraph.parseCanonical(rw, rw.getCachedBytes(c1));
 
-		assertTrue(parseInGraph instanceof RevCommitCG);
 		assertNotNull(parseInGraph.getRawBuffer());
 		assertEquals(1, parseInGraph.getGeneration());
 		assertEquals(notParseInGraph.getId(), parseInGraph.getId());
@@ -120,7 +101,6 @@ public void testParseCanonical() throws Exception {
 		RevCommit noBody = rw.lookupCommit(c1);
 		noBody.parseCanonical(rw, rw.getCachedBytes(c1));
 
-		assertTrue(noBody instanceof RevCommitCG);
 		assertNull(noBody.getRawBuffer());
 		assertEquals(1, noBody.getGeneration());
 		assertEquals(notParseInGraph.getId(), noBody.getId());
@@ -140,7 +120,6 @@ public void testInitializeShallowCommits() throws Exception {
 		RevCommit parseInGraph = rw.lookupCommit(c1);
 		parseInGraph.parseHeaders(rw);
 
-		assertTrue(parseInGraph instanceof RevCommitCG);
 		assertNotNull(parseInGraph.getRawBuffer());
 		assertEquals(2, parseInGraph.getGeneration());
 		assertEquals(0, parseInGraph.getParentCount());
@@ -807,109 +786,4 @@ void testRevWalkBehavior(String branch, String compare) throws Exception {
 						false, compare));
 	}
 
-	void assertCommitCntInGraph(int expect) {
-		assertEquals(expect, rw.commitGraph().getCommitCnt());
-	}
-
-	void assertCommits(List<RevCommit> expect, List<RevCommit> actual) {
-		assertEquals(expect.size(), actual.size());
-
-		for (int i = 0; i < expect.size(); i++) {
-			RevCommit c1 = expect.get(i);
-			RevCommit c2 = actual.get(i);
-
-			assertEquals(c1.getId(), c2.getId());
-			assertEquals(c1.getTree(), c2.getTree());
-			assertEquals(c1.getCommitTime(), c2.getCommitTime());
-			assertArrayEquals(c1.getParents(), c2.getParents());
-			assertArrayEquals(c1.getRawBuffer(), c2.getRawBuffer());
-		}
-	}
-
-	Ref branch(RevCommit commit, String name) throws Exception {
-		return Git.wrap(db).branchCreate().setName(name)
-				.setStartPoint(commit.name()).call();
-	}
-
-	List<RevCommit> travel(TreeFilter treeFilter, RevFilter revFilter,
-			RevSort revSort, boolean enableCommitGraph, String... starts)
-			throws Exception {
-		db.getConfig().setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null,
-				ConfigConstants.CONFIG_COMMIT_GRAPH, enableCommitGraph);
-
-		try (RevWalk walk = new RevWalk(db)) {
-			walk.setTreeFilter(treeFilter);
-			walk.setRevFilter(revFilter);
-			walk.sort(revSort);
-			walk.setRetainBody(false);
-			for (String start : starts) {
-				walk.markStart(walk.lookupCommit(db.resolve(start)));
-			}
-			List<RevCommit> commits = new ArrayList<>();
-
-			if (enableCommitGraph) {
-				assertTrue(walk.commitGraph().getCommitCnt() > 0);
-			} else {
-				assertEquals(EMPTY, walk.commitGraph());
-			}
-
-			for (RevCommit commit : walk) {
-				commits.add(commit);
-			}
-			return commits;
-		}
-	}
-
-	void enableAndWriteCommitGraph() throws Exception {
-		db.getConfig().setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null,
-				ConfigConstants.CONFIG_COMMIT_GRAPH, true);
-		db.getConfig().setBoolean(ConfigConstants.CONFIG_GC_SECTION, null,
-				ConfigConstants.CONFIG_KEY_WRITE_COMMIT_GRAPH, true);
-		db.getConfig().setBoolean(ConfigConstants.CONFIG_GC_SECTION, null,
-				ConfigConstants.CONFIG_KEY_WRITE_CHANGED_PATHS, true);
-		GC gc = new GC(db);
-		gc.gc().get();
-	}
-
-	private void reinitializeRevWalk() {
-		rw.close();
-		rw = new RevWalk(db);
-	}
-
-	private static final class MockConfig extends FileBasedConfig {
-		private MockConfig() {
-			super(null, null);
-		}
-
-		@Override
-		public void load() throws IOException, ConfigInvalidException {
-			// Do nothing
-		}
-
-		@Override
-		public void save() throws IOException {
-			// Do nothing
-		}
-
-		@Override
-		public boolean isOutdated() {
-			return false;
-		}
-
-		@Override
-		public String toString() {
-			return "MockConfig";
-		}
-
-		@Override
-		public boolean getBoolean(final String section, final String name,
-				final boolean defaultValue) {
-			if (section.equals(ConfigConstants.CONFIG_COMMIT_GRAPH_SECTION)
-					&& name.equals(
-							ConfigConstants.CONFIG_KEY_READ_CHANGED_PATHS)) {
-				return true;
-			}
-			return defaultValue;
-		}
-	}
 }
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkSortTopoWithCommitGraphTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkSortTopoWithCommitGraphTest.java
new file mode 100644
index 0000000..5886f5f
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkSortTopoWithCommitGraphTest.java
@@ -0,0 +1,163 @@
+/*
+ * Copyright (C) 2026, Vector Informatik GmbH
+ *
+ * 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.revwalk;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.function.Consumer;
+
+import org.assertj.core.api.ThrowingConsumer;
+import org.eclipse.jgit.internal.storage.commitgraph.CommitGraph;
+import org.eclipse.jgit.lib.AnyObjectId;
+import org.eclipse.jgit.lib.Constants;
+import org.eclipse.jgit.treewalk.filter.ChangedPathTreeFilter;
+import org.junit.Test;
+
+public class RevWalkSortTopoWithCommitGraphTest
+		extends AbstractRevWalkWithCommitGraphTest {
+
+	@Test
+	public void testSort_TOPO_WithTreeFilter() throws Exception {
+		RevCommit a = commit(tree(file("a", blob("1"))));
+		RevCommit b = commit(tree(file("a", blob("2"))), a);
+		RevCommit c1 = commit(-5, tree(file("a", blob("3"))), b);
+		RevCommit c2 = commit(10,
+				tree(file("a", blob("2")), file("b", blob("1"))), b);
+		RevCommit d = commit(tree(file("a", blob("3")), file("b", blob("1"))),
+				c1, c2);
+		RevCommit e = commit(tree(file("a", blob("4")), file("b", blob("2"))),
+				d);
+		branch(e, "main");
+
+		testWalkBehavior( //
+				walk -> {
+					walk.sort(RevSort.TOPO);
+					walk.setTreeFilter(ChangedPathTreeFilter.create("a"));
+					walk.markStart(walk.lookupCommit(e));
+				}, //
+				actual -> {
+					assertEquals(4, actual.size());
+
+					assertRewrittenCommit(actual.get(0), e, c1);
+					assertRewrittenCommit(actual.get(1), c1, b);
+					assertRewrittenCommit(actual.get(2), b, a);
+					assertRewrittenCommit(actual.get(3), a);
+				} //
+		);
+	}
+
+	@Test
+	public void testSort_TOPO_WithTreeFilter_Reachable() throws Exception {
+		RevCommit a = commit(tree(file("a", blob("1"))));
+		RevCommit b = commit(tree(file("a", blob("2"))), a);
+		RevCommit c1 = commit(-5, tree(file("a", blob("3"))), b);
+		RevCommit c2 = commit(10,
+				tree(file("a", blob("2")), file("b", blob("1"))), b);
+		RevCommit d = commit(tree(file("a", blob("3")), file("b", blob("1"))),
+				c1, c2);
+		RevCommit e = commit(tree(file("a", blob("4")), file("b", blob("2"))),
+				d);
+		branch(e, "main");
+
+		testWalkBehavior( //
+				walk -> {
+					walk.sort(RevSort.TOPO);
+					walk.setTreeFilter(ChangedPathTreeFilter.create("a"));
+					walk.markStart(walk.lookupCommit(e));
+					walk.markUninteresting(walk.lookupCommit(b));
+				}, //
+				actual -> {
+					assertEquals(2, actual.size());
+
+					assertRewrittenCommit(actual.get(0), e, c1);
+					assertRewrittenCommit(actual.get(1), c1, b);
+				} //
+		);
+	}
+
+	@Test
+	public void testSort_TOPO_WithTreeFilter_Reachable2() throws Exception {
+		RevCommit a = commit(tree(file("a", blob("1"))));
+		RevCommit b = commit(tree(file("a", blob("2"))), a);
+		RevCommit c1 = commit(-5, tree(file("a", blob("3"))), b);
+		RevCommit c2 = commit(10,
+				tree(file("a", blob("2")), file("b", blob("1"))), b);
+		RevCommit d = commit(tree(file("a", blob("3")), file("b", blob("1"))),
+				c1, c2);
+		RevCommit e = commit(tree(file("a", blob("4")), file("b", blob("2"))),
+				d);
+		branch(e, "main");
+
+		testWalkBehavior( //
+				walk -> {
+					walk.sort(RevSort.TOPO);
+					walk.setTreeFilter(ChangedPathTreeFilter.create("a"));
+					walk.markStart(walk.lookupCommit(e));
+					walk.markUninteresting(walk.lookupCommit(e));
+				}, //
+				actual -> {
+					assertEquals(0, actual.size());
+				} //
+		);
+	}
+
+	// Test the RevWalk behavior with and without enabled commit graph
+	private void testWalkBehavior(ThrowingConsumer<RevWalk> configureWalker,
+			Consumer<List<RevCommit>> assertResult) throws Exception {
+		configureWalker.accept(rw);
+		List<RevCommit> actual = new ArrayList<>();
+		rw.forEach(actual::add);
+
+		assertEquals(CommitGraph.EMPTY, rw.commitGraph());
+		for (RevCommit c : actual) {
+			assertEquals(Constants.COMMIT_GENERATION_UNKNOWN,
+					c.getGeneration());
+		}
+
+		assertResult.accept(actual);
+
+		enableAndWriteCommitGraph();
+		reinitializeRevWalk();
+
+		configureWalker.accept(rw);
+		actual.clear();
+		rw.forEach(actual::add);
+
+		assertNotEquals(0, rw.commitGraph().getCommitCnt());
+		for (RevCommit c : actual) {
+			assertNotEquals(Constants.COMMIT_GENERATION_UNKNOWN,
+					c.getGeneration());
+		}
+
+		assertResult.accept(actual);
+	}
+
+	private void assertRewrittenCommit(RevCommit actual, AnyObjectId expectId,
+			RevCommit... expectParents) {
+		assertObjectId(actual, expectId);
+		assertEquals(expectParents.length, actual.getParentCount());
+
+		for (int i = 0; i < expectParents.length; i++) {
+			assertObjectId(actual.getParent(i), expectParents[i]);
+		}
+	}
+
+	private void assertObjectId(AnyObjectId actual, AnyObjectId expectId) {
+		if (!AnyObjectId.isEqual(expectId, actual)) {
+			fail("Expected object id <%s>, got <%s>".formatted(expectId.name(),
+					actual.name()));
+		}
+	}
+
+}
diff --git a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF
index 3c5a8f0..e376952 100644
--- a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF
@@ -4,15 +4,15 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ui
 Bundle-SymbolicName: org.eclipse.jgit.ui
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Export-Package: org.eclipse.jgit.awtui;version="7.7.2"
-Import-Package: org.eclipse.jgit.errors;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.lib;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.nls;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revplot;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.revwalk;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.transport;version="[7.7.2,7.8.0)",
- org.eclipse.jgit.util;version="[7.7.2,7.8.0)"
+Export-Package: org.eclipse.jgit.awtui;version="7.8.0"
+Import-Package: org.eclipse.jgit.errors;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.lib;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.nls;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revplot;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.revwalk;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.transport;version="[7.8.0,7.9.0)",
+ org.eclipse.jgit.util;version="[7.8.0,7.9.0)"
diff --git a/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF
index 9e80a74..54a8d56 100644
--- a/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit.ui - Sources
 Bundle-SymbolicName: org.eclipse.jgit.ui.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit.ui;version="7.7.2.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit.ui;version="7.8.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ui/pom.xml b/org.eclipse.jgit.ui/pom.xml
index 26717e8..40056db 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ui</artifactId>
diff --git a/org.eclipse.jgit/META-INF/MANIFEST.MF b/org.eclipse.jgit/META-INF/MANIFEST.MF
index ccb4a50..8e92528 100644
--- a/org.eclipse.jgit/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit
 Bundle-SymbolicName: org.eclipse.jgit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
@@ -11,8 +11,8 @@
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
 Service-Component: OSGI-INF/org.eclipse.jgit.internal.util.CleanupService.xml
 Eclipse-ExtensibleAPI: true
-Export-Package: org.eclipse.jgit.annotations;version="7.7.2",
- org.eclipse.jgit.api;version="7.7.2";
+Export-Package: org.eclipse.jgit.annotations;version="7.8.0",
+ org.eclipse.jgit.api;version="7.8.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.notes,
    org.eclipse.jgit.dircache,
@@ -27,21 +27,21 @@
    org.eclipse.jgit.revwalk.filter,
    org.eclipse.jgit.blame,
    org.eclipse.jgit.merge",
- org.eclipse.jgit.api.errors;version="7.7.2";
+ org.eclipse.jgit.api.errors;version="7.8.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.errors",
- org.eclipse.jgit.attributes;version="7.7.2";
+ org.eclipse.jgit.attributes;version="7.8.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.treewalk",
- org.eclipse.jgit.blame;version="7.7.2";
+ org.eclipse.jgit.blame;version="7.8.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.blame.cache,
    org.eclipse.jgit.diff,
    org.eclipse.jgit.treewalk.filter",
- org.eclipse.jgit.blame.cache;version="7.7.2";
+ org.eclipse.jgit.blame.cache;version="7.8.0";
   uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.diff;version="7.7.2";
+ org.eclipse.jgit.diff;version="7.8.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.patch,
@@ -49,55 +49,55 @@
    org.eclipse.jgit.treewalk.filter,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.util",
- org.eclipse.jgit.dircache;version="7.7.2";
+ org.eclipse.jgit.dircache;version="7.8.0";
   uses:="org.eclipse.jgit.events,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.attributes,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.util",
- org.eclipse.jgit.errors;version="7.7.2";
+ org.eclipse.jgit.errors;version="7.8.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.dircache,
    org.eclipse.jgit.lib",
- org.eclipse.jgit.events;version="7.7.2";
+ org.eclipse.jgit.events;version="7.8.0";
   uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.fnmatch;version="7.7.2",
- org.eclipse.jgit.gitrepo;version="7.7.2";
+ org.eclipse.jgit.fnmatch;version="7.8.0",
+ org.eclipse.jgit.gitrepo;version="7.8.0";
   uses:="org.xml.sax.helpers,
    org.eclipse.jgit.api,
    org.eclipse.jgit.api.errors,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.xml.sax",
- org.eclipse.jgit.gitrepo.internal;version="7.7.2";x-internal:=true,
- org.eclipse.jgit.hooks;version="7.7.2";
+ org.eclipse.jgit.gitrepo.internal;version="7.8.0";x-internal:=true,
+ org.eclipse.jgit.hooks;version="7.8.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.util",
- org.eclipse.jgit.ignore;version="7.7.2",
- org.eclipse.jgit.ignore.internal;version="7.7.2";
+ org.eclipse.jgit.ignore;version="7.8.0",
+ org.eclipse.jgit.ignore.internal;version="7.8.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal;version="7.7.2";
+ org.eclipse.jgit.internal;version="7.8.0";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.http.test",
- org.eclipse.jgit.internal.diff;version="7.7.2";
+ org.eclipse.jgit.internal.diff;version="7.8.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.diffmergetool;version="7.7.2";
+ org.eclipse.jgit.internal.diffmergetool;version="7.8.0";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.pgm.test,
    org.eclipse.jgit.pgm,
    org.eclipse.egit.ui",
- org.eclipse.jgit.internal.fsck;version="7.7.2";
+ org.eclipse.jgit.internal.fsck;version="7.8.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.revwalk;version="7.7.2";
+ org.eclipse.jgit.internal.revwalk;version="7.8.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.commitgraph;version="7.7.2";
+ org.eclipse.jgit.internal.storage.commitgraph;version="7.8.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.dfs;version="7.7.2";
+ org.eclipse.jgit.internal.storage.dfs;version="7.8.0";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.http.server,
    org.eclipse.jgit.http.test,
    org.eclipse.jgit.lfs.test",
- org.eclipse.jgit.internal.storage.file;version="7.7.2";
+ org.eclipse.jgit.internal.storage.file;version="7.8.0";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.junit,
    org.eclipse.jgit.junit.http,
@@ -109,39 +109,39 @@
    org.eclipse.jgit.ssh.apache,
    org.eclipse.jgit.ssh.apache.test,
    org.eclipse.jgit.ssh.jsch.test",
- org.eclipse.jgit.internal.storage.io;version="7.7.2";
+ org.eclipse.jgit.internal.storage.io;version="7.8.0";
   x-friends:="org.eclipse.jgit.junit,
    org.eclipse.jgit.test,
    org.eclipse.jgit.pgm",
- org.eclipse.jgit.internal.storage.memory;version="7.7.2";
+ org.eclipse.jgit.internal.storage.memory;version="7.8.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.midx;version="7.7.2";
+ org.eclipse.jgit.internal.storage.midx;version="7.8.0";
   x-friends:="org.eclipse.jgit.pgm,
    org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.pack;version="7.7.2";
+ org.eclipse.jgit.internal.storage.pack;version="7.8.0";
   x-friends:="org.eclipse.jgit.junit,
    org.eclipse.jgit.test,
    org.eclipse.jgit.pgm",
- org.eclipse.jgit.internal.storage.reftable;version="7.7.2";
+ org.eclipse.jgit.internal.storage.reftable;version="7.8.0";
   x-friends:="org.eclipse.jgit.http.test,
    org.eclipse.jgit.junit,
    org.eclipse.jgit.test,
    org.eclipse.jgit.pgm",
- org.eclipse.jgit.internal.submodule;version="7.7.2";x-internal:=true,
- org.eclipse.jgit.internal.transport.connectivity;version="7.7.2";
+ org.eclipse.jgit.internal.submodule;version="7.8.0";x-internal:=true,
+ org.eclipse.jgit.internal.transport.connectivity;version="7.8.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.http;version="7.7.2";
+ org.eclipse.jgit.internal.transport.http;version="7.8.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.parser;version="7.7.2";
+ org.eclipse.jgit.internal.transport.parser;version="7.8.0";
   x-friends:="org.eclipse.jgit.http.server,
    org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.ssh;version="7.7.2";
+ org.eclipse.jgit.internal.transport.ssh;version="7.8.0";
   x-friends:="org.eclipse.jgit.ssh.apache,
    org.eclipse.jgit.ssh.jsch,
    org.eclipse.jgit.test",
- org.eclipse.jgit.internal.util;version="7.7.2";
+ org.eclipse.jgit.internal.util;version="7.8.0";
   x-friends:="org.eclipse.jgit.junit",
- org.eclipse.jgit.lib;version="7.7.2";
+ org.eclipse.jgit.lib;version="7.8.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.util.sha1,
    org.eclipse.jgit.dircache,
@@ -156,12 +156,12 @@
    org.eclipse.jgit.util,
    org.eclipse.jgit.submodule,
    org.eclipse.jgit.util.time",
- org.eclipse.jgit.lib.internal;version="7.7.2";
+ org.eclipse.jgit.lib.internal;version="7.8.0";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.pgm,
    org.eclipse.egit.ui",
- org.eclipse.jgit.logging;version="7.7.2",
- org.eclipse.jgit.merge;version="7.7.2";
+ org.eclipse.jgit.logging;version="7.8.0",
+ org.eclipse.jgit.merge;version="7.8.0";
   uses:="org.eclipse.jgit.dircache,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
@@ -170,42 +170,42 @@
    org.eclipse.jgit.util,
    org.eclipse.jgit.api,
    org.eclipse.jgit.attributes",
- org.eclipse.jgit.nls;version="7.7.2",
- org.eclipse.jgit.notes;version="7.7.2";
+ org.eclipse.jgit.nls;version="7.8.0",
+ org.eclipse.jgit.notes;version="7.8.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.merge",
- org.eclipse.jgit.patch;version="7.7.2";
+ org.eclipse.jgit.patch;version="7.8.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.diff",
- org.eclipse.jgit.revplot;version="7.7.2";
+ org.eclipse.jgit.revplot;version="7.8.0";
   uses:="org.eclipse.jgit.revwalk,
    org.eclipse.jgit.lib",
- org.eclipse.jgit.revwalk;version="7.7.2";
+ org.eclipse.jgit.revwalk;version="7.8.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk.filter,
    org.eclipse.jgit.diff,
    org.eclipse.jgit.treewalk.filter,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.internal.storage.commitgraph",
- org.eclipse.jgit.revwalk.filter;version="7.7.2";
+ org.eclipse.jgit.revwalk.filter;version="7.8.0";
   uses:="org.eclipse.jgit.revwalk,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.util",
- org.eclipse.jgit.storage.file;version="7.7.2";
+ org.eclipse.jgit.storage.file;version="7.8.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.util",
- org.eclipse.jgit.storage.pack;version="7.7.2";
+ org.eclipse.jgit.storage.pack;version="7.8.0";
   uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.submodule;version="7.7.2";
+ org.eclipse.jgit.submodule;version="7.8.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.treewalk.filter,
    org.eclipse.jgit.diff,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.util",
- org.eclipse.jgit.transport;version="7.7.2";
+ org.eclipse.jgit.transport;version="7.8.0";
   uses:="javax.crypto,
    org.eclipse.jgit.hooks,
    org.eclipse.jgit.util.io,
@@ -218,21 +218,21 @@
    org.eclipse.jgit.transport.resolver,
    org.eclipse.jgit.storage.pack,
    org.eclipse.jgit.errors",
- org.eclipse.jgit.transport.http;version="7.7.2";
+ org.eclipse.jgit.transport.http;version="7.8.0";
   uses:="javax.net.ssl",
- org.eclipse.jgit.transport.resolver;version="7.7.2";
+ org.eclipse.jgit.transport.resolver;version="7.8.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.lib",
- org.eclipse.jgit.treewalk;version="7.7.2";
+ org.eclipse.jgit.treewalk;version="7.8.0";
   uses:="org.eclipse.jgit.dircache,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.attributes,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.treewalk.filter,
    org.eclipse.jgit.util",
- org.eclipse.jgit.treewalk.filter;version="7.7.2";
+ org.eclipse.jgit.treewalk.filter;version="7.8.0";
   uses:="org.eclipse.jgit.treewalk",
- org.eclipse.jgit.util;version="7.7.2";
+ org.eclipse.jgit.util;version="7.8.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.hooks,
    org.eclipse.jgit.revwalk,
@@ -245,12 +245,12 @@
    org.eclipse.jgit.treewalk,
    javax.net.ssl,
    org.eclipse.jgit.util.time",
- org.eclipse.jgit.util.io;version="7.7.2";
+ org.eclipse.jgit.util.io;version="7.8.0";
   uses:="org.eclipse.jgit.attributes,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.treewalk",
- org.eclipse.jgit.util.sha1;version="7.7.2",
- org.eclipse.jgit.util.time;version="7.7.2"
+ org.eclipse.jgit.util.sha1;version="7.8.0",
+ org.eclipse.jgit.util.time;version="7.8.0"
 Import-Package: com.googlecode.javaewah;version="[1.1.6,2.0.0)",
  javax.crypto,
  javax.management,
diff --git a/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF
index c7addaf..09b1ed3 100644
--- a/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: org.eclipse.jgit - Sources
 Bundle-SymbolicName: org.eclipse.jgit.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 7.7.2.qualifier
+Bundle-Version: 7.8.0.qualifier
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Eclipse-SourceBundle: org.eclipse.jgit;version="7.7.2.qualifier";roots="."
+Eclipse-SourceBundle: org.eclipse.jgit;version="7.8.0.qualifier";roots="."
diff --git a/org.eclipse.jgit/pom.xml b/org.eclipse.jgit/pom.xml
index 7b55f92..d893037 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.7.2-SNAPSHOT</version>
+    <version>7.8.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit</artifactId>
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/NameRevCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/NameRevCommand.java
index 1ff6e98..83c063b 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/NameRevCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/NameRevCommand.java
@@ -51,8 +51,8 @@ private static class NameRevCommit extends RevCommit {
 		private int distance;
 		private long cost;
 
-		private NameRevCommit(AnyObjectId id) {
-			super(id);
+		private NameRevCommit(AnyObjectId id, int graphPosition) {
+			super(id, graphPosition);
 		}
 
 		private StringBuilder format() {
@@ -96,8 +96,8 @@ protected NameRevCommand(Repository repo) {
 		revs = new ArrayList<>(2);
 		walk = new RevWalk(repo) {
 			@Override
-			public NameRevCommit createCommit(AnyObjectId id) {
-				return new NameRevCommit(id);
+			protected RevCommit createCommit(AnyObjectId id, int graphPos) {
+				return new NameRevCommit(id, graphPos);
 			}
 		};
 	}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/blame/ReverseWalk.java b/org.eclipse.jgit/src/org/eclipse/jgit/blame/ReverseWalk.java
index fafc4fb..8d534e9 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/blame/ReverseWalk.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/blame/ReverseWalk.java
@@ -36,8 +36,8 @@ public ReverseCommit next() throws MissingObjectException,
 	}
 
 	@Override
-	protected RevCommit createCommit(AnyObjectId id) {
-		return new ReverseCommit(id);
+	protected RevCommit createCommit(AnyObjectId id, int graphPos) {
+		return new ReverseCommit(id, graphPos);
 	}
 
 	static final class ReverseCommit extends RevCommit {
@@ -45,8 +45,8 @@ static final class ReverseCommit extends RevCommit {
 
 		private ReverseCommit[] children = NO_CHILDREN;
 
-		ReverseCommit(AnyObjectId id) {
-			super(id);
+		ReverseCommit(AnyObjectId id, int graphPosition) {
+			super(id, graphPosition);
 		}
 
 		void addChild(ReverseCommit c) {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/Checkout.java b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/Checkout.java
index de02aec..84301c8 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/Checkout.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/Checkout.java
@@ -186,12 +186,7 @@ public void checkout(DirCacheEntry entry, CheckoutMetadata metadata,
 			return;
 		}
 
-		String name = f.getName();
-		if (name.length() > 200) {
-			name = name.substring(0, 200);
-		}
-		File tmpFile = File.createTempFile("._" + name, null, parentDir); //$NON-NLS-1$
-
+		File tmpFile = createTempFile(f, parentDir);
 		DirCacheCheckout.getContent(cache.getRepository(), path, metadata, ol,
 				options,
 				new FileOutputStream(tmpFile));
@@ -243,4 +238,35 @@ public void checkout(DirCacheEntry entry, CheckoutMetadata metadata,
 		}
 		entry.setLastModified(fs.lastModifiedInstant(f));
 	}
+
+	/**
+	 * Creates a temp file starting with the prefix "._" followed by the name of
+	 * the given file, truncated to a maximum of 50 characters if necessary. The
+	 * temp file is created in the given parent directory. If the last character
+	 * of the truncated name is a high surrogate, it is removed to avoid
+	 * creating an invalid file name. Some filesystems have a limit of 255 bytes
+	 * for file names, hence the truncation to 50 characters to allow for the
+	 * "._" prefix and potential multi-byte characters.
+	 *
+	 * @param f
+	 *            file to create a temp file for
+	 * @param parentDir
+	 *            parent directory in which to create the temp file
+	 * @return the temp file created
+	 * @throws IOException
+	 *             if an I/O error occurs while creating the temp file
+	 */
+	private File createTempFile(File f, File parentDir) throws IOException {
+		final int MAXLENGTH = 50;
+
+		String name = f.getName();
+		if (name.length() > MAXLENGTH) {
+			if (Character.isHighSurrogate(name.charAt(MAXLENGTH - 1))) {
+				name = name.substring(0, MAXLENGTH - 1);
+			} else {
+				name = name.substring(0, MAXLENGTH);
+			}
+		}
+		return File.createTempFile("._" + name, null, parentDir); //$NON-NLS-1$
+	}
 }
\ No newline at end of file
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheEntry.java b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheEntry.java
index 5a22938..aebea7a 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheEntry.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheEntry.java
@@ -411,9 +411,14 @@ public final boolean mightBeRacilyClean(Instant smudge) {
 		// it is clean or not based on the modification time alone.
 		//
 		final int base = infoOffset + P_MTIME;
-		final int mtime = NB.decodeInt32(info, base);
-		if ((int) smudge.getEpochSecond() == mtime) {
-			return smudge.getNano() <= NB.decodeInt32(info, base + 4);
+		final int entryMtimeSec = NB.decodeInt32(info, base);
+		final int smudgeSec = (int) smudge.getEpochSecond();
+		if (smudgeSec != 0) {
+			if (smudgeSec < entryMtimeSec) {
+				return true;
+			} else if (smudgeSec == entryMtimeSec) {
+				return smudge.getNano() <= NB.decodeInt32(info, base + 4);
+			}
 		}
 		return false;
 	}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/revwalk/BitmappedObjectReachabilityChecker.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/revwalk/BitmappedObjectReachabilityChecker.java
index d805649..31d17ad 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/revwalk/BitmappedObjectReachabilityChecker.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/revwalk/BitmappedObjectReachabilityChecker.java
@@ -69,7 +69,7 @@ public Optional<RevObject> areAllReachable(Collection<RevObject> targets,
 						true);
 				seen = seen == null ? visited : seen.or(visited);
 
-				remainingTargets.removeIf(seen::contains);
+				remainingTargets.removeIf(visited::contains);
 				if (remainingTargets.isEmpty()) {
 					return Optional.empty();
 				}
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 3f457f2..8c96e85 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
@@ -612,19 +612,36 @@ PackList scanPacks(PackList original) throws IOException {
 	}
 
 	private PackList scanPacksImpl(PackList old) throws IOException {
-		DfsBlockCache cache = DfsBlockCache.getInstance();
-		Map<DfsPackDescription, DfsPackFile> packs = packMap(old);
-		Map<DfsPackDescription, DfsReftable> reftables = reftableMap(old);
-
 		List<DfsPackDescription> scanned = useMultipackIndex()
 				? MidxPackFilter.useMidx(listPacks())
 				: MidxPackFilter.skipMidxs(listPacks());
 		scanned.sort(packComparator);
+		return descTreeToPackList(scanned, old);
+	}
 
-		List<DfsPackFile> newPacks = new ArrayList<>(scanned.size());
+	/**
+	 * Translate the valid list of descriptions (with midx as trees of packs)
+	 * into DfsPackFile and DfsReftable instances
+	 *
+	 * @param descTree
+	 *            a valid list of descriptions, may contain midx. Covered packs
+	 *            and nested midxs are NOT in the top level list.
+	 * @return a packlist with the new/reused DfsPackFile instances
+	 */
+	public PackList descTreeToPackList(List<DfsPackDescription> descTree) {
+		return descTreeToPackList(descTree, NO_PACKS);
+	}
+
+	private PackList descTreeToPackList(List<DfsPackDescription> descTree,
+			PackList old) {
+		Map<DfsPackDescription, DfsPackFile> packs = packMap(old);
+		Map<DfsPackDescription, DfsReftable> reftables = reftableMap(old);
+
+		DfsBlockCache cache = DfsBlockCache.getInstance();
+		List<DfsPackFile> newPacks = new ArrayList<>(descTree.size());
 		List<DfsPackDescription> packsWithReftables = new ArrayList<>();
 		boolean foundNew = false;
-		for (DfsPackDescription dsc : scanned) {
+		for (DfsPackDescription dsc : descTree) {
 			DfsPackFile oldPack = packs.remove(dsc);
 			if (oldPack != null) {
 				newPacks.add(oldPack);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAttributes.java b/org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAttributes.java
new file mode 100644
index 0000000..3d0c0a5
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAttributes.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2026 Vector Informatik GmbH
+ *
+ * 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.merge;
+
+import org.eclipse.jgit.attributes.Attributes;
+import org.eclipse.jgit.attributes.AttributesNodeProvider;
+import org.eclipse.jgit.treewalk.TreeWalk;
+
+/**
+ * Provides {@link Attributes} for the trees during content-merge of a three way
+ * merge
+ *
+ * @since 7.8
+ */
+public interface MergeAttributes {
+
+	/**
+	 * Attributes used when the {@link TreeWalk} has no
+	 * {@link AttributesNodeProvider}
+	 */
+	static MergeAttributes NO_ATTRIBUTES = new MergeAttributes() {
+
+		private static final Attributes EMPTY_ATTRIBUTES = new Attributes();
+
+		@Override
+		public Attributes base() {
+			return EMPTY_ATTRIBUTES;
+		}
+
+		@Override
+		public Attributes ours() {
+			return EMPTY_ATTRIBUTES;
+		}
+
+		@Override
+		public Attributes theirs() {
+			return EMPTY_ATTRIBUTES;
+		}
+	};
+
+	/**
+	 * Retrieve the {@link Attributes} for the common base between ours and
+	 * theirs
+	 *
+	 * @return {@link Attributes} for the common base between ours and theirs
+	 */
+	Attributes base();
+
+	/**
+	 * Retrieve the {@link Attributes} for the 'ours' side of the merge
+	 *
+	 * @return {@link Attributes} for the 'ours' side of the merge
+	 */
+	Attributes ours();
+
+	/**
+	 * Retrieve the {@link Attributes} for the 'theirs' side of the merge
+	 *
+	 * @return {@link Attributes} for the 'theirs' side of the merge
+	 */
+	Attributes theirs();
+
+}
\ No newline at end of file
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
index cb82577..8aeb7bf 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
@@ -862,8 +862,6 @@ private static MergeAlgorithm getMergeAlgorithm(Config config) {
 		return new String[]{"BASE", "OURS", "THEIRS"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 	}
 
-	private static final Attributes NO_ATTRIBUTES = new Attributes();
-
 	/**
 	 * Constructor for ResolveMerger.
 	 *
@@ -1021,20 +1019,23 @@ private DirCacheEntry keep(DirCacheEntry e) {
 	 * @param entry
 	 *            to add
 	 * @param attributes
-	 *            the {@link Attributes} of the trees
+	 *            the {@link Attributes} of the trees. Must not be retained
+	 *            outside of the scope of the method invocation
 	 * @throws IOException
 	 *             if the {@link CheckoutMetadata} cannot be determined
-	 * @since 6.1
+	 * @since 7.8
 	 */
 	protected void addToCheckout(String path, DirCacheEntry entry,
-			Attributes[] attributes)
-			throws IOException {
-		EolStreamType cleanupStreamType = workTreeUpdater.detectCheckoutStreamType(attributes[T_OURS]);
-		String cleanupSmudgeCommand = tw.getSmudgeCommand(attributes[T_OURS]);
-		EolStreamType checkoutStreamType = workTreeUpdater.detectCheckoutStreamType(attributes[T_THEIRS]);
-		String checkoutSmudgeCommand = tw.getSmudgeCommand(attributes[T_THEIRS]);
-		workTreeUpdater.addToCheckout(path, entry, cleanupStreamType, cleanupSmudgeCommand,
-				checkoutStreamType, checkoutSmudgeCommand);
+			MergeAttributes attributes) throws IOException {
+		EolStreamType cleanupStreamType = workTreeUpdater
+				.detectCheckoutStreamType(attributes.ours());
+		String cleanupSmudgeCommand = tw.getSmudgeCommand(attributes.ours());
+		EolStreamType checkoutStreamType = workTreeUpdater
+				.detectCheckoutStreamType(attributes.theirs());
+		String checkoutSmudgeCommand = tw.getSmudgeCommand(attributes.theirs());
+		workTreeUpdater.addToCheckout(path, entry, cleanupStreamType,
+				cleanupSmudgeCommand, checkoutStreamType,
+				checkoutSmudgeCommand);
 	}
 
 	/**
@@ -1099,18 +1100,19 @@ protected void addDeletion(String path, boolean isFile,
 	 *            see
 	 *            {@link org.eclipse.jgit.merge.ResolveMerger#mergeTrees(AbstractTreeIterator, RevTree, RevTree, boolean)}
 	 * @param attributes
-	 *            the {@link Attributes} for the three trees
+	 *            the {@link Attributes} for the three trees. Must not be
+	 *            retained outside of the scope of the method invocation
 	 * @return <code>false</code> if the merge will fail because the index entry
 	 *         didn't match ours or the working-dir file was dirty and a
 	 *         conflict occurred
 	 * @throws java.io.IOException
 	 *             if an IO error occurred
-	 * @since 6.1
+	 * @since 7.8
 	 */
 	protected boolean processEntry(CanonicalTreeParser base,
 			CanonicalTreeParser ours, CanonicalTreeParser theirs,
 			DirCacheBuildIterator index, WorkingTreeIterator work,
-			boolean ignoreConflicts, Attributes[] attributes)
+			boolean ignoreConflicts, MergeAttributes attributes)
 			throws IOException {
 		enterSubtree = true;
 		final int modeO = tw.getRawMode(T_OURS);
@@ -1228,7 +1230,7 @@ protected boolean processEntry(CanonicalTreeParser base,
 				// Base, ours, and theirs all contain a folder: don't delete
 				return true;
 			}
-			addDeletion(tw.getPathString(), nonTree(modeO), attributes[T_OURS]);
+			addDeletion(tw.getPathString(), nonTree(modeO), attributes.ours());
 			return true;
 		}
 
@@ -1275,7 +1277,7 @@ protected boolean processEntry(CanonicalTreeParser base,
 		if (nonTree(modeO) && nonTree(modeT)) {
 			// Check worktree before modifying files
 			boolean worktreeDirty = isWorktreeDirty(work, ourDce);
-			if (!attributes[T_OURS].canBeContentMerged() && worktreeDirty) {
+			if (!attributes.ours().canBeContentMerged() && worktreeDirty) {
 				return false;
 			}
 
@@ -1292,7 +1294,7 @@ protected boolean processEntry(CanonicalTreeParser base,
 				mergeResults.put(tw.getPathString(), result);
 				unmergedPaths.add(tw.getPathString());
 				return true;
-			} else if (!attributes[T_OURS].canBeContentMerged()) {
+			} else if (!attributes.ours().canBeContentMerged()) {
 				// File marked as binary
 				switch (getContentMergeStrategy()) {
 					case OURS:
@@ -1346,7 +1348,7 @@ protected boolean processEntry(CanonicalTreeParser base,
 					} else if (ignoreConflicts) {
 						result.setContainsConflicts(false);
 					}
-					updateIndex(base, ours, theirs, result, attributes[T_OURS]);
+					updateIndex(base, ours, theirs, result, attributes.ours());
 					workTreeUpdater.markAsModified(currentPath);
 					// Entry is null - only add the metadata
 					addToCheckout(currentPath, null, attributes);
@@ -1461,7 +1463,7 @@ protected boolean processEntry(CanonicalTreeParser base,
 							// conflict markers). But also stage 0 of the index
 							// is filled with that content.
 							updateIndex(base, ours, theirs, result,
-									attributes[T_OURS]);
+									attributes.ours());
 						}
 					} else {
 						DirCacheEntry e = addConflict(base, ours, theirs);
@@ -1513,7 +1515,8 @@ private static MergeResult<SubmoduleConflict> createGitLinksMergeResult(
 	 * @param theirs
 	 *            used to parse theirs tree
 	 * @param attributes
-	 *            attributes for the different stages
+	 *            attributes for the different stages. Must not be retained
+	 *            outside of the scope of the method invocation
 	 * @param strategy
 	 *            merge strategy
 	 *
@@ -1525,19 +1528,18 @@ private static MergeResult<SubmoduleConflict> createGitLinksMergeResult(
 	 */
 	private MergeResult<RawText> contentMerge(CanonicalTreeParser base,
 			CanonicalTreeParser ours, CanonicalTreeParser theirs,
-			Attributes[] attributes, ContentMergeStrategy strategy)
+			MergeAttributes attributes, ContentMergeStrategy strategy)
 			throws BinaryBlobException, IOException {
 		// TW: The attributes here are used to determine the LFS smudge filter.
 		// Is doing a content merge on LFS items really a good idea??
 		RawText baseText = base == null ? RawText.EMPTY_TEXT
-				: getRawText(base.getEntryObjectId(), attributes[T_BASE]);
+				: getRawText(base.getEntryObjectId(), attributes.base());
 		RawText ourText = ours == null ? RawText.EMPTY_TEXT
-				: getRawText(ours.getEntryObjectId(), attributes[T_OURS]);
+				: getRawText(ours.getEntryObjectId(), attributes.ours());
 		RawText theirsText = theirs == null ? RawText.EMPTY_TEXT
-				: getRawText(theirs.getEntryObjectId(), attributes[T_THEIRS]);
+				: getRawText(theirs.getEntryObjectId(), attributes.theirs());
 		mergeAlgorithm.setContentMergeStrategy(
-				getAttributesContentMergeStrategy(attributes[T_OURS],
-						strategy));
+				getAttributesContentMergeStrategy(attributes.ours(), strategy));
 		return mergeAlgorithm.merge(RawTextComparator.DEFAULT, baseText,
 				ourText, theirsText);
 	}
@@ -2008,14 +2010,11 @@ protected boolean mergeTreeWalk(TreeWalk treeWalk, boolean ignoreConflicts)
 		boolean hasWorkingTreeIterator = tw.getTreeCount() > T_FILE;
 		boolean hasAttributeNodeProvider = treeWalk
 				.getAttributesNodeProvider() != null;
+		MergeAttributes attributes = hasAttributeNodeProvider
+				? new CurrentTreeWalkEntryMergeAttributes(treeWalk)
+				: MergeAttributes.NO_ATTRIBUTES;
+
 		while (treeWalk.next()) {
-			Attributes[] attributes = {NO_ATTRIBUTES, NO_ATTRIBUTES,
-					NO_ATTRIBUTES};
-			if (hasAttributeNodeProvider) {
-				attributes[T_BASE] = treeWalk.getAttributes(T_BASE);
-				attributes[T_OURS] = treeWalk.getAttributes(T_OURS);
-				attributes[T_THEIRS] = treeWalk.getAttributes(T_THEIRS);
-			}
 			if (!processEntry(
 					treeWalk.getTree(T_BASE, CanonicalTreeParser.class),
 					treeWalk.getTree(T_OURS, CanonicalTreeParser.class),
@@ -2033,4 +2032,33 @@ protected boolean mergeTreeWalk(TreeWalk treeWalk, boolean ignoreConflicts)
 		}
 		return true;
 	}
+
+	// Uses the caching mechanism in TreeWalk.getAttributes() to retrieve the
+	// Attributes of the current path only when requested. When the TreeWalk
+	// advances to the next entry, the mapping of tree index -> cached
+	// attributes is also cleared
+	private static final class CurrentTreeWalkEntryMergeAttributes implements MergeAttributes {
+
+		private final TreeWalk walk;
+
+		public CurrentTreeWalkEntryMergeAttributes(TreeWalk treeWalk) {
+			walk = treeWalk;
+		}
+
+		@Override
+		public Attributes base() {
+			return walk.getAttributes(T_BASE);
+		}
+
+		@Override
+		public Attributes ours() {
+			return walk.getAttributes(T_OURS);
+		}
+
+		@Override
+		public Attributes theirs() {
+			return walk.getAttributes(T_THEIRS);
+		}
+
+	}
 }
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotCommit.java b/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotCommit.java
index fa109e8..d301b47 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotCommit.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotCommit.java
@@ -47,7 +47,20 @@ public class PlotCommit<L extends PlotLane> extends RevCommit {
 	 *            the identity of this commit.
 	 */
 	protected PlotCommit(AnyObjectId id) {
-		super(id);
+		this(id, -1);
+	}
+
+	/**
+	 * Create a new commit.
+	 *
+	 * @param id
+	 *            the identity of this commit.
+	 * @param graphPosition
+	 *            the position of this commit in the commit graph
+	 * @since 7.8
+	 */
+	protected PlotCommit(AnyObjectId id, int graphPosition) {
+		super(id, graphPosition);
 		forkingOffLanes = NO_LANES;
 		passingLanes = NO_LANES;
 		mergingLanes = NO_LANES;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotWalk.java b/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotWalk.java
index c8c454a..88c2d23 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotWalk.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotWalk.java
@@ -105,8 +105,8 @@ public void sort(RevSort s, boolean use) {
 	}
 
 	@Override
-	protected RevCommit createCommit(AnyObjectId id) {
-		return new PlotCommit(id);
+	protected RevCommit createCommit(AnyObjectId id, int graphPos) {
+		return new PlotCommit(id, graphPos);
 	}
 
 	@Override
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/AbstractCommitRewriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/AbstractCommitRewriter.java
new file mode 100644
index 0000000..b33c846
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/AbstractCommitRewriter.java
@@ -0,0 +1,149 @@
+/*
+ * 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.revwalk;
+
+import java.io.IOException;
+
+import org.eclipse.jgit.errors.IncorrectObjectTypeException;
+import org.eclipse.jgit.errors.MissingObjectException;
+
+abstract class AbstractCommitRewriter {
+
+	/** For {@link #cleanup(RevCommit[])} to remove duplicate parents. */
+	private static final int DUPLICATE = RevWalk.TEMP_MARK;
+
+	private final boolean firstParent;
+
+	AbstractCommitRewriter(boolean firstParent) {
+		this.firstParent = firstParent;
+	}
+
+	/**
+	 * Makes sure that the {@link TreeRevFilter} has been applied to all parents
+	 * of this commit
+	 *
+	 * @param c
+	 *            given commit
+	 * @throws MissingObjectException
+	 *             if an object is missing
+	 * @throws IncorrectObjectTypeException
+	 *             if an object has an unexpected type
+	 * @throws IOException
+	 *             if an IO error occurred
+	 */
+	abstract void applyFilterToParents(RevCommit c)
+			throws MissingObjectException, IncorrectObjectTypeException,
+			IOException;
+
+	final RevCommit rewriteParents(RevCommit c) throws MissingObjectException,
+			IncorrectObjectTypeException, IOException {
+		applyFilterToParents(c);
+
+		boolean rewrote = false;
+		RevCommit[] pList = c.getParents();
+		int nParents = pList.length;
+		for (int i = 0; i < nParents; i++) {
+			RevCommit oldp = pList[i];
+			RevCommit newp = rewrite(oldp);
+			if (firstParent) {
+				if (newp == null) {
+					c.parents = RevCommit.NO_PARENTS;
+				} else {
+					c.parents = new RevCommit[] { newp };
+				}
+				return c;
+			}
+			if (oldp != newp) {
+				pList[i] = newp;
+				rewrote = true;
+			}
+		}
+		if (rewrote) {
+			c.parents = cleanup(pList);
+		}
+		return c;
+	}
+
+	private RevCommit rewrite(RevCommit p) throws MissingObjectException,
+			IncorrectObjectTypeException, IOException {
+		while (true) {
+
+			if (p.getParentCount() > 1) {
+				// This parent is a merge, so keep it.
+				//
+				return p;
+			}
+
+			if ((p.flags & RevWalk.UNINTERESTING) != 0) {
+				// Retain uninteresting parents. They show where the
+				// DAG was cut off because it wasn't interesting.
+				//
+				return p;
+			}
+
+			if ((p.flags & RevWalk.REWRITE) == 0) {
+				// This parent was not eligible for rewriting. We
+				// need to keep it in the DAG.
+				//
+				return p;
+			}
+
+			if (p.getParentCount() == 0) {
+				// We can't go back any further, other than to
+				// just delete the parent entirely.
+				//
+				return null;
+			}
+
+			applyFilterToParents(p.getParent(0));
+			p = p.getParent(0);
+
+		}
+	}
+
+	private RevCommit[] cleanup(RevCommit[] oldList) {
+		// Remove any duplicate parents caused due to rewrites (e.g. a merge
+		// with two sides that both simplified back into the merge base).
+		// We also may have deleted a parent by marking it null.
+		//
+		int newCnt = 0;
+		for (int o = 0; o < oldList.length; o++) {
+			RevCommit p = oldList[o];
+			if (p == null) {
+				continue;
+			}
+			if ((p.flags & DUPLICATE) != 0) {
+				oldList[o] = null;
+				continue;
+			}
+			p.flags |= DUPLICATE;
+			newCnt++;
+		}
+
+		if (newCnt == oldList.length) {
+			for (RevCommit p : oldList) {
+				p.flags &= ~DUPLICATE;
+			}
+			return oldList;
+		}
+
+		RevCommit[] newList = new RevCommit[newCnt];
+		newCnt = 0;
+		for (RevCommit p : oldList) {
+			if (p != null) {
+				newList[newCnt++] = p;
+				p.flags &= ~DUPLICATE;
+			}
+		}
+
+		return newList;
+	}
+
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/DepthWalk.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/DepthWalk.java
index 7795ce2..cd0bd23 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/DepthWalk.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/DepthWalk.java
@@ -125,9 +125,23 @@ public boolean isBoundary() {
 		 *            object name for the commit.
 		 */
 		protected Commit(AnyObjectId id) {
-			super(id);
+			this(id, -1);
+		}
+
+		/**
+		 * Initialize a new commit.
+		 *
+		 * @param id
+		 *            object name for the commit.
+		 * @param graphPosition
+		 *            the position of this commit in the commit graph
+		 * @since 7.8
+		 */
+		protected Commit(AnyObjectId id, int graphPosition) {
+			super(id, graphPosition);
 			depth = -1;
 		}
+
 	}
 
 	/** Subclass of RevWalk that performs depth filtering. */
@@ -196,8 +210,8 @@ public void markRoot(RevCommit c) throws MissingObjectException,
 		}
 
 		@Override
-		protected RevCommit createCommit(AnyObjectId id) {
-			return new Commit(id);
+		protected RevCommit createCommit(AnyObjectId id, int graphPos) {
+			return new Commit(id, graphPos);
 		}
 
 		@Override
@@ -367,8 +381,8 @@ public void markUnshallow(RevObject c) throws MissingObjectException,
 		}
 
 		@Override
-		protected RevCommit createCommit(AnyObjectId id) {
-			return new Commit(id);
+		protected RevCommit createCommit(AnyObjectId id, int graphPos) {
+			return new Commit(id, graphPos);
 		}
 
 		@Override
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 926e45d..add181d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/PendingGenerator.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/PendingGenerator.java
@@ -72,16 +72,16 @@ class PendingGenerator extends Generator {
 	 */
 	private int overScan = OVER_SCAN;
 
-	boolean canDispose;
+	private final boolean canDispose;
 
-	PendingGenerator(final RevWalk w, final DateRevQueue p,
-			final RevFilter f, final int out) {
+	PendingGenerator(RevWalk w, DateRevQueue p, RevFilter f, int out,
+			boolean canDispose) {
 		super(w.isFirstParent());
-		walker = w;
-		pending = p;
-		filter = f;
-		output = out;
-		canDispose = true;
+		this.walker = w;
+		this.pending = p;
+		this.filter = f;
+		this.output = out;
+		this.canDispose = canDispose;
 	}
 
 	@Override
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevCommit.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevCommit.java
index 871545f..1789654 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevCommit.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevCommit.java
@@ -23,9 +23,11 @@
 import org.eclipse.jgit.errors.IncorrectObjectTypeException;
 import org.eclipse.jgit.errors.MissingObjectException;
 import org.eclipse.jgit.internal.storage.commitgraph.ChangedPathFilter;
+import org.eclipse.jgit.internal.storage.commitgraph.CommitGraph;
 import org.eclipse.jgit.lib.AnyObjectId;
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.MutableObjectId;
+import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.ObjectInserter;
 import org.eclipse.jgit.lib.ObjectReader;
 import org.eclipse.jgit.lib.PersonIdent;
@@ -133,6 +135,10 @@ public static RevCommit parse(RevWalk rw, byte[] raw) throws IOException {
 	 */
 	protected byte[] buffer;
 
+	private final int graphPosition;
+
+	private int generation = Constants.COMMIT_GENERATION_UNKNOWN;
+
 	/**
 	 * Create a new commit reference.
 	 *
@@ -140,17 +146,31 @@ public static RevCommit parse(RevWalk rw, byte[] raw) throws IOException {
 	 *            object name for the commit.
 	 */
 	protected RevCommit(AnyObjectId id) {
+		this(id, -1);
+	}
+
+	/**
+	 * Create a new commit reference.
+	 *
+	 * @param id
+	 *            object name for the commit.
+	 * @param graphPosition
+	 *            the position of this commit in the commit graph
+	 * @since 7.8
+	 */
+	protected RevCommit(AnyObjectId id, int graphPosition) {
 		super(id);
+		this.graphPosition = graphPosition;
 	}
 
 	@Override
-	void parseHeaders(RevWalk walk) throws MissingObjectException,
+	final void parseHeaders(RevWalk walk) throws MissingObjectException,
 			IncorrectObjectTypeException, IOException {
 		parseCanonical(walk, walk.getCachedBytes(this));
 	}
 
 	@Override
-	void parseBody(RevWalk walk) throws MissingObjectException,
+	final void parseBody(RevWalk walk) throws MissingObjectException,
 			IncorrectObjectTypeException, IOException {
 		if (buffer == null) {
 			buffer = walk.getCachedBytes(this);
@@ -159,11 +179,25 @@ void parseBody(RevWalk walk) throws MissingObjectException,
 		}
 	}
 
-	void parseCanonical(RevWalk walk, byte[] raw) throws IOException {
+	final void parseCanonical(RevWalk walk, byte[] raw) throws IOException {
 		if (!walk.shallowCommitsInitialized) {
 			walk.initializeShallowCommits(this);
 		}
 
+		if (graphPosition >= 0) {
+			if (walk.isRetainBody()) {
+				buffer = raw;
+			}
+
+			parseInGraph(walk);
+		} else {
+			parseFromObject(walk, raw);
+		}
+
+		flags |= PARSED;
+	}
+
+	final void parseFromObject(RevWalk walk, byte[] raw) {
 		final MutableObjectId idBuffer = walk.idBuffer;
 		idBuffer.fromString(raw, 5);
 		tree = walk.lookupTree(idBuffer);
@@ -217,7 +251,36 @@ void parseCanonical(RevWalk walk, byte[] raw) throws IOException {
 		if (walk.isRetainBody()) {
 			buffer = raw;
 		}
-		flags |= PARSED;
+	}
+
+	final void parseInGraph(RevWalk walk) {
+		CommitGraph graph = walk.commitGraph();
+		CommitGraph.CommitData data = graph.getCommitData(graphPosition);
+		if (data == null) {
+			// parseInGraph was called because we know this commit's
+			// position in the commit graph. If now the commit-graph doesn't
+			// know about it, something went wrong.
+			throw new IllegalStateException();
+		}
+
+		this.tree = walk.lookupTree(data.getTree());
+		this.commitTime = (int) data.getCommitTime();
+		this.generation = data.getGeneration();
+
+		if (getParents() == null) {
+			int[] pGraphList = data.getParents();
+			if (pGraphList.length == 0) {
+				this.parents = RevCommit.NO_PARENTS;
+			} else {
+				RevCommit[] pList = new RevCommit[pGraphList.length];
+				for (int i = 0; i < pList.length; i++) {
+					int graphPos = pGraphList[i];
+					ObjectId objId = graph.getObjectId(graphPos);
+					pList[i] = walk.lookupCommit(objId, graphPos);
+				}
+				this.parents = pList;
+			}
+		}
 	}
 
 	@Override
@@ -655,8 +718,31 @@ public final List<String> getFooterLines(FooterKey key) {
 	 * @return the generation number
 	 * @since 6.5
 	 */
-	int getGeneration() {
-		return Constants.COMMIT_GENERATION_UNKNOWN;
+	final int getGeneration() {
+		return generation;
+	}
+
+	/**
+	 * Get the distance of the commit from the root, as defined in
+	 * {@link CommitGraph}
+	 * <p>
+	 * This method differs from {@link #getGeneration()} in that it will never
+	 * return {@link Constants#COMMIT_GENERATION_NOT_COMPUTED}. If the
+	 * Generation number was not calculated for this commit, then
+	 * {@link Constants#COMMIT_GENERATION_UNKNOWN} will be returned instead.
+	 *
+	 * @return the generation number, never
+	 *         {@link Constants#COMMIT_GENERATION_NOT_COMPUTED}
+	 * @since 7.8
+	 */
+	final int getEffectiveGeneration() {
+		int gen = getGeneration();
+
+		if (gen == Constants.COMMIT_GENERATION_NOT_COMPUTED) {
+			return Constants.COMMIT_GENERATION_UNKNOWN;
+		}
+
+		return gen;
 	}
 
 	/**
@@ -666,11 +752,16 @@ int getGeneration() {
 	 * commit graph file, or the commit graph file was generated without changed
 	 * path filters.
 	 *
-	 * @param rw A revwalk to load the commit graph (if available)
+	 * @param rw
+	 *            A revwalk to load the commit graph (if available)
 	 * @return the changed path filter
 	 * @since 6.7
 	 */
 	public ChangedPathFilter getChangedPathFilter(RevWalk rw) {
+		if (graphPosition >= 0) {
+			return rw.commitGraph().getChangedPathFilter(graphPosition);
+		}
+
 		return null;
 	}
 
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevCommitCG.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevCommitCG.java
deleted file mode 100644
index c7a0399..0000000
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevCommitCG.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2023, Tencent.
- *
- * 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.revwalk;
-
-import java.io.IOException;
-
-import org.eclipse.jgit.errors.IncorrectObjectTypeException;
-import org.eclipse.jgit.errors.MissingObjectException;
-import org.eclipse.jgit.internal.storage.commitgraph.ChangedPathFilter;
-import org.eclipse.jgit.internal.storage.commitgraph.CommitGraph;
-import org.eclipse.jgit.lib.AnyObjectId;
-import org.eclipse.jgit.lib.Constants;
-import org.eclipse.jgit.lib.ObjectId;
-
-/**
- * RevCommit parsed from
- * {@link org.eclipse.jgit.internal.storage.commitgraph.CommitGraph}.
- *
- * @since 6.5
- */
-class RevCommitCG extends RevCommit {
-
-	private final int graphPosition;
-
-	private int generation = Constants.COMMIT_GENERATION_UNKNOWN;
-
-	/**
-	 * Create a new commit reference.
-	 *
-	 * @param id
-	 *            object name for the commit.
-	 * @param graphPosition
-	 *            the position in the commit-graph of the object.
-	 */
-	protected RevCommitCG(AnyObjectId id, int graphPosition) {
-		super(id);
-		this.graphPosition = graphPosition;
-	}
-
-	@Override
-	void parseCanonical(RevWalk walk, byte[] raw) throws IOException {
-		if (walk.isRetainBody()) {
-			buffer = raw;
-		}
-		parseInGraph(walk);
-	}
-
-	@Override
-	void parseHeaders(RevWalk walk) throws MissingObjectException,
-			IncorrectObjectTypeException, IOException {
-		if (walk.isRetainBody()) {
-			super.parseBody(walk); // This parses header and body
-			return;
-		}
-		parseInGraph(walk);
-	}
-
-	private void parseInGraph(RevWalk walk) throws IOException {
-		CommitGraph graph = walk.commitGraph();
-		CommitGraph.CommitData data = graph.getCommitData(graphPosition);
-		if (data == null) {
-			// RevCommitCG was created because we got its graphPosition from
-			// commit-graph. If now the commit-graph doesn't know about it,
-			// something went wrong.
-			throw new IllegalStateException();
-		}
-		if (!walk.shallowCommitsInitialized) {
-			walk.initializeShallowCommits(this);
-		}
-
-		this.tree = walk.lookupTree(data.getTree());
-		this.commitTime = (int) data.getCommitTime();
-		this.generation = data.getGeneration();
-
-		if (getParents() == null) {
-			int[] pGraphList = data.getParents();
-			if (pGraphList.length == 0) {
-				this.parents = RevCommit.NO_PARENTS;
-			} else {
-				RevCommit[] pList = new RevCommit[pGraphList.length];
-				for (int i = 0; i < pList.length; i++) {
-					int graphPos = pGraphList[i];
-					ObjectId objId = graph.getObjectId(graphPos);
-					pList[i] = walk.lookupCommit(objId, graphPos);
-				}
-				this.parents = pList;
-			}
-		}
-		flags |= PARSED;
-	}
-
-	@Override
-	int getGeneration() {
-		return generation;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public ChangedPathFilter getChangedPathFilter(RevWalk rw) {
-		return rw.commitGraph().getChangedPathFilter(graphPosition);
-	}
-}
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 8e604ba..4b28045 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java
@@ -971,10 +971,10 @@ public RevCommit lookupCommit(AnyObjectId id) {
 	}
 
 	/**
-	 * This method is intended to be invoked only by {@link RevCommitCG}, in
-	 * order to give commit the correct graphPosition before accessing the
-	 * commit-graph. In this way, the headers of the commit can be obtained in
-	 * constant time.
+	 * This method is intended to be invoked only by
+	 * {@link RevCommit#parseInGraph(RevWalk)}, in order to give commit the
+	 * correct graphPosition before accessing the commit-graph. In this way, the
+	 * headers of the commit can be obtained in constant time.
 	 *
 	 * @param id
 	 *            name of the commit object.
@@ -1764,16 +1764,28 @@ public ObjectWalk toObjectWalkWithSameObjects() {
 	 * @param id
 	 *            the object this walker requires a commit reference for.
 	 * @return a new unparsed reference for the object.
+	 *
+	 * @nooverride Since 7.8 This method is not intended to be re-implemented or
+	 *             extended by clients. Override
+	 *             {@link #createCommit(AnyObjectId, int)} instead.
 	 */
 	protected RevCommit createCommit(AnyObjectId id) {
 		return createCommit(id, commitGraph().findGraphPosition(id));
 	}
 
-	private RevCommit createCommit(AnyObjectId id, int graphPos) {
-		if (graphPos >= 0) {
-			return new RevCommitCG(id, graphPos);
-		}
-		return new RevCommit(id);
+	/**
+	 * Construct a new unparsed commit for the given object.
+	 *
+	 * @param id
+	 *            the object this walker requires a commit reference for.
+	 * @param graphPos
+	 *            the position of the commit in the commit graph or {@code -1}
+	 *            if the commit is not present in the commit graph
+	 * @return a new unparsed reference for the object.
+	 * @since 7.8
+	 */
+	protected RevCommit createCommit(AnyObjectId id, int graphPos) {
+		return new RevCommit(id, graphPos);
 	}
 
 	void carryFlagsImpl(RevCommit c) {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalkUtils.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalkUtils.java
index 4bfe2fd..2da163b 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalkUtils.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalkUtils.java
@@ -195,4 +195,27 @@ public static List<Ref> findBranchesReachableFrom(RevCommit commit,
 		return result;
 	}
 
+	/**
+	 * If not already parsed, parses the headers of the given commit using the
+	 * given Rev Walker
+	 *
+	 * @param commit
+	 *            The commit to parse
+	 * @param walker
+	 *            The RevWalk to be used
+	 * @throws MissingObjectException
+	 *             if the object is missing
+	 * @throws IncorrectObjectTypeException
+	 *             if the object has an unexpected type
+	 * @throws IOException
+	 *             if an IO error occurred
+	 */
+	static void ensureHeadersParsed(RevCommit commit, RevWalk walker)
+			throws MissingObjectException, IncorrectObjectTypeException,
+			IOException {
+		if ((commit.flags & RevWalk.PARSED) == 0) {
+			commit.parseHeaders(walker);
+		}
+	}
+
 }
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RewriteGenerator.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RewriteGenerator.java
index 4a93f4d..0e18f94 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RewriteGenerator.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RewriteGenerator.java
@@ -29,19 +29,18 @@
  * @see TreeRevFilter
  */
 class RewriteGenerator extends Generator {
-	private static final int REWRITE = RevWalk.REWRITE;
-
-	/** For {@link #cleanup(RevCommit[])} to remove duplicate parents. */
-	private static final int DUPLICATE = RevWalk.TEMP_MARK;
 
 	private final Generator source;
 
 	private final FIFORevQueue pending;
 
+	private final AbstractCommitRewriter rewriter;
+
 	RewriteGenerator(Generator s) {
 		super(s.firstParent);
 		source = s;
 		pending = new FIFORevQueue(s.firstParent);
+		rewriter = new PendingRewriter();
 	}
 
 	@Override
@@ -54,7 +53,6 @@ int outputType() {
 		return source.outputType() & ~NEEDS_REWRITE;
 	}
 
-	@SuppressWarnings("ReferenceEquality")
 	@Override
 	RevCommit next() throws MissingObjectException,
 			IncorrectObjectTypeException, IOException {
@@ -69,137 +67,46 @@ RevCommit next() throws MissingObjectException,
 			}
 		}
 
-		applyFilterToParents(c);
-
-		boolean rewrote = false;
-		final RevCommit[] pList = c.getParents();
-		final int nParents = pList.length;
-		for (int i = 0; i < nParents; i++) {
-			final RevCommit oldp = pList[i];
-			final RevCommit newp = rewrite(oldp);
-			if (firstParent) {
-				if (newp == null) {
-					c.parents = RevCommit.NO_PARENTS;
-				} else {
-					c.parents = new RevCommit[] { newp };
-				}
-				return c;
-			}
-			if (oldp != newp) {
-				pList[i] = newp;
-				rewrote = true;
-			}
-		}
-		if (rewrote) {
-			c.parents = cleanup(pList);
-		}
-		return c;
+		return rewriter.rewriteParents(c);
 	}
 
-	/**
-	 * Makes sure that the {@link TreeRevFilter} has been applied to all parents
-	 * of this commit by the previous {@link PendingGenerator}.
-	 *
-	 * @param c
-	 *            given commit
-	 * @throws MissingObjectException
-	 *             if an object is missing
-	 * @throws IncorrectObjectTypeException
-	 *             if an object has an unexpected type
-	 * @throws IOException
-	 *             if an IO error occurred
-	 */
-	private void applyFilterToParents(RevCommit c)
-			throws MissingObjectException, IncorrectObjectTypeException,
-			IOException {
-		for (RevCommit parent : c.getParents()) {
-			while ((parent.flags & RevWalk.TREE_REV_FILTER_APPLIED) == 0) {
+	class PendingRewriter extends AbstractCommitRewriter {
+		PendingRewriter() {
+			super(firstParent);
+		}
 
-				RevCommit n = source.next();
+		/**
+		 * Makes sure that the {@link TreeRevFilter} has been applied to all
+		 * parents of this commit by the previous {@link PendingGenerator}.
+		 *
+		 * @param c
+		 *            given commit
+		 * @throws MissingObjectException
+		 *             if an object is missing
+		 * @throws IncorrectObjectTypeException
+		 *             if an object has an unexpected type
+		 * @throws IOException
+		 *             if an IO error occurred
+		 */
+		@Override
+		void applyFilterToParents(RevCommit c) throws MissingObjectException,
+				IncorrectObjectTypeException, IOException {
+			for (RevCommit parent : c.getParents()) {
+				while ((parent.flags & RevWalk.TREE_REV_FILTER_APPLIED) == 0) {
 
-				if (n != null) {
-					pending.add(n);
-				} else {
-					// Source generator is exhausted; filter has been applied to
-					// all commits
-					return;
+					RevCommit n = source.next();
+
+					if (n != null) {
+						pending.add(n);
+					} else {
+						// Source generator is exhausted; filter has been
+						// applied to all commits
+						return;
+					}
+
 				}
 
 			}
-
 		}
 	}
-
-	private RevCommit rewrite(RevCommit p) throws MissingObjectException,
-			IncorrectObjectTypeException, IOException {
-		for (;;) {
-
-			if (p.getParentCount() > 1) {
-				// This parent is a merge, so keep it.
-				//
-				return p;
-			}
-
-			if ((p.flags & RevWalk.UNINTERESTING) != 0) {
-				// Retain uninteresting parents. They show where the
-				// DAG was cut off because it wasn't interesting.
-				//
-				return p;
-			}
-
-			if ((p.flags & REWRITE) == 0) {
-				// This parent was not eligible for rewriting. We
-				// need to keep it in the DAG.
-				//
-				return p;
-			}
-
-			if (p.getParentCount() == 0) {
-				// We can't go back any further, other than to
-				// just delete the parent entirely.
-				//
-				return null;
-			}
-
-			applyFilterToParents(p.getParent(0));
-			p = p.getParent(0);
-
-		}
-	}
-
-	private RevCommit[] cleanup(RevCommit[] oldList) {
-		// Remove any duplicate parents caused due to rewrites (e.g. a merge
-		// with two sides that both simplified back into the merge base).
-		// We also may have deleted a parent by marking it null.
-		//
-		int newCnt = 0;
-		for (int o = 0; o < oldList.length; o++) {
-			final RevCommit p = oldList[o];
-			if (p == null)
-				continue;
-			if ((p.flags & DUPLICATE) != 0) {
-				oldList[o] = null;
-				continue;
-			}
-			p.flags |= DUPLICATE;
-			newCnt++;
-		}
-
-		if (newCnt == oldList.length) {
-			for (RevCommit p : oldList)
-				p.flags &= ~DUPLICATE;
-			return oldList;
-		}
-
-		final RevCommit[] newList = new RevCommit[newCnt];
-		newCnt = 0;
-		for (RevCommit p : oldList) {
-			if (p != null) {
-				newList[newCnt++] = p;
-				p.flags &= ~DUPLICATE;
-			}
-		}
-
-		return newList;
-	}
 }
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/StartGenerator.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/StartGenerator.java
index 6854b60..2d4cc09 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/StartGenerator.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/StartGenerator.java
@@ -110,18 +110,33 @@ RevCommit next() throws MissingObjectException,
 
 		walker.queue = q;
 
+		if (walker.hasRevSort(RevSort.TOPO)
+				&& walker.hasRevSort(RevSort.TOPO_KEEP_BRANCH_TOGETHER)) {
+			throw new IllegalStateException(JGitText
+					.get().cannotCombineTopoSortWithTopoKeepBranchTogetherSort);
+		}
+
 		if (walker instanceof DepthWalk) {
 			DepthWalk dw = (DepthWalk) walker;
 			g = new DepthGenerator(dw, pending);
-		} else {
-			g = new PendingGenerator(w, pending, rf, pendingOutputType);
 
-			if (walker.hasRevSort(RevSort.BOUNDARY)) {
-				// Because the boundary generator may produce uninteresting
-				// commits we cannot allow the pending generator to dispose
-				// of them early.
-				//
-				((PendingGenerator) g).canDispose = false;
+			if (walker.hasRevSort(RevSort.TOPO)) {
+				g = new TopoSortGenerator(g);
+			}
+		} else {
+			// Because the boundary generator may produce uninteresting
+			// commits we cannot allow the pending generator to dispose
+			// of them early.
+			//
+			boolean canDispose = !walker.hasRevSort(RevSort.BOUNDARY);
+
+			if (walker.hasRevSort(RevSort.TOPO)) {
+				// Doesn't need rewrite
+				g = new TopoSortPendingGenerator(w, pending, rf,
+						pendingOutputType, canDispose);
+			} else {
+				g = new PendingGenerator(w, pending, rf, pendingOutputType,
+						canDispose);
 			}
 		}
 
@@ -129,16 +144,7 @@ RevCommit next() throws MissingObjectException,
 			g = new RewriteGenerator(g);
 		}
 
-		if (walker.hasRevSort(RevSort.TOPO)
-				&& walker.hasRevSort(RevSort.TOPO_KEEP_BRANCH_TOGETHER)) {
-			throw new IllegalStateException(JGitText
-					.get().cannotCombineTopoSortWithTopoKeepBranchTogetherSort);
-		}
-
-		if (walker.hasRevSort(RevSort.TOPO)
-				&& (g.outputType() & SORT_TOPO) == 0) {
-			g = new TopoSortGenerator(g);
-		} else if (walker.hasRevSort(RevSort.TOPO_KEEP_BRANCH_TOGETHER)
+		if (walker.hasRevSort(RevSort.TOPO_KEEP_BRANCH_TOGETHER)
 				&& (g.outputType() & SORT_TOPO) == 0) {
 			g = new TopoNonIntermixSortGenerator(g);
 		}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TopoExplorePhase.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TopoExplorePhase.java
new file mode 100644
index 0000000..ca6fcbb
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TopoExplorePhase.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2026 Vector Informatik GmbH
+ *
+ * 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.revwalk;
+
+import java.io.IOException;
+
+import org.eclipse.jgit.errors.IncorrectObjectTypeException;
+import org.eclipse.jgit.errors.MissingObjectException;
+import org.eclipse.jgit.revwalk.filter.RevFilter;
+
+final class TopoExplorePhase extends TopoPhase {
+
+	private final RevFlag topoPassedFilterFlag;
+
+	private final RevFilter filter;
+
+	private final boolean canDispose;
+
+	TopoExplorePhase(RevWalk walker, RevFilter filter,
+			boolean canDispose) {
+		super(walker, "EXPLORE"); //$NON-NLS-1$
+		this.topoPassedFilterFlag = walker.newFlag("TOPO_PASSED_FILTER"); //$NON-NLS-1$
+		this.filter = filter;
+		this.canDispose = canDispose;
+	}
+
+	void explore(int minGeneration) throws MissingObjectException,
+			IncorrectObjectTypeException, IOException {
+		RevCommit c;
+		while ((c = tryRemove(minGeneration)) != null) {
+			if (!propagateUninteresting(c) && passThroughFilter(c)) {
+				c.add(topoPassedFilterFlag);
+			}
+
+			for (RevCommit p : c.getParents()) {
+				enqueue(p);
+			}
+		}
+	}
+
+	boolean hasPassedFilter(RevCommit c) {
+		return c.has(topoPassedFilterFlag);
+	}
+
+	private boolean propagateUninteresting(RevCommit c) {
+		walker.carryFlagsImpl(c);
+		return c.has(RevFlag.UNINTERESTING);
+	}
+
+	private boolean passThroughFilter(RevCommit c)
+			throws MissingObjectException,
+			IncorrectObjectTypeException, IOException {
+		boolean hadBody = c.getRawBuffer() != null;
+
+		if (filter.requiresCommitBody() && !hadBody) {
+			c.parseBody(walker);
+		}
+
+		boolean passesFilter = filter.include(walker, c);
+
+		if (!hadBody && canDispose) {
+			c.disposeBody();
+		}
+
+		return passesFilter;
+	}
+
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TopoInDegreePhase.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TopoInDegreePhase.java
new file mode 100644
index 0000000..112d9e7
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TopoInDegreePhase.java
@@ -0,0 +1,175 @@
+/*
+ * Copyright (c) 2026 Vector Informatik GmbH
+ *
+ * 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.revwalk;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jgit.errors.IncorrectObjectTypeException;
+import org.eclipse.jgit.errors.MissingObjectException;
+import org.eclipse.jgit.lib.Constants;
+
+final class TopoInDegreePhase extends TopoPhase {
+
+	private final TopoExplorePhase explorePhase;
+
+	private final AbstractCommitRewriter rewriter;
+
+	private final RevFlag topoSeen;
+
+	private final AbstractRevQueue ready;
+
+	private int minGeneration = Constants.COMMIT_GENERATION_UNKNOWN;
+
+	TopoInDegreePhase(RevWalk walker, TopoExplorePhase explorePhase,
+			boolean needsRewrite) {
+		super(walker, "INDEGREE"); //$NON-NLS-1$
+
+		this.explorePhase = explorePhase;
+		this.rewriter = needsRewrite ? new TopoRewriter() : null;
+		this.topoSeen = walker.newFlag("TOPO_SEEN"); //$NON-NLS-1$
+		this.ready = RevWalk.newDateRevQueue(walker.isFirstParent());
+	}
+
+	void initialize(AbstractRevQueue p) throws MissingObjectException,
+			IncorrectObjectTypeException, IOException {
+		List<RevCommit> roots = new ArrayList<>();
+
+		for (RevCommit root = p.next(); root != null; root = p.next()) {
+			roots.add(root);
+			checkUpdateMinGeneration(root);
+
+			explorePhase.enqueue(root);
+			enqueue(root);
+		}
+
+		calculateInDegrees(minGeneration);
+
+		for (RevCommit root : roots) {
+			checkAddReady(root);
+		}
+	}
+
+	void calculateInDegrees(int cutoff) throws MissingObjectException,
+			IncorrectObjectTypeException, IOException {
+		RevCommit c;
+
+		while ((c = tryRemove(cutoff)) != null) {
+			// Only perform inDegree calculation on commits, whose history has
+			// been rewritten
+			c = rewriteIfNeeded(c);
+
+			visitChild(c);
+		}
+	}
+
+	private RevCommit rewriteIfNeeded(RevCommit c)
+			throws MissingObjectException, IncorrectObjectTypeException,
+			IOException {
+		explorePhase.explore(c.getEffectiveGeneration());
+
+		if (rewriter != null) {
+			return rewriter.rewriteParents(c);
+		}
+
+		return c;
+	}
+
+	private void visitChild(RevCommit c) throws MissingObjectException,
+			IncorrectObjectTypeException, IOException {
+		for (RevCommit p : c.getParents()) {
+			if (p.has(RevFlag.UNINTERESTING) || p.has(RevFlag.UNSHALLOW)) {
+				continue;
+			}
+
+			p.inDegree++;
+			enqueue(p);
+
+			if (walker.isFirstParent()) {
+				break;
+			}
+		}
+	}
+
+	RevCommit nextReady() throws MissingObjectException,
+			IncorrectObjectTypeException, IOException {
+		RevCommit c = ready.next();
+
+		if (c == null) {
+			return null;
+		}
+
+		expand(c);
+		return c;
+	}
+
+	private void expand(RevCommit c) throws MissingObjectException,
+			IncorrectObjectTypeException, IOException {
+		for (RevCommit p : c.getParents()) {
+			if (p.has(RevFlag.UNINTERESTING)) {
+				continue;
+			}
+
+			if (checkUpdateMinGeneration(p)) {
+				calculateInDegrees(minGeneration);
+			}
+
+			p.inDegree--;
+			checkAddReady(p);
+
+			if (walker.isFirstParent()) {
+				return;
+			}
+		}
+	}
+
+	private void checkAddReady(RevCommit p) {
+		if (p.inDegree == 0 && !p.has(topoSeen)) {
+			p.add(topoSeen);
+			ready.add(p);
+		}
+	}
+
+	private boolean checkUpdateMinGeneration(RevCommit c)
+			throws MissingObjectException, IncorrectObjectTypeException,
+			IOException {
+		RevWalkUtils.ensureHeadersParsed(c, walker);
+		int generation = c.getEffectiveGeneration();
+
+		if (generation < minGeneration) {
+			minGeneration = generation;
+			return true;
+		}
+
+		return false;
+	}
+
+	private class TopoRewriter extends AbstractCommitRewriter {
+
+		TopoRewriter() {
+			super(walker.isFirstParent());
+		}
+
+		@Override
+		void applyFilterToParents(RevCommit c) throws MissingObjectException,
+				IncorrectObjectTypeException, IOException {
+			for (RevCommit p : c.getParents()) {
+				if ((p.flags & RevWalk.TREE_REV_FILTER_APPLIED) == 0) {
+					RevWalkUtils.ensureHeadersParsed(p, walker);
+					explorePhase.explore(p.getEffectiveGeneration());
+				}
+			}
+
+		}
+
+	}
+
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TopoPhase.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TopoPhase.java
new file mode 100644
index 0000000..6d8421c
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TopoPhase.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2026 Vector Informatik GmbH
+ *
+ * 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.revwalk;
+
+import java.io.IOException;
+import java.util.PriorityQueue;
+
+import org.eclipse.jgit.errors.IncorrectObjectTypeException;
+import org.eclipse.jgit.errors.MissingObjectException;
+
+class TopoPhase {
+
+	private final RevFlag testFlag;
+
+	private final PriorityQueue<RevCommit> queue;
+
+	protected final RevWalk walker;
+
+	TopoPhase(RevWalk walker, String name) {
+		this.walker = walker;
+		this.testFlag = walker.newFlag(name + "_SEEN"); //$NON-NLS-1$
+		this.queue = new PriorityQueue<>(TopoPhase::compareGenThenDate);
+	}
+
+	private static int compareGenThenDate(RevCommit a, RevCommit b) {
+		int genCompare = Integer.compare(b.getEffectiveGeneration(),
+				a.getEffectiveGeneration());
+
+		if (genCompare != 0) {
+			return genCompare;
+		}
+
+		return Integer.compare(b.commitTime, a.commitTime);
+	}
+
+	final void enqueue(RevCommit c) throws MissingObjectException,
+			IncorrectObjectTypeException, IOException {
+		if (!c.has(testFlag)) {
+			RevWalkUtils.ensureHeadersParsed(c, walker);
+			c.add(testFlag);
+			queue.offer(c);
+		}
+	}
+
+	/**
+	 * If the queue is not empty and the head of the queue has an effective
+	 * generation equal to or higher than {@code minGeneration}, it is removed
+	 * from the queue and returned.
+	 * <p>
+	 * Otherwise, {@code null} is returned
+	 *
+	 * @param minGeneration
+	 *            The minimum desired generation number
+	 * @return The head of the queue or {@code null}
+	 */
+	final RevCommit tryRemove(int minGeneration) {
+		RevCommit candidate = queue.peek();
+
+		if (candidate == null) {
+			return null;
+		}
+
+		// No need to parse the commit before querying generation, since only
+		// parsed commits can be added to the queue
+		if (candidate.getEffectiveGeneration() >= minGeneration) {
+			queue.remove();
+			return candidate;
+		}
+
+		return null;
+	}
+
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TopoSortPendingGenerator.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TopoSortPendingGenerator.java
new file mode 100644
index 0000000..5d43c5b
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TopoSortPendingGenerator.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2026 Vector Informatik GmbH
+ *
+ * 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.revwalk;
+
+import java.io.IOException;
+
+import org.eclipse.jgit.errors.IncorrectObjectTypeException;
+import org.eclipse.jgit.errors.MissingObjectException;
+import org.eclipse.jgit.revwalk.filter.RevFilter;
+
+class TopoSortPendingGenerator extends Generator {
+
+	private final int output;
+
+	private final TopoExplorePhase explorePhase;
+
+	private final TopoInDegreePhase inDegreePhase;
+
+	protected TopoSortPendingGenerator(RevWalk walker, AbstractRevQueue pending,
+			RevFilter filter, int output, boolean canDispose)
+			throws MissingObjectException, IncorrectObjectTypeException,
+			IOException {
+		super(walker.isFirstParent());
+
+		this.output = (output | SORT_COMMIT_TIME_DESC | SORT_TOPO)
+				& ~(NEEDS_REWRITE);
+		this.explorePhase = new TopoExplorePhase(walker, filter, canDispose);
+		this.inDegreePhase = new TopoInDegreePhase(walker, explorePhase,
+				(output & NEEDS_REWRITE) != 0);
+
+		inDegreePhase.initialize(pending);
+	}
+
+	@Override
+	int outputType() {
+		return output;
+	}
+
+	@Override
+	RevCommit next() throws MissingObjectException,
+			IncorrectObjectTypeException, IOException {
+		while (true) {
+			RevCommit c = inDegreePhase.nextReady();
+
+			if (c == null) {
+				return null;
+			}
+
+			c.add(RevFlag.SEEN);
+
+			if (explorePhase.hasPassedFilter(c)) {
+				return c;
+			}
+		}
+	}
+
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackStatistics.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackStatistics.java
index 64a1eb2..bc68daf 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackStatistics.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackStatistics.java
@@ -690,7 +690,8 @@ public long getOffloadedPackfilesSize() {
 	 * @return total time spent processing this pack.
 	 */
 	public long getTimeTotal() {
-		return statistics.timeCounting + statistics.timeSearchingForReuse
+		return statistics.timeNegotiating + statistics.timeCounting
+				+ statistics.timeSearchingForReuse
 				+ statistics.timeSearchingForSizes + statistics.timeCompressing
 				+ statistics.timeWriting;
 	}
diff --git a/pom.xml b/pom.xml
index d1a6196..5f81bd8 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.7.2-SNAPSHOT</version>
+  <version>7.8.0-SNAPSHOT</version>
 
   <name>JGit - Parent</name>
   <url>${jgit-url}</url>
@@ -118,7 +118,7 @@
 
     <project.build.outputTimestamp>${commit.time.iso}</project.build.outputTimestamp>
 
-    <jgit-last-release-version>7.6.0.202603022253-r</jgit-last-release-version>
+    <jgit-last-release-version>7.7.0.202606012155-r</jgit-last-release-version>
     <ant-version>1.10.15</ant-version>
     <apache-sshd-version>2.19.0</apache-sshd-version>
     <jsch-version>0.1.55</jsch-version>
@@ -130,14 +130,14 @@
     <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.1.9</jetty-version>
+    <jetty-version>12.1.11</jetty-version>
     <japicmp-version>0.25.0</japicmp-version>
     <httpclient-version>4.5.14</httpclient-version>
     <httpcore-version>4.4.16</httpcore-version>
     <slf4j-version>2.0.18</slf4j-version>
     <maven-javadoc-plugin-version>3.12.0</maven-javadoc-plugin-version>
     <gson-version>2.14.0</gson-version>
-    <bouncycastle-version>1.84</bouncycastle-version>
+    <bouncycastle-version>1.85</bouncycastle-version>
     <spotbugs-maven-plugin-version>4.9.8.2</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>
@@ -147,8 +147,8 @@
     <plexus-compiler-version>2.16.1</plexus-compiler-version>
     <hamcrest-version>3.0</hamcrest-version>
     <assertj-version>3.27.7</assertj-version>
-    <jna-version>5.18.1</jna-version>
-    <byte-buddy-version>1.18.8</byte-buddy-version>
+    <jna-version>5.19.1</jna-version>
+    <byte-buddy-version>1.18.11</byte-buddy-version>
 
     <!-- Properties to enable jacoco code coverage analysis -->
     <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
@@ -917,7 +917,7 @@
       <dependency>
         <groupId>commons-logging</groupId>
         <artifactId>commons-logging</artifactId>
-        <version>1.3.6</version>
+        <version>1.4.0</version>
       </dependency>
 
       <dependency>
@@ -928,8 +928,8 @@
       </dependency>
 
       <dependency>
-        <groupId>org.eclipse.jetty.ee10</groupId>
-        <artifactId>jetty-ee10-servlet</artifactId>
+        <groupId>org.eclipse.jetty.ee11</groupId>
+        <artifactId>jetty-ee11-servlet</artifactId>
         <version>${jetty-version}</version>
       </dependency>
 
diff --git a/tools/jgit-ee8/BUILD b/tools/jgit-ee8/BUILD
index f6681cc..2c09b5a 100644
--- a/tools/jgit-ee8/BUILD
+++ b/tools/jgit-ee8/BUILD
@@ -7,7 +7,7 @@
         "--forbid",
         "jakarta\\.servlet",
         "--forbid",
-        "org\\.eclipse\\.jetty\\.ee10\\.servlet",
+        "org\\.eclipse\\.jetty\\.ee11\\.servlet",
         "--forbid",
         "org\\.eclipse\\.jgit\\..*\\.ee8",
         "--require-if-source",
diff --git a/tools/jgit-ee8/README.md b/tools/jgit-ee8/README.md
index 7bb2f47..d867a1d 100644
--- a/tools/jgit-ee8/README.md
+++ b/tools/jgit-ee8/README.md
@@ -53,7 +53,7 @@
 those classes already run under `//org.eclipse.jgit.http.test.ee8:http`.
 
 The test rewrite rules also map Jetty test helper imports from
-`org.eclipse.jetty.ee10.servlet` to the Jetty EE8 packages needed by the tests.
+`org.eclipse.jetty.ee11.servlet` to the Jetty EE8 packages needed by the tests.
 They are intentionally test-only and separate from the production
 `jakarta.servlet` to `javax.servlet` rules.
 
