diff --git a/.gitattributes b/.gitattributes
index f57840b..70de594 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1 +1,14 @@
+* text=auto
+
+*.asc binary
+*.gif binary
+*.gitindex.dat binary
+*.key binary
+*.patch binary
+*.pdf binary
+*.png binary
+org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/** binary
+org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/test/resources/** binary
+org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/util/io/** binary
+
 *.java diff=java
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 0000000..402d077
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,61 @@
+name: Bug Report
+description: File a bug report.
+body:
+  - type: markdown
+    attributes:
+      value: |
+        Thank you for taking the time to fill out this bug report!
+  - type: input
+    id: version
+    attributes:
+      label: Version
+      description: With what version(s) of Eclipse JGit do you observe the problem?
+      placeholder: a version, like 5.13.0 or 6.8.0
+    validations:
+      required: true
+  - type: dropdown
+    id: operatingSystem
+    attributes:
+      label: Operating System
+      description: On what Operating System(s) do you observe the problem?
+      multiple: true
+      options:
+        - "Linux/Unix"
+        - MacOS
+        - Windows
+    validations:
+      required: true
+  - type: textarea
+    id: description
+    attributes:
+      label: Bug description
+      description: Explain the buggy behavior, and how to reproduce it.
+    validations:
+      required: true
+  - type: textarea
+    id: actual
+    attributes:
+      label: Actual behavior
+      description: What happened?
+      placeholder: Enclose exception stack traces by backticks, or paste them in the "Relevant log output" field below.
+    validations:
+      required: true
+  - type: textarea
+    id: expected
+    attributes:
+      label: Expected behavior
+      description: What did you expect?
+    validations:
+      required: true
+  - type: textarea
+    id: logs
+    attributes:
+      label: Relevant log output
+      description: Please copy and paste any relevant log output or exception stack traces. This will be automatically formatted into code, so no need for backticks.
+      render: Shell
+  - type: textarea
+    id: other
+    attributes:
+      label: Other information
+      description: Any other relevant information.
+      placeholder: "For instance if you're reporting a cloning or fetching/pushing problem, what git server is used, and if the repository is public, what's its URL?"
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 0000000..84a0122
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,32 @@
+name: Feature Request
+description: Suggest an enhancement or a new feature.
+body:
+  - type: markdown
+    attributes:
+      value: |
+        Thank you for helping making Eclipse JGit better!
+  - type: textarea
+    id: description
+    attributes:
+      label: Description
+      description: What feature or enhancement you would like to have in Eclipse JGit?
+    validations:
+      required: true
+  - type: textarea
+    id: motivation
+    attributes:
+      label: Motivation
+      description: Explain the use case for the new feature.
+      placeholder: Explain why it would be good to have the new feature or enhancement. What problem would it solve?
+    validations:
+      required: true
+  - type: textarea
+    id: alternatives
+    attributes:
+      label: Alternatives considered
+      description: What alternatives did you consider? What work-around, if any, are you using currently?
+  - type: textarea
+    id: other
+    attributes:
+      label: Additional context
+      description: Any other information that may be relevant.
diff --git a/Documentation/config-options.md b/Documentation/config-options.md
index ec9d86b..ca94ab8 100644
--- a/Documentation/config-options.md
+++ b/Documentation/config-options.md
@@ -77,6 +77,7 @@
 | `gc.pruneExpire` | `2.weeks.ago` | &#x2705; | Grace period after which unreachable objects will be pruned. |
 | `gc.prunePackExpire` | `1.hour.ago` |  &#x20DE; | Grace period after which packfiles only containing unreachable objects will be pruned. |
 | `gc.writeChangedPaths` | `false`| &#x20DE; | Whether bloom filter should be written to commit-graph during a gc operation. |
+| `gc.writeCommitGraph`| `false` | &#x20DE; | If true, then gc will rewrite the commit-graph file when jgit gc is run. |
 
 ## __http__ options
 
diff --git a/WORKSPACE b/WORKSPACE
index 71a27c2..21ebc72 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -90,30 +90,32 @@
     sha1 = "51cf043c87253c9f58b539c9f7e44c8894223850",
 )
 
-SSHD_VERS = "2.11.0"
+SSHD_VERS = "2.12.0"
 
 maven_jar(
     name = "sshd-osgi",
     artifact = "org.apache.sshd:sshd-osgi:" + SSHD_VERS,
-    sha1 = "7ec6b14ab789fc4b1ce9fdcd0e13d22b5c940e7b",
+    sha1 = "32b8de1cbb722ba75bdf9898e0c41d42af00ce57",
 )
 
 maven_jar(
     name = "sshd-sftp",
     artifact = "org.apache.sshd:sshd-sftp:" + SSHD_VERS,
-    sha1 = "3a293bba303c486a9ff6be8e11c9c68fd56b63c7",
+    sha1 = "0f96f00a07b186ea62838a6a4122e8f4cad44df6",
 )
 
+JNA_VERS = "5.14.0"
+
 maven_jar(
     name = "jna",
-    artifact = "net.java.dev.jna:jna:5.13.0",
-    sha1 = "1200e7ebeedbe0d10062093f32925a912020e747",
+    artifact = "net.java.dev.jna:jna:" + JNA_VERS,
+    sha1 = "67bf3eaea4f0718cb376a181a629e5f88fa1c9dd",
 )
 
 maven_jar(
     name = "jna-platform",
-    artifact = "net.java.dev.jna:jna-platform:5.13.0",
-    sha1 = "88e9a306715e9379f3122415ef4ae759a352640d",
+    artifact = "net.java.dev.jna:jna-platform:" + JNA_VERS,
+    sha1 = "28934d48aed814f11e4c584da55c49fa7032b31b",
 )
 
 maven_jar(
@@ -148,8 +150,14 @@
 
 maven_jar(
     name = "commons-compress",
-    artifact = "org.apache.commons:commons-compress:1.25.0",
-    sha1 = "9d35aec423da6c8a7f93d7e9e1c6b1d9fe14bb5e",
+    artifact = "org.apache.commons:commons-compress:1.26.0",
+    sha1 = "659feffdd12280201c8aacb8f7be94f9a883c824",
+)
+
+maven_jar(
+    name = "commons-io",
+    artifact = "commons-io:commons-io:2.15.1",
+    sha1 = "f11560da189ab563a5c8e351941415430e9304ea",
 )
 
 maven_jar(
@@ -178,28 +186,28 @@
 
 maven_jar(
     name = "mockito",
-    artifact = "org.mockito:mockito-core:5.7.0",
-    sha1 = "a1c258331ab91d66863c983aff7136357e9de056",
+    artifact = "org.mockito:mockito-core:5.10.0",
+    sha1 = "b3812fa2ee069f1d0b41c1c0155da79d0e1dcde0",
 )
 
 maven_jar(
     name = "assertj-core",
-    artifact = "org.assertj:assertj-core:3.24.2",
-    sha1 = "ebbf338e33f893139459ce5df023115971c2786f",
+    artifact = "org.assertj:assertj-core:3.25.3",
+    sha1 = "792b270e73aa1cfc28fa135be0b95e69ea451432",
 )
 
-BYTE_BUDDY_VERSION = "1.14.8"
+BYTE_BUDDY_VERSION = "1.14.12"
 
 maven_jar(
     name = "bytebuddy",
     artifact = "net.bytebuddy:byte-buddy:" + BYTE_BUDDY_VERSION,
-    sha1 = "505d7d8937ff00cc55db79723e26c94069b87d66",
+    sha1 = "6e37f743dc15a8d7a4feb3eb0025cbc612d5b9e1",
 )
 
 maven_jar(
     name = "bytebuddy-agent",
     artifact = "net.bytebuddy:byte-buddy-agent:" + BYTE_BUDDY_VERSION,
-    sha1 = "ae6ebe485f3bcd0a1e20241488a32e6400a501ef",
+    sha1 = "be4984cb6fd1ef1d11f218a648889dfda44b8a15",
 )
 
 maven_jar(
@@ -214,55 +222,55 @@
     sha1 = "b3add478d4382b78ea20b1671390a858002feb6c",
 )
 
-JETTY_VER = "10.0.18"
+JETTY_VER = "10.0.20"
 
 maven_jar(
     name = "jetty-servlet",
     artifact = "org.eclipse.jetty:jetty-servlet:" + JETTY_VER,
-    sha1 = "cc0acde71a3b04db8fcde2ad60a00dfd4effab23",
-    src_sha1 = "b038debaa2c0c4674fa1bc6e96bcf8bf283be0e8",
+    sha1 = "e3661d28d5f2e2185fb085ce5560b2969e8f7c1e",
+    src_sha1 = "23b97219833769e3e69a071abab3811f49077e2e",
 )
 
 maven_jar(
     name = "jetty-security",
     artifact = "org.eclipse.jetty:jetty-security:" + JETTY_VER,
-    sha1 = "399601ef4e649b3be6f9fd6176b208914f9fd171",
-    src_sha1 = "b203e58304afe23d8820af6abe3ca39696fe7530",
+    sha1 = "f082f9198038e4781ff4cdf4d32db9f90fa8f38a",
+    src_sha1 = "a1acb8cb40bd495ba67562cb342f371425dba47b",
 )
 
 maven_jar(
     name = "jetty-server",
     artifact = "org.eclipse.jetty:jetty-server:" + JETTY_VER,
-    sha1 = "b59b7df009bbb85be455e42524e9a11944fb3ba1",
-    src_sha1 = "d45709036a573843cd57daeb3112f00f8bf4f753",
+    sha1 = "66deea078236e21ae9dd7443716b7642766526aa",
+    src_sha1 = "e2ddea07b6c85dbc7cf078e408f68d69e504b33c",
 )
 
 maven_jar(
     name = "jetty-http",
     artifact = "org.eclipse.jetty:jetty-http:" + JETTY_VER,
-    sha1 = "9b7f2b580bdcf2a9c27168eac58276c7e6e99ccf",
-    src_sha1 = "4bbede666e912c8abb60c04022b84225fe9ce369",
+    sha1 = "d76bf933db81e9f530f1e59f1858bceddb7c4a43",
+    src_sha1 = "5fd939e4e5000ac76eb686e68e978747802c8a5f",
 )
 
 maven_jar(
     name = "jetty-io",
     artifact = "org.eclipse.jetty:jetty-io:" + JETTY_VER,
-    sha1 = "a622527216b27f72744daf849aa2fa0c6f3db131",
-    src_sha1 = "402c5aa958a734576f13898e63f7ca7f73360b76",
+    sha1 = "269cea7949f739e41707f3d574782c9f227fe188",
+    src_sha1 = "1d30687503a0256da23706e1ebf597658d8c0011",
 )
 
 maven_jar(
     name = "jetty-util",
     artifact = "org.eclipse.jetty:jetty-util:" + JETTY_VER,
-    sha1 = "1ee6a71c2249d5596ba578f015121c99b2b7591a",
-    src_sha1 = "cbba373f654f22e0f0c10c02938e2df8ec2f0fd3",
+    sha1 = "c628108266e75f17dffee34191b74a696fe21746",
+    src_sha1 = "63c17b20a8ca5c3bc1740bd807ad446f842749b4",
 )
 
 maven_jar(
     name = "jetty-util-ajax",
     artifact = "org.eclipse.jetty:jetty-util-ajax:" + JETTY_VER,
-    sha1 = "3560c8a15f920e24daf8ad4196e23ec21610f7d6",
-    src_sha1 = "4b4966b125c586795e425b7b561bcd5b223d6617",
+    sha1 = "049dcc0ad4190786e17389b257195fe936ed3d27",
+    src_sha1 = "b012c053d25d902cc64a5c4432a8eedab3241d94",
 )
 
 BOUNCYCASTLE_VER = "1.77"
diff --git a/lib/BUILD b/lib/BUILD
index 29669b5..8806217 100644
--- a/lib/BUILD
+++ b/lib/BUILD
@@ -20,6 +20,16 @@
 )
 
 java_library(
+    name = "commons-io",
+    visibility = [
+        "//org.eclipse.jgit.archive:__pkg__",
+        "//org.eclipse.jgit.pgm.test:__pkg__",
+        "//org.eclipse.jgit.test:__pkg__",
+    ],
+    exports = ["@commons-io//jar"],
+)
+
+java_library(
     name = "commons-codec",
     visibility = [
         "//org.eclipse.jgit:__pkg__",
diff --git a/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
index 849da13..12f4384 100644
--- a/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
@@ -5,13 +5,13 @@
 Automatic-Module-Name: org.eclipse.jgit.ant.test
 Bundle-SymbolicName: org.eclipse.jgit.ant.test
 Bundle-Vendor: %Bundle-Vendor
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 Import-Package: org.apache.tools.ant,
- org.eclipse.jgit.ant.tasks;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.junit;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)",
+ org.eclipse.jgit.ant.tasks;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.junit;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.0)",
  org.hamcrest.core;version="[1.1.0,3.0.0)",
  org.junit;version="[4.13,5.0.0)"
diff --git a/org.eclipse.jgit.ant.test/pom.xml b/org.eclipse.jgit.ant.test/pom.xml
index 26b4268..72d8443 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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 54ea3d5..d73a8a9 100644
--- a/org.eclipse.jgit.ant/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ant/META-INF/MANIFEST.MF
@@ -3,13 +3,13 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ant
 Bundle-SymbolicName: org.eclipse.jgit.ant
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 Import-Package: org.apache.tools.ant,
-  org.eclipse.jgit.storage.file;version="[6.8.1,6.9.0)"
+  org.eclipse.jgit.storage.file;version="[6.9.0,6.10.0)"
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.ant;version="6.8.1",
- org.eclipse.jgit.ant.tasks;version="6.8.1";
+Export-Package: org.eclipse.jgit.ant;version="6.9.0",
+ org.eclipse.jgit.ant.tasks;version="6.9.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 856c782..916950e 100644
--- a/org.eclipse.jgit.ant/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ant/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
 Bundle-Name: org.eclipse.jgit.ant - Sources
 Bundle-SymbolicName: org.eclipse.jgit.ant.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.8.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ant;version="6.8.1.qualifier";roots="."
+Bundle-Version: 6.9.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.ant;version="6.9.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ant/pom.xml b/org.eclipse.jgit.ant/pom.xml
index 387dc1a..6fd83b4 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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 74d38d8..6419548 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: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-11
@@ -13,17 +13,17 @@
  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="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.nls;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revwalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)",
+ org.eclipse.jgit.api;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.nls;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revwalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.0)",
  org.osgi.framework;version="[1.3.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-Activator: org.eclipse.jgit.archive.FormatActivator
-Export-Package: org.eclipse.jgit.archive;version="6.8.1";
+Export-Package: org.eclipse.jgit.archive;version="6.9.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.api,
    org.apache.commons.compress.archivers,
    org.osgi.framework",
- org.eclipse.jgit.archive.internal;version="6.8.1";x-internal:=true
+ org.eclipse.jgit.archive.internal;version="6.9.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 441cbf6..ca09330 100644
--- a/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
 Bundle-Name: org.eclipse.jgit.archive - Sources
 Bundle-SymbolicName: org.eclipse.jgit.archive.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.8.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.archive;version="6.8.1.qualifier";roots="."
+Bundle-Version: 6.9.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.archive;version="6.9.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.archive/pom.xml b/org.eclipse.jgit.archive/pom.xml
index 0705e5f..7e1343c 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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 56c6c4c..be7440d 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.benchmarks</artifactId>
@@ -60,7 +60,6 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-enforcer-plugin</artifactId>
-        <version>3.3.0</version>
         <executions>
           <execution>
             <id>enforce-maven</id>
@@ -80,7 +79,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.11.0</version>
+        <version>${maven-compiler-plugin-version}</version>
         <configuration>
           <encoding>UTF-8</encoding>
           <release>${java.version}</release>
@@ -117,7 +116,6 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-shade-plugin</artifactId>
-        <version>3.4.1</version>
         <executions>
           <execution>
             <phase>package</phase>
@@ -203,7 +201,6 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-site-plugin</artifactId>
-          <version>4.0.0-M9</version>
           <dependencies>
             <dependency><!-- add support for ssh/scp -->
               <groupId>org.apache.maven.wagon</groupId>
@@ -215,17 +212,16 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-report-plugin</artifactId>
-          <version>3.0.0</version>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-jxr-plugin</artifactId>
-          <version>3.3.0</version>
+          <version>${maven-jxr-plugin-version}</version>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-project-info-reports-plugin</artifactId>
-          <version>3.4.3</version>
+          <version>${maven-project-info-reports-plugin-version}</version>
         </plugin>
       </plugins>
     </pluginManagement>
diff --git a/org.eclipse.jgit.coverage/pom.xml b/org.eclipse.jgit.coverage/pom.xml
index 0718c34..442fde8 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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>6.8.1-SNAPSHOT</version>
+      <version>6.9.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ant</artifactId>
-      <version>6.8.1-SNAPSHOT</version>
+      <version>6.9.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.archive</artifactId>
-      <version>6.8.1-SNAPSHOT</version>
+      <version>6.9.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.http.apache</artifactId>
-      <version>6.8.1-SNAPSHOT</version>
+      <version>6.9.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.http.server</artifactId>
-      <version>6.8.1-SNAPSHOT</version>
+      <version>6.9.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs</artifactId>
-      <version>6.8.1-SNAPSHOT</version>
+      <version>6.9.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs.server</artifactId>
-      <version>6.8.1-SNAPSHOT</version>
+      <version>6.9.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.pgm</artifactId>
-      <version>6.8.1-SNAPSHOT</version>
+      <version>6.9.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ui</artifactId>
-      <version>6.8.1-SNAPSHOT</version>
+      <version>6.9.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ssh.apache</artifactId>
-      <version>6.8.1-SNAPSHOT</version>
+      <version>6.9.0-SNAPSHOT</version>
     </dependency>
 
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.test</artifactId>
-      <version>6.8.1-SNAPSHOT</version>
+      <version>6.9.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ant.test</artifactId>
-      <version>6.8.1-SNAPSHOT</version>
+      <version>6.9.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.http.test</artifactId>
-      <version>6.8.1-SNAPSHOT</version>
+      <version>6.9.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.pgm.test</artifactId>
-      <version>6.8.1-SNAPSHOT</version>
+      <version>6.9.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs.test</artifactId>
-      <version>6.8.1-SNAPSHOT</version>
+      <version>6.9.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs.server.test</artifactId>
-      <version>6.8.1-SNAPSHOT</version>
+      <version>6.9.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ssh.apache.test</artifactId>
-      <version>6.8.1-SNAPSHOT</version>
+      <version>6.9.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 cae7b85..02d4606 100644
--- a/org.eclipse.jgit.gpg.bc.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.gpg.bc.test/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.gpg.bc.test
 Bundle-SymbolicName: org.eclipse.jgit.gpg.bc.test
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-11
@@ -13,9 +13,9 @@
  org.bouncycastle.openpgp.operator;version="[1.65.0,2.0.0)",
  org.bouncycastle.openpgp.operator.jcajce;version="[1.65.0,2.0.0)",
  org.bouncycastle.util.encoders;version="[1.65.0,2.0.0)",
- org.eclipse.jgit.gpg.bc.internal;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.gpg.bc.internal.keys;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util.sha1;version="[6.8.1,6.9.0)",
+ org.eclipse.jgit.gpg.bc.internal;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.gpg.bc.internal.keys;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util.sha1;version="[6.9.0,6.10.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.runner;version="[4.13,5.0.0)",
  org.junit.runners;version="[4.13,5.0.0)"
diff --git a/org.eclipse.jgit.gpg.bc.test/pom.xml b/org.eclipse.jgit.gpg.bc.test/pom.xml
index 0078381..7e14192 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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 e5ba18a..fe2b885 100644
--- a/org.eclipse.jgit.gpg.bc/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.gpg.bc/META-INF/MANIFEST.MF
@@ -3,10 +3,10 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.gpg.bc
 Bundle-SymbolicName: org.eclipse.jgit.gpg.bc;singleton:=true
-Fragment-Host: org.eclipse.jgit;bundle-version="[6.8.1,6.9.0)"
+Fragment-Host: org.eclipse.jgit;bundle-version="[6.9.0,6.10.0)"
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/gpg_bc
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 Import-Package: org.bouncycastle.asn1;version="[1.69.0,2.0.0)",
  org.bouncycastle.asn1.cryptlib;version="[1.69.0,2.0.0)",
@@ -29,9 +29,9 @@
  org.bouncycastle.util;version="[1.69.0,2.0.0)",
  org.bouncycastle.util.encoders;version="[1.69.0,2.0.0)",
  org.bouncycastle.util.io;version="[1.69.0,2.0.0)",
- org.eclipse.jgit.annotations;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.api.errors;version="[6.8.1,6.9.0)",
- org.slf4j;version="[1.7.0,2.0.0)"
-Export-Package: org.eclipse.jgit.gpg.bc;version="6.8.1",
- org.eclipse.jgit.gpg.bc.internal;version="6.8.1";x-friends:="org.eclipse.jgit.gpg.bc.test",
- org.eclipse.jgit.gpg.bc.internal.keys;version="6.8.1";x-friends:="org.eclipse.jgit.gpg.bc.test"
+ org.eclipse.jgit.annotations;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.api.errors;version="[6.9.0,6.10.0)",
+ org.slf4j;version="[1.7.0,3.0.0)"
+Export-Package: org.eclipse.jgit.gpg.bc;version="6.9.0",
+ org.eclipse.jgit.gpg.bc.internal;version="6.9.0";x-friends:="org.eclipse.jgit.gpg.bc.test",
+ org.eclipse.jgit.gpg.bc.internal.keys;version="6.9.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 29c6a18..f998c71 100644
--- a/org.eclipse.jgit.gpg.bc/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.gpg.bc/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
 Bundle-Name: org.eclipse.jgit.gpg.bc - Sources
 Bundle-SymbolicName: org.eclipse.jgit.gpg.bc.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.8.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.gpg.bc;version="6.8.1.qualifier";roots="."
+Bundle-Version: 6.9.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.gpg.bc;version="6.9.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.gpg.bc/pom.xml b/org.eclipse.jgit.gpg.bc/pom.xml
index 5088657..2ab0150 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.gpg.bc</artifactId>
diff --git a/org.eclipse.jgit.gpg.bc/src/org/eclipse/jgit/gpg/bc/internal/BouncyCastleGpgSignatureVerifier.java b/org.eclipse.jgit.gpg.bc/src/org/eclipse/jgit/gpg/bc/internal/BouncyCastleGpgSignatureVerifier.java
index 7161895..f4fed40 100644
--- a/org.eclipse.jgit.gpg.bc/src/org/eclipse/jgit/gpg/bc/internal/BouncyCastleGpgSignatureVerifier.java
+++ b/org.eclipse.jgit.gpg.bc/src/org/eclipse/jgit/gpg/bc/internal/BouncyCastleGpgSignatureVerifier.java
@@ -15,7 +15,6 @@
 import java.security.Security;
 import java.text.MessageFormat;
 import java.time.Instant;
-import java.util.Arrays;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.Locale;
@@ -33,21 +32,18 @@
 import org.bouncycastle.openpgp.operator.jcajce.JcaPGPContentVerifierBuilderProvider;
 import org.bouncycastle.util.encoders.Hex;
 import org.eclipse.jgit.annotations.NonNull;
-import org.eclipse.jgit.annotations.Nullable;
 import org.eclipse.jgit.api.errors.JGitInternalException;
+import org.eclipse.jgit.lib.AbstractGpgSignatureVerifier;
 import org.eclipse.jgit.lib.GpgConfig;
 import org.eclipse.jgit.lib.GpgSignatureVerifier;
-import org.eclipse.jgit.revwalk.RevCommit;
-import org.eclipse.jgit.revwalk.RevObject;
-import org.eclipse.jgit.revwalk.RevTag;
 import org.eclipse.jgit.util.LRUMap;
-import org.eclipse.jgit.util.RawParseUtils;
 import org.eclipse.jgit.util.StringUtils;
 
 /**
  * A {@link GpgSignatureVerifier} to verify GPG signatures using BouncyCastle.
  */
-public class BouncyCastleGpgSignatureVerifier implements GpgSignatureVerifier {
+public class BouncyCastleGpgSignatureVerifier
+		extends AbstractGpgSignatureVerifier {
 
 	private static void registerBouncyCastleProviderIfNecessary() {
 		if (Security.getProvider(BouncyCastleProvider.PROVIDER_NAME) == null) {
@@ -77,50 +73,6 @@
 		return "bc"; //$NON-NLS-1$
 	}
 
-	@Override
-	@Nullable
-	public SignatureVerification verifySignature(@NonNull RevObject object,
-			@NonNull GpgConfig config) throws IOException {
-		if (object instanceof RevCommit) {
-			RevCommit commit = (RevCommit) object;
-			byte[] signatureData = commit.getRawGpgSignature();
-			if (signatureData == null) {
-				return null;
-			}
-			byte[] raw = commit.getRawBuffer();
-			// Now remove the GPG signature
-			byte[] header = { 'g', 'p', 'g', 's', 'i', 'g' };
-			int start = RawParseUtils.headerStart(header, raw, 0);
-			if (start < 0) {
-				return null;
-			}
-			int end = RawParseUtils.headerEnd(raw, start);
-			// start is at the beginning of the header's content
-			start -= header.length + 1;
-			// end is on the terminating LF; we need to skip that, too
-			if (end < raw.length) {
-				end++;
-			}
-			byte[] data = new byte[raw.length - (end - start)];
-			System.arraycopy(raw, 0, data, 0, start);
-			System.arraycopy(raw, end, data, start, raw.length - end);
-			return verify(data, signatureData);
-		} else if (object instanceof RevTag) {
-			RevTag tag = (RevTag) object;
-			byte[] signatureData = tag.getRawGpgSignature();
-			if (signatureData == null) {
-				return null;
-			}
-			byte[] raw = tag.getRawBuffer();
-			// The signature is just tacked onto the end of the message, which
-			// is last in the buffer.
-			byte[] data = Arrays.copyOfRange(raw, 0,
-					raw.length - signatureData.length);
-			return verify(data, signatureData);
-		}
-		return null;
-	}
-
 	static PGPSignature parseSignature(InputStream in)
 			throws IOException, PGPException {
 		try (InputStream sigIn = PGPUtil.getDecoderStream(in)) {
@@ -138,7 +90,8 @@
 	}
 
 	@Override
-	public SignatureVerification verify(byte[] data, byte[] signatureData)
+	public SignatureVerification verify(@NonNull GpgConfig config, byte[] data,
+			byte[] signatureData)
 			throws IOException {
 		PGPSignature signature = null;
 		String fingerprint = null;
@@ -280,6 +233,13 @@
 				verified, expired, trust, null);
 	}
 
+	@Override
+	public SignatureVerification verify(byte[] data, byte[] signatureData)
+			throws IOException {
+		throw new UnsupportedOperationException(
+				"Call verify(GpgConfig, byte[], byte[]) instead."); //$NON-NLS-1$
+	}
+
 	private TrustLevel parseGpgTrustPacket(byte[] packet) {
 		if (packet == null || packet.length < 6) {
 			// A GPG trust packet has at least 6 bytes.
diff --git a/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF
index b2dcb68..488fb71 100644
--- a/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF
@@ -3,12 +3,13 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.http.apache
 Bundle-SymbolicName: org.eclipse.jgit.http.apache
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
-Import-Package: org.apache.http;version="[4.3.0,5.0.0)",
+Import-Package: javax.net.ssl,
+ org.apache.http;version="[4.3.0,5.0.0)",
  org.apache.http.client;version="[4.4.0,5.0.0)",
  org.apache.http.client.config;version="[4.4.0,5.0.0)",
  org.apache.http.client.methods;version="[4.4.0,5.0.0)",
@@ -25,11 +26,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="[6.8.1,6.9.0)",
- org.eclipse.jgit.nls;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.http;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)"
-Export-Package: org.eclipse.jgit.transport.http.apache;version="6.8.1";
+ org.eclipse.jgit.annotations;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.nls;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.http;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.0)"
+Export-Package: org.eclipse.jgit.transport.http.apache;version="6.9.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 296d4b7..a279339 100644
--- a/org.eclipse.jgit.http.apache/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.http.apache/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
 Bundle-Name: org.eclipse.jgit.http.apache - Sources
 Bundle-SymbolicName: org.eclipse.jgit.http.apache.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.8.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.http.apache;version="6.8.1.qualifier";roots="."
+Bundle-Version: 6.9.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.http.apache;version="6.9.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.http.apache/pom.xml b/org.eclipse.jgit.http.apache/pom.xml
index b45a95d..c488685 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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 de0d61a..447f8c2 100644
--- a/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF
@@ -3,13 +3,13 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.http.server
 Bundle-SymbolicName: org.eclipse.jgit.http.server
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.http.server;version="6.8.1",
- org.eclipse.jgit.http.server.glue;version="6.8.1";
+Export-Package: org.eclipse.jgit.http.server;version="6.9.0",
+ org.eclipse.jgit.http.server.glue;version="6.9.0";
   uses:="javax.servlet,javax.servlet.http",
- org.eclipse.jgit.http.server.resolver;version="6.8.1";
+ org.eclipse.jgit.http.server.resolver;version="6.9.0";
   uses:="org.eclipse.jgit.transport.resolver,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.transport,
@@ -18,14 +18,14 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 Import-Package: javax.servlet;version="[2.5.0,5.0.0)",
  javax.servlet.http;version="[2.5.0,5.0.0)",
- org.eclipse.jgit.annotations;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.transport.parser;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.nls;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revwalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.resolver;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)"
+ org.eclipse.jgit.annotations;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.transport.parser;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.nls;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revwalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.resolver;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.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 741f9f2..b790009 100644
--- a/org.eclipse.jgit.http.server/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.http.server/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
 Bundle-Name: org.eclipse.jgit.http.server - Sources
 Bundle-SymbolicName: org.eclipse.jgit.http.server.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.8.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.http.server;version="6.8.1.qualifier";roots="."
+Bundle-Version: 6.9.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.http.server;version="6.9.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.http.server/pom.xml b/org.eclipse.jgit.http.server/pom.xml
index e819792..183ed8a 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.http.server</artifactId>
diff --git a/org.eclipse.jgit.http.test/.settings/org.eclipse.core.resources.prefs b/org.eclipse.jgit.http.test/.settings/org.eclipse.core.resources.prefs
index ceaec82..4e2aba5 100644
--- a/org.eclipse.jgit.http.test/.settings/org.eclipse.core.resources.prefs
+++ b/org.eclipse.jgit.http.test/.settings/org.eclipse.core.resources.prefs
@@ -1,3 +1,3 @@
-#Fri Jun 18 23:33:29 CEST 2010
-eclipse.preferences.version=1
-encoding/<project>=UTF-8
+#Fri Jun 18 23:33:29 CEST 2010
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
index e86cee8..866f225 100644
--- a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.http.test
 Bundle-SymbolicName: org.eclipse.jgit.http.test
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-11
@@ -28,26 +28,26 @@
  org.eclipse.jetty.util.log;version="[10.0.0,11.0.0)",
  org.eclipse.jetty.util.security;version="[10.0.0,11.0.0)",
  org.eclipse.jetty.util.thread;version="[10.0.0,11.0.0)",
- org.eclipse.jgit.api;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.http.server;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.http.server.glue;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.http.server.resolver;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.junit;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.junit.http;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.nls;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revwalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.http;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.http.apache;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.resolver;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)",
+ org.eclipse.jgit.api;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.http.server;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.http.server.glue;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.http.server.resolver;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.junit;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.junit.http;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.nls;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revwalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.http;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.http.apache;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.resolver;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.rules;version="[4.13,5.0.0)",
  org.junit.runner;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.http.test/pom.xml b/org.eclipse.jgit.http.test/pom.xml
index ce8c4c1..b5f2d619 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.http.test</artifactId>
diff --git a/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF b/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
index 33a37ad..e810b7a 100644
--- a/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.junit.http
 Bundle-SymbolicName: org.eclipse.jgit.junit.http
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
@@ -21,17 +21,17 @@
  org.eclipse.jetty.util.log;version="[10.0.0,11.0.0)",
  org.eclipse.jetty.util.security;version="[10.0.0,11.0.0)",
  org.eclipse.jetty.util.ssl;version="[10.0.0,11.0.0)",
- org.eclipse.jgit.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.http.server;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.junit;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revwalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.resolver;version="[6.8.1,6.9.0)",
+ org.eclipse.jgit.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.http.server;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.junit;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revwalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.resolver;version="[6.9.0,6.10.0)",
  org.junit;version="[4.13,5.0.0)",
- org.slf4j.helpers;version="[1.7.0,2.0.0)"
-Export-Package: org.eclipse.jgit.junit.http;version="6.8.1";
+ org.slf4j.helpers;version="[1.7.0,3.0.0)"
+Export-Package: org.eclipse.jgit.junit.http;version="6.9.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.junit,
    javax.servlet.http,
diff --git a/org.eclipse.jgit.junit.http/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.junit.http/META-INF/SOURCE-MANIFEST.MF
index 7d25044..baa14e1 100644
--- a/org.eclipse.jgit.junit.http/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.junit.http/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
 Bundle-Name: org.eclipse.jgit.junit.http - Sources
 Bundle-SymbolicName: org.eclipse.jgit.junit.http.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.8.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.junit.http;version="6.8.1.qualifier";roots="."
+Bundle-Version: 6.9.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.junit.http;version="6.9.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit.http/pom.xml b/org.eclipse.jgit.junit.http/pom.xml
index 63fe58d..89b43d1 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.junit.http</artifactId>
diff --git a/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF b/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
index cc6afda..fd8ea08 100644
--- a/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
@@ -3,46 +3,46 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.junit.ssh
 Bundle-SymbolicName: org.eclipse.jgit.junit.ssh
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-11
-Import-Package: org.apache.sshd.common;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.config.keys;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.file.virtualfs;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.helpers;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.io;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.kex;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.keyprovider;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.session;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.signature;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util.buffer;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util.logging;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util.security;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util.threads;version="[2.11.0,2.12.0)",
- org.apache.sshd.core;version="[2.11.0,2.12.0)",
- org.apache.sshd.server;version="[2.11.0,2.12.0)",
- org.apache.sshd.server.auth;version="[2.11.0,2.12.0)",
- org.apache.sshd.server.auth.gss;version="[2.11.0,2.12.0)",
- org.apache.sshd.server.auth.keyboard;version="[2.11.0,2.12.0)",
- org.apache.sshd.server.auth.password;version="[2.11.0,2.12.0)",
- org.apache.sshd.server.command;version="[2.11.0,2.12.0)",
- org.apache.sshd.server.session;version="[2.11.0,2.12.0)",
- org.apache.sshd.server.shell;version="[2.11.0,2.12.0)",
- org.apache.sshd.server.subsystem;version="[2.11.0,2.12.0)",
- org.apache.sshd.sftp;version="[2.11.0,2.12.0)",
- org.apache.sshd.sftp.server;version="[2.11.0,2.12.0)",
- org.eclipse.jgit.annotations;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.api;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.api.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.junit;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revwalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)",
+Import-Package: org.apache.sshd.common;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.config.keys;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.file.virtualfs;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.helpers;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.io;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.kex;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.keyprovider;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.session;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.signature;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util.buffer;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util.logging;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util.security;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util.threads;version="[2.12.0,2.13.0)",
+ org.apache.sshd.core;version="[2.12.0,2.13.0)",
+ org.apache.sshd.server;version="[2.12.0,2.13.0)",
+ org.apache.sshd.server.auth;version="[2.12.0,2.13.0)",
+ org.apache.sshd.server.auth.gss;version="[2.12.0,2.13.0)",
+ org.apache.sshd.server.auth.keyboard;version="[2.12.0,2.13.0)",
+ org.apache.sshd.server.auth.password;version="[2.12.0,2.13.0)",
+ org.apache.sshd.server.command;version="[2.12.0,2.13.0)",
+ org.apache.sshd.server.session;version="[2.12.0,2.13.0)",
+ org.apache.sshd.server.shell;version="[2.12.0,2.13.0)",
+ org.apache.sshd.server.subsystem;version="[2.12.0,2.13.0)",
+ org.apache.sshd.sftp;version="[2.12.0,2.13.0)",
+ org.apache.sshd.sftp.server;version="[2.12.0,2.13.0)",
+ org.eclipse.jgit.annotations;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.api;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.api.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.junit;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revwalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.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,2.0.0)"
-Export-Package: org.eclipse.jgit.junit.ssh;version="6.8.1"
+ org.slf4j;version="[1.7.0,3.0.0)"
+Export-Package: org.eclipse.jgit.junit.ssh;version="6.9.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 5bbf815..a62dd67 100644
--- a/org.eclipse.jgit.junit.ssh/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.junit.ssh/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
 Bundle-Name: org.eclipse.jgit.junit.ssh - Sources
 Bundle-SymbolicName: org.eclipse.jgit.junit.ssh.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.8.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.junit.ssh;version="6.8.1.qualifier";roots="."
+Bundle-Version: 6.9.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.junit.ssh;version="6.9.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit.ssh/pom.xml b/org.eclipse.jgit.junit.ssh/pom.xml
index 0b760f5..787ed06 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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 c4950f9..89d6eea 100644
--- a/org.eclipse.jgit.junit/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit/META-INF/MANIFEST.MF
@@ -3,36 +3,36 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.junit
 Bundle-SymbolicName: org.eclipse.jgit.junit
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-11
-Import-Package: org.eclipse.jgit.annotations;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.api;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.api.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.dircache;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.pack;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.util;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.merge;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revwalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport;version="6.8.1",
- org.eclipse.jgit.treewalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.treewalk.filter;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util.io;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util.time;version="[6.8.1,6.9.0)",
+Import-Package: org.eclipse.jgit.annotations;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.api;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.api.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.dircache;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.util;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.merge;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revwalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport;version="6.9.0",
+ org.eclipse.jgit.treewalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.treewalk.filter;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util.io;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util.time;version="[6.9.0,6.10.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,2.0.0)"
-Export-Package: org.eclipse.jgit.junit;version="6.8.1";
+ org.slf4j;version="[1.7.0,3.0.0)"
+Export-Package: org.eclipse.jgit.junit;version="6.9.0";
   uses:="org.eclipse.jgit.dircache,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
@@ -45,4 +45,4 @@
    org.junit.runners.model,
    org.junit.runner,
    org.eclipse.jgit.util.time",
- org.eclipse.jgit.junit.time;version="6.8.1";uses:="org.eclipse.jgit.util.time"
+ org.eclipse.jgit.junit.time;version="6.9.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 7e2bbd0..ff82611 100644
--- a/org.eclipse.jgit.junit/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.junit/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
 Bundle-Name: org.eclipse.jgit.junit - Sources
 Bundle-SymbolicName: org.eclipse.jgit.junit.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.8.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.junit;version="6.8.1.qualifier";roots="."
+Bundle-Version: 6.9.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.junit;version="6.9.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit/pom.xml b/org.eclipse.jgit.junit/pom.xml
index 606a5a6..9dbbee7 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.junit</artifactId>
diff --git a/org.eclipse.jgit.lfs.server.test/.settings/org.eclipse.core.resources.prefs b/org.eclipse.jgit.lfs.server.test/.settings/org.eclipse.core.resources.prefs
index 4824b80..99f26c0 100644
--- a/org.eclipse.jgit.lfs.server.test/.settings/org.eclipse.core.resources.prefs
+++ b/org.eclipse.jgit.lfs.server.test/.settings/org.eclipse.core.resources.prefs
@@ -1,2 +1,2 @@
-eclipse.preferences.version=1
-encoding/<project>=UTF-8
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
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 d665852..8a8635a 100644
--- a/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs.server.test
 Bundle-SymbolicName: org.eclipse.jgit.lfs.server.test
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-11
@@ -26,24 +26,24 @@
  org.eclipse.jetty.util.log;version="[10.0.0,11.0.0)",
  org.eclipse.jetty.util.security;version="[10.0.0,11.0.0)",
  org.eclipse.jetty.util.thread;version="[10.0.0,11.0.0)",
- org.eclipse.jgit.api;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.api.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.junit;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.junit.http;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs.server;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs.server.fs;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs.test;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revwalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.treewalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.treewalk.filter;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)",
+ org.eclipse.jgit.api;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.api.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.junit;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.junit.http;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs.server;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs.server.fs;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs.test;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revwalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.treewalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.treewalk.filter;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.0)",
  org.hamcrest.core;version="[1.1.0,3.0.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.rules;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.lfs.server.test/pom.xml b/org.eclipse.jgit.lfs.server.test/pom.xml
index 11e3706..83d27b5 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.lfs.server.test</artifactId>
diff --git a/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
index 5ad3cc1..feb7acd 100644
--- a/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
@@ -3,19 +3,19 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs.server
 Bundle-SymbolicName: org.eclipse.jgit.lfs.server
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.lfs.server;version="6.8.1";
+Export-Package: org.eclipse.jgit.lfs.server;version="6.9.0";
   uses:="javax.servlet.http,
    org.eclipse.jgit.lfs.lib",
- org.eclipse.jgit.lfs.server.fs;version="6.8.1";
+ org.eclipse.jgit.lfs.server.fs;version="6.9.0";
   uses:="javax.servlet,
    javax.servlet.http,
    org.eclipse.jgit.lfs.server,
    org.eclipse.jgit.lfs.lib",
- org.eclipse.jgit.lfs.server.internal;version="6.8.1";x-internal:=true,
- org.eclipse.jgit.lfs.server.s3;version="6.8.1";
+ org.eclipse.jgit.lfs.server.internal;version="6.9.0";x-internal:=true,
+ org.eclipse.jgit.lfs.server.s3;version="6.9.0";
   uses:="org.eclipse.jgit.lfs.server,
    org.eclipse.jgit.lfs.lib"
 Bundle-RequiredExecutionEnvironment: JavaSE-11
@@ -24,15 +24,15 @@
  javax.servlet.annotation;version="[3.1.0,5.0.0)",
  javax.servlet.http;version="[3.1.0,5.0.0)",
  org.apache.http;version="[4.3.0,5.0.0)",
- org.eclipse.jgit.annotations;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs.internal;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.nls;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.http;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.http.apache;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)",
- org.slf4j;version="[1.7.0,2.0.0)"
+ org.eclipse.jgit.annotations;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs.internal;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.nls;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.http;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.http.apache;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.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 03c3d46..4a84ebc 100644
--- a/org.eclipse.jgit.lfs.server/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.server/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
 Bundle-Name: org.eclipse.jgit.lfs.server - Sources
 Bundle-SymbolicName: org.eclipse.jgit.lfs.server.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.8.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.lfs.server;version="6.8.1.qualifier";roots="."
+Bundle-Version: 6.9.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.lfs.server;version="6.9.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.lfs.server/pom.xml b/org.eclipse.jgit.lfs.server/pom.xml
index f7cd017..d6d29a3 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.lfs.server</artifactId>
diff --git a/org.eclipse.jgit.lfs.test/.settings/org.eclipse.core.resources.prefs b/org.eclipse.jgit.lfs.test/.settings/org.eclipse.core.resources.prefs
index 4824b80..99f26c0 100644
--- a/org.eclipse.jgit.lfs.test/.settings/org.eclipse.core.resources.prefs
+++ b/org.eclipse.jgit.lfs.test/.settings/org.eclipse.core.resources.prefs
@@ -1,2 +1,2 @@
-eclipse.preferences.version=1
-encoding/<project>=UTF-8
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
index 939eb27..c0c0ca4 100644
--- a/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
@@ -3,27 +3,27 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs.test
 Bundle-SymbolicName: org.eclipse.jgit.lfs.test
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-11
-Import-Package: org.eclipse.jgit.api;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.attributes;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.junit;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs.internal;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revwalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.http;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.treewalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.treewalk.filter;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)",
+Import-Package: org.eclipse.jgit.api;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.attributes;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.junit;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs.internal;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revwalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.http;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.treewalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.treewalk.filter;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.0)",
  org.hamcrest.core;version="[1.1.0,3.0.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.runner;version="[4.13,5.0.0)",
  org.junit.runners;version="[4.13,5.0.0)"
-Export-Package: org.eclipse.jgit.lfs.test;version="6.8.1";x-friends:="org.eclipse.jgit.lfs.server.test"
+Export-Package: org.eclipse.jgit.lfs.test;version="6.9.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 a0d8aa1f..f3fed72 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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 4654b2d..39f6dce 100644
--- a/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
@@ -3,32 +3,32 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs
 Bundle-SymbolicName: org.eclipse.jgit.lfs
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.lfs;version="6.8.1",
- org.eclipse.jgit.lfs.errors;version="6.8.1",
- org.eclipse.jgit.lfs.internal;version="6.8.1";x-friends:="org.eclipse.jgit.lfs.test,org.eclipse.jgit.lfs.server.fs,org.eclipse.jgit.lfs.server",
- org.eclipse.jgit.lfs.lib;version="6.8.1"
+Export-Package: org.eclipse.jgit.lfs;version="6.9.0",
+ org.eclipse.jgit.lfs.errors;version="6.9.0",
+ org.eclipse.jgit.lfs.internal;version="6.9.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="6.9.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 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="[6.8.1,6.9.0)";resolution:=optional,
- org.eclipse.jgit.api.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.attributes;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.diff;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.dircache;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.hooks;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.nls;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revwalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.storage.pack;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.http;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.treewalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.treewalk.filter;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util.io;version="[6.8.1,6.9.0)"
+ org.eclipse.jgit.annotations;version="[6.9.0,6.10.0)";resolution:=optional,
+ org.eclipse.jgit.api.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.attributes;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.diff;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.dircache;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.hooks;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.nls;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revwalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.storage.pack;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.http;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.treewalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.treewalk.filter;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util.io;version="[6.9.0,6.10.0)"
diff --git a/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF
index 605b52c..6ce79e7 100644
--- a/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
 Bundle-Name: org.eclipse.jgit.lfs - Sources
 Bundle-SymbolicName: org.eclipse.jgit.lfs.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.8.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.lfs;version="6.8.1.qualifier";roots="."
+Bundle-Version: 6.9.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.lfs;version="6.9.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.lfs/pom.xml b/org.eclipse.jgit.lfs/pom.xml
index 79c36d4..c25eb59 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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 f443178..d77944a 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="6.8.1.qualifier"
+      version="6.9.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 e3030b8..35c5148 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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 b67b91e..411ac79 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="6.8.1.qualifier"
+      version="6.9.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.jgit" version="6.8.1" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="6.9.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 d5aea23..bcfba18 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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 05798c3..638c6fa 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="6.8.1.qualifier"
+      version="6.9.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.jgit" version="6.8.1" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="6.9.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 f1999d7..e60d090 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/.settings/org.eclipse.core.resources.prefs b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/.settings/org.eclipse.core.resources.prefs
index f6d7cf3..a666abd 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/.settings/org.eclipse.core.resources.prefs
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/.settings/org.eclipse.core.resources.prefs
@@ -1,3 +1,3 @@
-#Fri Jun 18 23:33:08 CEST 2010
-eclipse.preferences.version=1
-encoding/<project>=UTF-8
+#Fri Jun 18 23:33:08 CEST 2010
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/.settings/org.eclipse.core.runtime.prefs
index 039a33c..61f6762 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/.settings/org.eclipse.core.runtime.prefs
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/.settings/org.eclipse.core.runtime.prefs
@@ -1,3 +1,3 @@
-#Fri Jun 18 23:33:08 CEST 2010
-eclipse.preferences.version=1
-line.separator=\n
+#Fri Jun 18 23:33:08 CEST 2010
+eclipse.preferences.version=1
+line.separator=\n
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 321f233..a521db3 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="6.8.1.qualifier"
+      version="6.9.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="6.8.1" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="6.9.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 47cdfb8..4f0ec2f 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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 0ece0d0..73b05a0 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="6.8.1.qualifier"
+      version="6.9.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="6.8.1" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="6.9.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 725ae80..31f6a52 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/.settings/org.eclipse.core.resources.prefs b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/.settings/org.eclipse.core.resources.prefs
index 6f96ce8..14bdc2c 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/.settings/org.eclipse.core.resources.prefs
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/.settings/org.eclipse.core.resources.prefs
@@ -1,3 +1,3 @@
-#Fri Jun 18 23:33:45 CEST 2010
-eclipse.preferences.version=1
-encoding/<project>=UTF-8
+#Fri Jun 18 23:33:45 CEST 2010
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/.settings/org.eclipse.core.runtime.prefs
index 1a32dba..898252b 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/.settings/org.eclipse.core.runtime.prefs
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/.settings/org.eclipse.core.runtime.prefs
@@ -1,3 +1,3 @@
-#Fri Jun 18 23:33:45 CEST 2010
-eclipse.preferences.version=1
-line.separator=\n
+#Fri Jun 18 23:33:45 CEST 2010
+eclipse.preferences.version=1
+line.separator=\n
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 facc8af..6c32325 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="6.8.1.qualifier"
+      version="6.9.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="6.8.1" match="equivalent"/>
-      <import feature="org.eclipse.jgit.lfs" version="6.8.1" match="equivalent"/>
-      <import feature="org.eclipse.jgit.ssh.apache" version="6.8.1" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="6.9.0" match="equivalent"/>
+      <import feature="org.eclipse.jgit.lfs" version="6.9.0" match="equivalent"/>
+      <import feature="org.eclipse.jgit.ssh.apache" version="6.9.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 0474e37..6a8c7dd 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml
index 6b0febb..78c66c8 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.repository</artifactId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/.settings/org.eclipse.core.resources.prefs b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/.settings/org.eclipse.core.resources.prefs
index 6f96ce8..14bdc2c 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/.settings/org.eclipse.core.resources.prefs
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/.settings/org.eclipse.core.resources.prefs
@@ -1,3 +1,3 @@
-#Fri Jun 18 23:33:45 CEST 2010
-eclipse.preferences.version=1
-encoding/<project>=UTF-8
+#Fri Jun 18 23:33:45 CEST 2010
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/.settings/org.eclipse.core.runtime.prefs
index 1a32dba..898252b 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/.settings/org.eclipse.core.runtime.prefs
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/.settings/org.eclipse.core.runtime.prefs
@@ -1,3 +1,3 @@
-#Fri Jun 18 23:33:45 CEST 2010
-eclipse.preferences.version=1
-line.separator=\n
+#Fri Jun 18 23:33:45 CEST 2010
+eclipse.preferences.version=1
+line.separator=\n
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 f75dde9..b2f7d96 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="6.8.1.qualifier"
+      version="6.9.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="6.8.1" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="6.9.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 9ec3f88..73a2c2e 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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>6.8.1-SNAPSHOT</version>
+      <version>6.9.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 cae8d09..f9bde4a 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="6.8.1.qualifier"
+      version="6.9.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="6.8.1" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="6.9.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 323e4fd..ff009c7 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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 12e8e41..183816e 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="6.8.1.qualifier"
+      version="6.9.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.jgit" version="6.8.1" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="6.9.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 d3d8b80..3d5f958 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/META-INF/MANIFEST.MF b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/META-INF/MANIFEST.MF
deleted file mode 100644
index 7017b9e..0000000
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,5 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: JGit Target Platform Bundle
-Bundle-SymbolicName: org.eclipse.jgit.target
-Bundle-Version: 6.8.1.qualifier
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.target
index 4879c3a..cf278d8 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.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.17" sequenceNumber="1701211970">
+<target name="jgit-4.17" sequenceNumber="1708457973">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -63,13 +63,13 @@
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-osgi</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-sftp</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.10.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -89,13 +89,13 @@
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna-platform</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -105,43 +105,43 @@
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-http</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-io</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-security</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-server</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-servlet</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util-ajax</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -231,7 +231,7 @@
     	<dependency>
     		<groupId>org.assertj</groupId>
     		<artifactId>assertj-core</artifactId>
-    		<version>3.24.2</version>
+    		<version>3.25.3</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -257,7 +257,13 @@
     	<dependency>
     		<groupId>org.apache.commons</groupId>
     		<artifactId>commons-compress</artifactId>
-    		<version>1.25.0</version>
+    		<version>1.26.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>commons-io</groupId>
+    		<artifactId>commons-io</artifactId>
+    		<version>2.15.1</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.18.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.18.target
index 62b6743..c7fdb83 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.18.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.18.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.18" sequenceNumber="1701211970">
+<target name="jgit-4.18" sequenceNumber="1708457973">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -63,13 +63,13 @@
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-osgi</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-sftp</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.10.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -89,13 +89,13 @@
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna-platform</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -105,43 +105,43 @@
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-http</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-io</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-security</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-server</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-servlet</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util-ajax</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -231,7 +231,7 @@
     	<dependency>
     		<groupId>org.assertj</groupId>
     		<artifactId>assertj-core</artifactId>
-    		<version>3.24.2</version>
+    		<version>3.25.3</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -257,7 +257,13 @@
     	<dependency>
     		<groupId>org.apache.commons</groupId>
     		<artifactId>commons-compress</artifactId>
-    		<version>1.25.0</version>
+    		<version>1.26.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>commons-io</groupId>
+    		<artifactId>commons-io</artifactId>
+    		<version>2.15.1</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.target
index 269334b..b3f4165 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.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.19-staging" sequenceNumber="1701211970">
+<target name="jgit-4.19-staging" sequenceNumber="1708457973">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -63,13 +63,13 @@
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-osgi</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-sftp</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.10.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -89,13 +89,13 @@
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna-platform</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -105,43 +105,43 @@
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-http</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-io</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-security</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-server</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-servlet</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util-ajax</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -231,7 +231,7 @@
     	<dependency>
     		<groupId>org.assertj</groupId>
     		<artifactId>assertj-core</artifactId>
-    		<version>3.24.2</version>
+    		<version>3.25.3</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -257,7 +257,13 @@
     	<dependency>
     		<groupId>org.apache.commons</groupId>
     		<artifactId>commons-compress</artifactId>
-    		<version>1.25.0</version>
+    		<version>1.26.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>commons-io</groupId>
+    		<artifactId>commons-io</artifactId>
+    		<version>2.15.1</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.target
index dab00e8..55b6281 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.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.20" sequenceNumber="1701211970">
+<target name="jgit-4.20" sequenceNumber="1708457973">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -63,13 +63,13 @@
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-osgi</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-sftp</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.10.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -89,13 +89,13 @@
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna-platform</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -105,43 +105,43 @@
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-http</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-io</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-security</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-server</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-servlet</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util-ajax</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -231,7 +231,7 @@
     	<dependency>
     		<groupId>org.assertj</groupId>
     		<artifactId>assertj-core</artifactId>
-    		<version>3.24.2</version>
+    		<version>3.25.3</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -257,7 +257,13 @@
     	<dependency>
     		<groupId>org.apache.commons</groupId>
     		<artifactId>commons-compress</artifactId>
-    		<version>1.25.0</version>
+    		<version>1.26.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>commons-io</groupId>
+    		<artifactId>commons-io</artifactId>
+    		<version>2.15.1</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.target
index 2c9689f..45136a7 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.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.21" sequenceNumber="1701211970">
+<target name="jgit-4.21" sequenceNumber="1708457973">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -63,13 +63,13 @@
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-osgi</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-sftp</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.10.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -89,13 +89,13 @@
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna-platform</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -105,43 +105,43 @@
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-http</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-io</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-security</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-server</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-servlet</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util-ajax</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -231,7 +231,7 @@
     	<dependency>
     		<groupId>org.assertj</groupId>
     		<artifactId>assertj-core</artifactId>
-    		<version>3.24.2</version>
+    		<version>3.25.3</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -257,7 +257,13 @@
     	<dependency>
     		<groupId>org.apache.commons</groupId>
     		<artifactId>commons-compress</artifactId>
-    		<version>1.25.0</version>
+    		<version>1.26.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>commons-io</groupId>
+    		<artifactId>commons-io</artifactId>
+    		<version>2.15.1</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.22.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.22.target
index adf6fb1..7fe3b68 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.22.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.22.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.22" sequenceNumber="1701211970">
+<target name="jgit-4.22" sequenceNumber="1708457972">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -63,13 +63,13 @@
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-osgi</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-sftp</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.10.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -89,13 +89,13 @@
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna-platform</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -105,43 +105,43 @@
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-http</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-io</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-security</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-server</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-servlet</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util-ajax</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -231,7 +231,7 @@
     	<dependency>
     		<groupId>org.assertj</groupId>
     		<artifactId>assertj-core</artifactId>
-    		<version>3.24.2</version>
+    		<version>3.25.3</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -257,7 +257,13 @@
     	<dependency>
     		<groupId>org.apache.commons</groupId>
     		<artifactId>commons-compress</artifactId>
-    		<version>1.25.0</version>
+    		<version>1.26.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>commons-io</groupId>
+    		<artifactId>commons-io</artifactId>
+    		<version>2.15.1</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.23.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.23.target
index 5907d7f..e0786fd 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.23.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.23.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.23" sequenceNumber="1701211970">
+<target name="jgit-4.23" sequenceNumber="1708457972">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -63,13 +63,13 @@
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-osgi</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-sftp</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.10.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -89,13 +89,13 @@
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna-platform</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -105,43 +105,43 @@
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-http</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-io</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-security</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-server</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-servlet</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util-ajax</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -231,7 +231,7 @@
     	<dependency>
     		<groupId>org.assertj</groupId>
     		<artifactId>assertj-core</artifactId>
-    		<version>3.24.2</version>
+    		<version>3.25.3</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -257,7 +257,13 @@
     	<dependency>
     		<groupId>org.apache.commons</groupId>
     		<artifactId>commons-compress</artifactId>
-    		<version>1.25.0</version>
+    		<version>1.26.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>commons-io</groupId>
+    		<artifactId>commons-io</artifactId>
+    		<version>2.15.1</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.24.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.24.target
index 9df673c..4656b56 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.24.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.24.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.24" sequenceNumber="1701211970">
+<target name="jgit-4.24" sequenceNumber="1708457972">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -63,13 +63,13 @@
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-osgi</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-sftp</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.10.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -89,13 +89,13 @@
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna-platform</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -105,43 +105,43 @@
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-http</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-io</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-security</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-server</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-servlet</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util-ajax</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -231,7 +231,7 @@
     	<dependency>
     		<groupId>org.assertj</groupId>
     		<artifactId>assertj-core</artifactId>
-    		<version>3.24.2</version>
+    		<version>3.25.3</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -257,7 +257,13 @@
     	<dependency>
     		<groupId>org.apache.commons</groupId>
     		<artifactId>commons-compress</artifactId>
-    		<version>1.25.0</version>
+    		<version>1.26.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>commons-io</groupId>
+    		<artifactId>commons-io</artifactId>
+    		<version>2.15.1</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.25.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.25.target
index d9c55b6..efa79b3 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.25.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.25.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.25" sequenceNumber="1701211970">
+<target name="jgit-4.25" sequenceNumber="1708457972">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -63,13 +63,13 @@
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-osgi</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-sftp</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.10.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -89,13 +89,13 @@
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna-platform</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -105,43 +105,43 @@
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-http</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-io</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-security</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-server</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-servlet</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util-ajax</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -231,7 +231,7 @@
     	<dependency>
     		<groupId>org.assertj</groupId>
     		<artifactId>assertj-core</artifactId>
-    		<version>3.24.2</version>
+    		<version>3.25.3</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -257,7 +257,13 @@
     	<dependency>
     		<groupId>org.apache.commons</groupId>
     		<artifactId>commons-compress</artifactId>
-    		<version>1.25.0</version>
+    		<version>1.26.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>commons-io</groupId>
+    		<artifactId>commons-io</artifactId>
+    		<version>2.15.1</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.26.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.26.target
index 02fa46f..a432bbb 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.26.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.26.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.26" sequenceNumber="1701211970">
+<target name="jgit-4.26" sequenceNumber="1708457970">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -63,13 +63,13 @@
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-osgi</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-sftp</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.10.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -89,13 +89,13 @@
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna-platform</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -105,43 +105,43 @@
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-http</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-io</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-security</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-server</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-servlet</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util-ajax</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -231,7 +231,7 @@
     	<dependency>
     		<groupId>org.assertj</groupId>
     		<artifactId>assertj-core</artifactId>
-    		<version>3.24.2</version>
+    		<version>3.25.3</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -257,7 +257,13 @@
     	<dependency>
     		<groupId>org.apache.commons</groupId>
     		<artifactId>commons-compress</artifactId>
-    		<version>1.25.0</version>
+    		<version>1.26.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>commons-io</groupId>
+    		<artifactId>commons-io</artifactId>
+    		<version>2.15.1</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.27.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.27.target
index 3579da4..4b91238 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.27.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.27.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.27" sequenceNumber="1701211970">
+<target name="jgit-4.27" sequenceNumber="1708457970">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -63,13 +63,13 @@
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-osgi</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-sftp</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.10.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -89,13 +89,13 @@
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna-platform</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -105,43 +105,43 @@
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-http</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-io</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-security</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-server</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-servlet</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util-ajax</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -231,7 +231,7 @@
     	<dependency>
     		<groupId>org.assertj</groupId>
     		<artifactId>assertj-core</artifactId>
-    		<version>3.24.2</version>
+    		<version>3.25.3</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -257,7 +257,13 @@
     	<dependency>
     		<groupId>org.apache.commons</groupId>
     		<artifactId>commons-compress</artifactId>
-    		<version>1.25.0</version>
+    		<version>1.26.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>commons-io</groupId>
+    		<artifactId>commons-io</artifactId>
+    		<version>2.15.1</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.28.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.28.target
index 1900424..7dc8dd8 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.28.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.28.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.28" sequenceNumber="1701211970">
+<target name="jgit-4.28" sequenceNumber="1708457970">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -63,13 +63,13 @@
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-osgi</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-sftp</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.10.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -89,13 +89,13 @@
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna-platform</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -105,43 +105,43 @@
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-http</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-io</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-security</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-server</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-servlet</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util-ajax</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -231,7 +231,7 @@
     	<dependency>
     		<groupId>org.assertj</groupId>
     		<artifactId>assertj-core</artifactId>
-    		<version>3.24.2</version>
+    		<version>3.25.3</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -257,7 +257,13 @@
     	<dependency>
     		<groupId>org.apache.commons</groupId>
     		<artifactId>commons-compress</artifactId>
-    		<version>1.25.0</version>
+    		<version>1.26.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>commons-io</groupId>
+    		<artifactId>commons-io</artifactId>
+    		<version>2.15.1</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.29.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.29.target
index 8c7c1ac..d86ea28 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.29.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.29.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.29" sequenceNumber="1701211970">
+<target name="jgit-4.29" sequenceNumber="1708457970">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -63,13 +63,13 @@
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-osgi</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-sftp</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.10.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -89,13 +89,13 @@
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna-platform</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -105,43 +105,43 @@
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-http</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-io</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-security</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-server</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-servlet</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util-ajax</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -231,7 +231,7 @@
     	<dependency>
     		<groupId>org.assertj</groupId>
     		<artifactId>assertj-core</artifactId>
-    		<version>3.24.2</version>
+    		<version>3.25.3</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -257,7 +257,13 @@
     	<dependency>
     		<groupId>org.apache.commons</groupId>
     		<artifactId>commons-compress</artifactId>
-    		<version>1.25.0</version>
+    		<version>1.26.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>commons-io</groupId>
+    		<artifactId>commons-io</artifactId>
+    		<version>2.15.1</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.30.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.30.target
index 8fbc567..afd4d32 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.30.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.30.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.30" sequenceNumber="1701211970">
+<target name="jgit-4.30" sequenceNumber="1708457970">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -63,13 +63,13 @@
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-osgi</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.apache.sshd</groupId>
     		<artifactId>sshd-sftp</artifactId>
-    		<version>2.11.0</version>
+    		<version>2.12.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.10.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -89,13 +89,13 @@
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.java.dev.jna</groupId>
     		<artifactId>jna-platform</artifactId>
-    		<version>5.13.0</version>
+    		<version>5.14.0</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -105,43 +105,43 @@
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-http</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-io</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-security</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-server</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-servlet</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>org.eclipse.jetty</groupId>
     		<artifactId>jetty-util-ajax</artifactId>
-    		<version>10.0.18</version>
+    		<version>10.0.20</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.12</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -231,7 +231,7 @@
     	<dependency>
     		<groupId>org.assertj</groupId>
     		<artifactId>assertj-core</artifactId>
-    		<version>3.24.2</version>
+    		<version>3.25.3</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
@@ -257,7 +257,13 @@
     	<dependency>
     		<groupId>org.apache.commons</groupId>
     		<artifactId>commons-compress</artifactId>
-    		<version>1.25.0</version>
+    		<version>1.26.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>commons-io</groupId>
+    		<artifactId>commons-io</artifactId>
+    		<version>2.15.1</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.31.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.31.target
new file mode 100644
index 0000000..d95197a
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.31.target
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde?>
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="jgit-4.31" sequenceNumber="1708457970">
+  <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="net.i2p.crypto.eddsa" version="0.3.0"/>
+      <unit id="net.i2p.crypto.eddsa.source" version="0.3.0"/>
+      <unit id="org.apache.ant" version="1.10.14.v20230922-1200"/>
+      <unit id="org.apache.ant.source" version="1.10.14.v20230922-1200"/>
+      <unit id="org.apache.httpcomponents.httpclient" version="4.5.14"/>
+      <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14"/>
+      <unit id="org.apache.httpcomponents.httpcore" version="4.4.16"/>
+      <unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16"/>
+      <unit id="org.hamcrest.core" version="1.3.0.v20230809-1000"/>
+      <unit id="org.hamcrest.core.source" version="1.3.0.v20230809-1000"/>
+      <unit id="org.hamcrest.library" version="1.3.0.v20230809-1000"/>
+      <unit id="org.hamcrest.library.source" version="1.3.0.v20230809-1000"/>
+      <unit id="org.junit" version="4.13.2.v20230809-1000"/>
+      <unit id="org.junit.source" version="4.13.2.v20230809-1000"/>
+      <unit id="org.objenesis" version="3.3.0"/>
+      <unit id="org.objenesis.source" version="3.3.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/2023-12"/>
+    </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/2024-03/"/>
+    </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.9</version>
+    		<type>jar</type>
+    	</dependency>
+    </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="slf4j">
+    <dependencies>
+    	<dependency>
+    		<groupId>org.slf4j</groupId>
+    		<artifactId>slf4j-api</artifactId>
+    		<version>1.7.36</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.slf4j</groupId>
+    		<artifactId>slf4j-simple</artifactId>
+    		<version>1.7.36</version>
+    		<type>jar</type>
+    	</dependency>
+    </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="sshd">
+    <dependencies>
+    	<dependency>
+    		<groupId>org.apache.sshd</groupId>
+    		<artifactId>sshd-osgi</artifactId>
+    		<version>2.12.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.apache.sshd</groupId>
+    		<artifactId>sshd-sftp</artifactId>
+    		<version>2.12.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.10.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.14.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>net.java.dev.jna</groupId>
+    		<artifactId>jna-platform</artifactId>
+    		<version>5.14.0</version>
+    		<type>jar</type>
+    	</dependency>
+    </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jetty">
+    <dependencies>
+    	<dependency>
+    		<groupId>org.eclipse.jetty</groupId>
+    		<artifactId>jetty-http</artifactId>
+    		<version>10.0.20</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.eclipse.jetty</groupId>
+    		<artifactId>jetty-io</artifactId>
+    		<version>10.0.20</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.eclipse.jetty</groupId>
+    		<artifactId>jetty-security</artifactId>
+    		<version>10.0.20</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.eclipse.jetty</groupId>
+    		<artifactId>jetty-server</artifactId>
+    		<version>10.0.20</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.eclipse.jetty</groupId>
+    		<artifactId>jetty-servlet</artifactId>
+    		<version>10.0.20</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.eclipse.jetty</groupId>
+    		<artifactId>jetty-util</artifactId>
+    		<version>10.0.20</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.eclipse.jetty</groupId>
+    		<artifactId>jetty-util-ajax</artifactId>
+    		<version>10.0.20</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>jakarta.servlet</groupId>
+    		<artifactId>jakarta.servlet-api</artifactId>
+    		<version>4.0.4</version>
+    		<type>jar</type>
+    	</dependency>
+    </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="javaewah">
+    <dependencies>
+    	<dependency>
+    		<groupId>com.googlecode.javaewah</groupId>
+    		<artifactId>JavaEWAH</artifactId>
+    		<version>1.2.3</version>
+    		<type>jar</type>
+    	</dependency>
+    </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="hamcrest">
+    <dependencies>
+    	<dependency>
+    		<groupId>org.hamcrest</groupId>
+    		<artifactId>hamcrest</artifactId>
+    		<version>2.2</version>
+    		<type>jar</type>
+    	</dependency>
+    </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="gson">
+    <dependencies>
+    	<dependency>
+    		<groupId>com.google.code.gson</groupId>
+    		<artifactId>gson</artifactId>
+    		<version>2.10.1</version>
+    		<type>jar</type>
+    	</dependency>
+    </dependencies>
+    </location>
+    <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bytebuddy">
+    <dependencies>
+    	<dependency>
+    		<groupId>net.bytebuddy</groupId>
+    		<artifactId>byte-buddy</artifactId>
+    		<version>1.14.12</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>net.bytebuddy</groupId>
+    		<artifactId>byte-buddy-agent</artifactId>
+    		<version>1.14.12</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.77</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.bouncycastle</groupId>
+    		<artifactId>bcprov-jdk18on</artifactId>
+    		<version>1.77</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.bouncycastle</groupId>
+    		<artifactId>bcpkix-jdk18on</artifactId>
+    		<version>1.77</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.bouncycastle</groupId>
+    		<artifactId>bcutil-jdk18on</artifactId>
+    		<version>1.77</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.25.3</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.33</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.16.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.apache.commons</groupId>
+    		<artifactId>commons-compress</artifactId>
+    		<version>1.26.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>commons-io</groupId>
+    		<artifactId>commons-io</artifactId>
+    		<version>2.15.1</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>commons-logging</groupId>
+    		<artifactId>commons-logging</artifactId>
+    		<version>1.2</version>
+    		<type>jar</type>
+    	</dependency>
+    </dependencies>
+    </location>
+  </locations>
+</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.31.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.31.tpd
new file mode 100644
index 0000000..58491c8
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.31.tpd
@@ -0,0 +1,8 @@
+target "jgit-4.31" with source configurePhase
+
+include "orbit/orbit-4.31.tpd"
+include "maven/dependencies.tpd"
+
+location "https://download.eclipse.org/staging/2024-03/" {
+	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 10d707f..8347389 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
@@ -15,7 +15,12 @@
 	dependency {
 		groupId = "org.apache.commons"
 		artifactId = "commons-compress"
-		version = "1.25.0"
+		version = "1.26.0"
+	}
+	dependency {
+		groupId = "commons-io"
+		artifactId = "commons-io"
+		version = "2.15.1"
 	}
 	dependency {
 		groupId = "commons-logging"
@@ -46,7 +51,7 @@
 	dependency {
 		groupId = "org.assertj"
 		artifactId = "assertj-core"
-		version = "3.24.2"
+		version = "3.25.3"
 	}
 }
 
@@ -87,12 +92,12 @@
 	dependency {
 		groupId = "net.bytebuddy"
 		artifactId = "byte-buddy"
-		version = "1.14.9"
+		version = "1.14.12"
 	}
 	dependency {
 		groupId = "net.bytebuddy"
 		artifactId = "byte-buddy-agent"
-		version = "1.14.9"
+		version = "1.14.12"
 	}
 }
 
@@ -144,37 +149,37 @@
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-http"
-		version = "10.0.18"
+		version = "10.0.20"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-io"
-		version = "10.0.18"
+		version = "10.0.20"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-security"
-		version = "10.0.18"
+		version = "10.0.20"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-server"
-		version = "10.0.18"
+		version = "10.0.20"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-servlet"
-		version = "10.0.18"
+		version = "10.0.20"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-util"
-		version = "10.0.18"
+		version = "10.0.20"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-util-ajax"
-		version = "10.0.18"
+		version = "10.0.20"
 	}
 	dependency {
 		groupId = "jakarta.servlet"
@@ -192,12 +197,12 @@
 	dependency {
 		groupId = "net.java.dev.jna"
 		artifactId = "jna"
-		version = "5.13.0"
+		version = "5.14.0"
 	}
 	dependency {
 		groupId = "net.java.dev.jna"
 		artifactId = "jna-platform"
-		version = "5.13.0"
+		version = "5.14.0"
 	}
 }
 
@@ -210,7 +215,7 @@
 	dependency {
 		groupId = "org.mockito"
 		artifactId = "mockito-core"
-		version = "5.7.0"
+		version = "5.10.0"
 	}
 }
 
@@ -223,12 +228,12 @@
 	dependency {
 		groupId = "org.apache.sshd"
 		artifactId = "sshd-osgi"
-		version = "2.11.0"
+		version = "2.12.0"
 	}
 	dependency {
 		groupId = "org.apache.sshd"
 		artifactId = "sshd-sftp"
-		version = "2.11.0"
+		version = "2.12.0"
 	}
 }
 
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/orbit-4.31.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/orbit-4.31.tpd
new file mode 100644
index 0000000..0554a85
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/orbit-4.31.tpd
@@ -0,0 +1,27 @@
+target "orbit-4.30" with source configurePhase
+// see https://download.eclipse.org/tools/orbit/downloads/
+
+location "https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2023-12" {
+	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]
+	net.i2p.crypto.eddsa [0.3.0,0.3.0]
+	net.i2p.crypto.eddsa.source [0.3.0,0.3.0]
+	org.apache.ant [1.10.14.v20230922-1200,1.10.14.v20230922-1200]
+	org.apache.ant.source [1.10.14.v20230922-1200,1.10.14.v20230922-1200]
+	org.apache.httpcomponents.httpclient [4.5.14,4.5.14]
+	org.apache.httpcomponents.httpclient.source [4.5.14,4.5.14]
+	org.apache.httpcomponents.httpcore [4.4.16,4.4.16]
+	org.apache.httpcomponents.httpcore.source [4.4.16,4.4.16]
+	org.hamcrest.core [1.3.0.v20230809-1000,1.3.0.v20230809-1000]
+	org.hamcrest.core.source [1.3.0.v20230809-1000,1.3.0.v20230809-1000]
+	org.hamcrest.library [1.3.0.v20230809-1000,1.3.0.v20230809-1000]
+	org.hamcrest.library.source [1.3.0.v20230809-1000,1.3.0.v20230809-1000]
+	org.junit [4.13.2.v20230809-1000,4.13.2.v20230809-1000]
+	org.junit.source [4.13.2.v20230809-1000,4.13.2.v20230809-1000]
+	org.objenesis [3.3,3.3]
+	org.objenesis.source [3.3,3.3]
+	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/org.eclipse.jgit.target/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml
deleted file mode 100644
index 4e2d990..0000000
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (C) 2013, Matthias Sohn <matthias.sohn@sap.com> 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
-  http://www.eclipse.org/org/documents/edl-v10.php.
-
-  SPDX-License-Identifier: BSD-3-Clause
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.jgit</groupId>
-    <artifactId>jgit.tycho.parent</artifactId>
-    <version>6.8.1-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>org.eclipse.jgit.target</artifactId>
-  <packaging>pom</packaging>
-  <name>JGit Target Platform</name>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.jgit.packaging/pom.xml b/org.eclipse.jgit.packaging/pom.xml
index 2e45e40..84b42e9 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>6.8.1-SNAPSHOT</version>
+  <version>6.9.0-SNAPSHOT</version>
   <packaging>pom</packaging>
 
   <name>JGit Tycho Parent</name>
@@ -30,7 +30,7 @@
 
   <properties>
     <java.version>11</java.version>
-    <tycho-version>4.0.2</tycho-version>
+    <tycho-version>4.0.6</tycho-version>
     <target-platform>jgit-4.17</target-platform>
     <project.build.outputTimestamp>${git.commit.time}</project.build.outputTimestamp>
   </properties>
@@ -43,7 +43,6 @@
   </pluginRepositories>
 
   <modules>
-    <module>org.eclipse.jgit.target</module>
     <module>org.eclipse.jgit.feature</module>
     <module>org.eclipse.jgit.gpg.bc.feature</module>
     <module>org.eclipse.jgit.http.apache.feature</module>
@@ -175,7 +174,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-enforcer-plugin</artifactId>
-        <version>3.3.0</version>
+        <version>3.4.1</version>
         <executions>
           <execution>
             <id>enforce-maven</id>
@@ -201,15 +200,11 @@
       <plugin>
         <groupId>org.eclipse.tycho</groupId>
         <artifactId>target-platform-configuration</artifactId>
-        <version>${tycho-version}</version>
-        <configuration>
-          <resolver>p2</resolver>
-        </configuration>
       </plugin>
       <plugin>
         <groupId>org.cyclonedx</groupId>
         <artifactId>cyclonedx-maven-plugin</artifactId>
-        <version>2.7.9</version>
+        <version>2.7.11</version>
         <configuration>
           <projectType>library</projectType>
           <schemaVersion>1.4</schemaVersion>
@@ -238,7 +233,7 @@
       <plugin>
         <groupId>io.github.git-commit-id</groupId>
         <artifactId>git-commit-id-maven-plugin</artifactId>
-        <version>6.0.0</version>
+        <version>7.0.0</version>
         <executions>
           <execution>
             <id>get-the-git-infos</id>
@@ -304,7 +299,6 @@
           <artifactId>target-platform-configuration</artifactId>
           <version>${tycho-version}</version>
           <configuration>
-            <resolver>p2</resolver>
             <pomDependencies>consider</pomDependencies>
             <target>
               <file>${project.basedir}/../org.eclipse.jgit.target/${target-platform}.target</file>
@@ -387,16 +381,16 @@
         <plugin>
           <groupId>org.eclipse.cbi.maven.plugins</groupId>
           <artifactId>eclipse-jarsigner-plugin</artifactId>
-          <version>1.4.2</version>
+          <version>1.4.3</version>
         </plugin>
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
           <artifactId>build-helper-maven-plugin</artifactId>
-          <version>3.3.0</version>
+          <version>3.5.0</version>
         </plugin>
         <plugin>
           <artifactId>maven-clean-plugin</artifactId>
-          <version>3.2.0</version>
+          <version>3.3.2</version>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
@@ -411,7 +405,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-site-plugin</artifactId>
-          <version>3.12.1</version>
+          <version>4.0.0-M13</version>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
@@ -434,9 +428,6 @@
           <plugin>
             <groupId>org.eclipse.tycho</groupId>
             <artifactId>target-platform-configuration</artifactId>
-            <configuration>
-              <includePackedArtifacts>true</includePackedArtifacts>
-            </configuration>
           </plugin>
           <plugin>
             <groupId>org.eclipse.cbi.maven.plugins</groupId>
@@ -477,9 +468,6 @@
           <plugin>
             <groupId>org.eclipse.tycho</groupId>
             <artifactId>target-platform-configuration</artifactId>
-            <configuration>
-              <includePackedArtifacts>true</includePackedArtifacts>
-            </configuration>
           </plugin>
           <plugin>
             <groupId>org.eclipse.tycho</groupId>
diff --git a/org.eclipse.jgit.pgm.test/BUILD b/org.eclipse.jgit.pgm.test/BUILD
index 539d666..b8ffa69 100644
--- a/org.eclipse.jgit.pgm.test/BUILD
+++ b/org.eclipse.jgit.pgm.test/BUILD
@@ -15,6 +15,7 @@
     deps = [
         ":helpers",
         "//lib:args4j",
+        "//lib:commons-io",
         "//lib:commons-compress",
         "//lib:javaewah",
         "//lib:junit",
diff --git a/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
index 94c650a..7c633ff 100644
--- a/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
@@ -3,30 +3,30 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.pgm.test
 Bundle-SymbolicName: org.eclipse.jgit.pgm.test
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-11
-Import-Package: org.eclipse.jgit.api;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.api.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.diff;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.dircache;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.diffmergetool;version="6.8.1",
- org.eclipse.jgit.internal.storage.file;version="6.8.1",
- org.eclipse.jgit.junit;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib.internal;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.merge;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.pgm;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.pgm.internal;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.pgm.opt;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revwalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.treewalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util.io;version="[6.8.1,6.9.0)",
+Import-Package: org.eclipse.jgit.api;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.api.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.diff;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.dircache;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.diffmergetool;version="6.9.0",
+ org.eclipse.jgit.internal.storage.file;version="6.9.0",
+ org.eclipse.jgit.junit;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib.internal;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.merge;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.pgm;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.pgm.internal;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.pgm.opt;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revwalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.treewalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util.io;version="[6.9.0,6.10.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 c51d553..daded12 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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 cc07eb4..b89be19 100644
--- a/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.pgm
 Bundle-SymbolicName: org.eclipse.jgit.pgm
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-11
@@ -14,49 +14,49 @@
  org.eclipse.jetty.servlet;version="[10.0.0,11.0.0)",
  org.eclipse.jetty.util;version="[10.0.0,11.0.0)",
  org.eclipse.jetty.util.component;version="[10.0.0,11.0.0)",
- org.eclipse.jgit.api;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.api.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.archive;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.awtui;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.blame;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.diff;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.dircache;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.gitrepo;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.diffmergetool;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.io;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.pack;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs.server;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs.server.fs;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs.server.s3;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.merge;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib.internal;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.nls;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.notes;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revplot;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revwalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revwalk.filter;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.storage.pack;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.http.apache;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.resolver;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.ssh.jsch;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.sshd;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.treewalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.treewalk.filter;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util.io;version="[6.8.1,6.9.0)",
+ org.eclipse.jgit.api;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.api.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.archive;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.awtui;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.blame;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.diff;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.dircache;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.gitrepo;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.diffmergetool;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.io;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs.server;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs.server.fs;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs.server.s3;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.merge;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib.internal;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.nls;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.notes;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revplot;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revwalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revwalk.filter;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.storage.pack;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.http.apache;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.resolver;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.ssh.jsch;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.sshd;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.treewalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.treewalk.filter;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util.io;version="[6.9.0,6.10.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="6.8.1";
+Export-Package: org.eclipse.jgit.console;version="6.9.0";
  uses:="org.eclipse.jgit.transport,
   org.eclipse.jgit.util",
- org.eclipse.jgit.pgm;version="6.8.1";
+ org.eclipse.jgit.pgm;version="6.9.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.util.io,
    org.eclipse.jgit.awtui,
@@ -68,14 +68,14 @@
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.api,
    javax.swing",
- org.eclipse.jgit.pgm.debug;version="6.8.1";
+ org.eclipse.jgit.pgm.debug;version="6.9.0";
   uses:="org.eclipse.jgit.util.io,
    org.eclipse.jgit.pgm,
    org.eclipse.jetty.servlet",
- org.eclipse.jgit.pgm.internal;version="6.8.1";
+ org.eclipse.jgit.pgm.internal;version="6.9.0";
   x-friends:="org.eclipse.jgit.pgm.test,
    org.eclipse.jgit.test",
- org.eclipse.jgit.pgm.opt;version="6.8.1";
+ org.eclipse.jgit.pgm.opt;version="6.9.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 8a44aec..3a6af12 100644
--- a/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
 Bundle-Name: org.eclipse.jgit.pgm - Sources
 Bundle-SymbolicName: org.eclipse.jgit.pgm.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.8.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.pgm;version="6.8.1.qualifier";roots="."
+Bundle-Version: 6.9.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.pgm;version="6.9.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.pgm/pom.xml b/org.eclipse.jgit.pgm/pom.xml
index 26b9d2a..409b451 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.pgm</artifactId>
diff --git a/org.eclipse.jgit.ssh.apache.agent/META-INF/MANIFEST.MF b/org.eclipse.jgit.ssh.apache.agent/META-INF/MANIFEST.MF
index 1bb957e..bf4e820 100644
--- a/org.eclipse.jgit.ssh.apache.agent/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache.agent/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.agent;singleton:=true
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/agent
 Bundle-Vendor: %Bundle-Vendor
-Fragment-Host: org.eclipse.jgit.ssh.apache;bundle-version="[6.8.1,6.9.0)"
+Fragment-Host: org.eclipse.jgit.ssh.apache;bundle-version="[6.9.0,6.10.0)"
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.jgit.ssh.apache.agent
 Bundle-RequiredExecutionEnvironment: JavaSE-11
-Import-Package: org.eclipse.jgit.transport.sshd;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.nls;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)"
+Import-Package: org.eclipse.jgit.transport.sshd;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.nls;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.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="6.8.1";x-internal:=true
+Export-Package: org.eclipse.jgit.internal.transport.sshd.agent.connector;version="6.9.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 5f4ea13..3ce2c02 100644
--- a/org.eclipse.jgit.ssh.apache.agent/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache.agent/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
 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: 6.8.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache.agent;version="6.8.1.qualifier";roots="."
+Bundle-Version: 6.9.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache.agent;version="6.9.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.apache.agent/pom.xml b/org.eclipse.jgit.ssh.apache.agent/pom.xml
index b08523f..4b61c65 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ssh.apache.agent</artifactId>
diff --git a/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
index e9e5793..6620408 100644
--- a/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
@@ -3,35 +3,35 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ssh.apache.test
 Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.test
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 Require-Bundle: org.hamcrest.core;bundle-version="[1.3.0,2.0.0)"
-Import-Package: org.apache.sshd.client.config.hosts;version="[2.11.0,2.12.0)",
- org.apache.sshd.common;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.auth;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.config.keys;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.helpers;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.kex;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.keyprovider;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.session;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.signature;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util.net;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util.security;version="[2.11.0,2.12.0)",
- org.apache.sshd.core;version="[2.11.0,2.12.0)",
- org.apache.sshd.server;version="[2.11.0,2.12.0)",
- org.apache.sshd.server.forward;version="[2.11.0,2.12.0)",
- org.eclipse.jgit.api;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.api.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.transport.sshd.proxy;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.junit;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.junit.ssh;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.sshd;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.sshd.agent;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)",
+Import-Package: org.apache.sshd.client.config.hosts;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.auth;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.config.keys;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.helpers;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.kex;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.keyprovider;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.session;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.signature;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util.net;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util.security;version="[2.12.0,2.13.0)",
+ org.apache.sshd.core;version="[2.12.0,2.13.0)",
+ org.apache.sshd.server;version="[2.12.0,2.13.0)",
+ org.apache.sshd.server.forward;version="[2.12.0,2.13.0)",
+ org.eclipse.jgit.api;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.api.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.transport.sshd.proxy;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.junit;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.junit.ssh;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.sshd;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.sshd.agent;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.experimental.theories;version="[4.13,5.0.0)",
  org.junit.runner;version="[4.13,5.0.0)"
diff --git a/org.eclipse.jgit.ssh.apache.test/pom.xml b/org.eclipse.jgit.ssh.apache.test/pom.xml
index 14b5160..ec63833 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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 98bc78e..d95c7ed 100644
--- a/org.eclipse.jgit.ssh.apache/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache/META-INF/MANIFEST.MF
@@ -6,9 +6,9 @@
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-ActivationPolicy: lazy
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-11
-Export-Package: org.eclipse.jgit.internal.transport.sshd;version="6.8.1";x-internal:=true;
+Export-Package: org.eclipse.jgit.internal.transport.sshd;version="6.9.0";x-internal:=true;
   uses:="org.apache.sshd.client,
    org.apache.sshd.client.auth,
    org.apache.sshd.client.auth.keyboard,
@@ -23,77 +23,77 @@
    org.apache.sshd.common.signature,
    org.apache.sshd.common.util.buffer,
    org.eclipse.jgit.transport",
- org.eclipse.jgit.internal.transport.sshd.agent;version="6.8.1";x-internal:=true,
- org.eclipse.jgit.internal.transport.sshd.auth;version="6.8.1";x-internal:=true,
- org.eclipse.jgit.internal.transport.sshd.pkcs11;version="6.8.1";x-internal:=true,
- org.eclipse.jgit.internal.transport.sshd.proxy;version="6.8.1";x-friends:="org.eclipse.jgit.ssh.apache.test",
- org.eclipse.jgit.transport.sshd;version="6.8.1";
+ org.eclipse.jgit.internal.transport.sshd.agent;version="6.9.0";x-internal:=true,
+ org.eclipse.jgit.internal.transport.sshd.auth;version="6.9.0";x-internal:=true,
+ org.eclipse.jgit.internal.transport.sshd.pkcs11;version="6.9.0";x-internal:=true,
+ org.eclipse.jgit.internal.transport.sshd.proxy;version="6.9.0";x-friends:="org.eclipse.jgit.ssh.apache.test",
+ org.eclipse.jgit.transport.sshd;version="6.9.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="6.8.1",
+ org.eclipse.jgit.transport.sshd.agent;version="6.9.0",
  sun.security.x509
 Import-Package: net.i2p.crypto.eddsa;version="[0.3.0,0.4.0)",
- org.apache.sshd.agent;version="[2.11.0,2.12.0)",
- org.apache.sshd.client;version="[2.11.0,2.12.0)",
- org.apache.sshd.client.auth;version="[2.11.0,2.12.0)",
- org.apache.sshd.client.auth.keyboard;version="[2.11.0,2.12.0)",
- org.apache.sshd.client.auth.password;version="[2.11.0,2.12.0)",
- org.apache.sshd.client.auth.pubkey;version="[2.11.0,2.12.0)",
- org.apache.sshd.client.channel;version="[2.11.0,2.12.0)",
- org.apache.sshd.client.config.hosts;version="[2.11.0,2.12.0)",
- org.apache.sshd.client.config.keys;version="[2.11.0,2.12.0)",
- org.apache.sshd.client.future;version="[2.11.0,2.12.0)",
- org.apache.sshd.client.keyverifier;version="[2.11.0,2.12.0)",
- org.apache.sshd.client.session;version="[2.11.0,2.12.0)",
- org.apache.sshd.client.session.forward;version="[2.11.0,2.12.0)",
- org.apache.sshd.common;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.auth;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.channel;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.compression;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.config.keys;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.config.keys.loader;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.config.keys.loader.openssh.kdf;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.config.keys.u2f;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.digest;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.forward;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.future;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.helpers;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.io;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.kex;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.kex.extension;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.kex.extension.parser;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.keyprovider;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.mac;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.random;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.session;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.session.helpers;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.signature;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util.buffer;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util.buffer.keys;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util.closeable;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util.io;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util.io.der;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util.io.functors;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util.io.resource;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util.logging;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util.net;version="[2.11.0,2.12.0)",
- org.apache.sshd.common.util.security;version="[2.11.0,2.12.0)",
- org.apache.sshd.core;version="[2.11.0,2.12.0)",
- org.apache.sshd.server.auth;version="[2.11.0,2.12.0)",
- org.apache.sshd.sftp;version="[2.11.0,2.12.0)",
- org.apache.sshd.sftp.client;version="[2.11.0,2.12.0)",
- org.apache.sshd.sftp.common;version="[2.11.0,2.12.0)",
- org.eclipse.jgit.annotations;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.fnmatch;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.nls;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)",
- org.slf4j;version="[1.7.0,2.0.0)"
+ org.apache.sshd.agent;version="[2.12.0,2.13.0)",
+ org.apache.sshd.client;version="[2.12.0,2.13.0)",
+ org.apache.sshd.client.auth;version="[2.12.0,2.13.0)",
+ org.apache.sshd.client.auth.keyboard;version="[2.12.0,2.13.0)",
+ org.apache.sshd.client.auth.password;version="[2.12.0,2.13.0)",
+ org.apache.sshd.client.auth.pubkey;version="[2.12.0,2.13.0)",
+ org.apache.sshd.client.channel;version="[2.12.0,2.13.0)",
+ org.apache.sshd.client.config.hosts;version="[2.12.0,2.13.0)",
+ org.apache.sshd.client.config.keys;version="[2.12.0,2.13.0)",
+ org.apache.sshd.client.future;version="[2.12.0,2.13.0)",
+ org.apache.sshd.client.keyverifier;version="[2.12.0,2.13.0)",
+ org.apache.sshd.client.session;version="[2.12.0,2.13.0)",
+ org.apache.sshd.client.session.forward;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.auth;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.channel;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.compression;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.config.keys;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.config.keys.loader;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.config.keys.loader.openssh.kdf;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.config.keys.u2f;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.digest;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.forward;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.future;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.helpers;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.io;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.kex;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.kex.extension;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.kex.extension.parser;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.keyprovider;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.mac;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.random;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.session;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.session.helpers;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.signature;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util.buffer;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util.buffer.keys;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util.closeable;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util.io;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util.io.der;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util.io.functors;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util.io.resource;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util.logging;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util.net;version="[2.12.0,2.13.0)",
+ org.apache.sshd.common.util.security;version="[2.12.0,2.13.0)",
+ org.apache.sshd.core;version="[2.12.0,2.13.0)",
+ org.apache.sshd.server.auth;version="[2.12.0,2.13.0)",
+ org.apache.sshd.sftp;version="[2.12.0,2.13.0)",
+ org.apache.sshd.sftp.client;version="[2.12.0,2.13.0)",
+ org.apache.sshd.sftp.common;version="[2.12.0,2.13.0)",
+ org.eclipse.jgit.annotations;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.fnmatch;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.nls;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.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 3573437..2a40968 100644
--- a/org.eclipse.jgit.ssh.apache/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
 Bundle-Name: org.eclipse.jgit.ssh.apache - Sources
 Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.8.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache;version="6.8.1.qualifier";roots="."
+Bundle-Version: 6.9.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache;version="6.9.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.apache/pom.xml b/org.eclipse.jgit.ssh.apache/pom.xml
index 58144f4..f194cc3 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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 582d5e6..b716f64 100644
--- a/org.eclipse.jgit.ssh.jsch.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.jsch.test/META-INF/MANIFEST.MF
@@ -3,19 +3,19 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ssh.jsch.test
 Bundle-SymbolicName: org.eclipse.jgit.ssh.jsch.test
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 Require-Bundle: org.hamcrest.core;bundle-version="[1.3.0,2.0.0)"
 Import-Package: com.jcraft.jsch;version="[0.1.54,0.2.0)",
- org.eclipse.jgit.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.junit;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.junit.ssh;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.ssh.jsch;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)",
+ org.eclipse.jgit.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.junit;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.junit.ssh;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.ssh.jsch;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.experimental.theories;version="[4.13,5.0.0)",
  org.junit.runner;version="[4.13,5.0.0)"
diff --git a/org.eclipse.jgit.ssh.jsch.test/pom.xml b/org.eclipse.jgit.ssh.jsch.test/pom.xml
index 51a9f30..ac71489 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.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 2028c76..9b58b24 100644
--- a/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF
@@ -3,19 +3,19 @@
 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="[6.8.1,6.9.0)"
+Fragment-Host: org.eclipse.jgit;bundle-version="[6.9.0,6.10.0)"
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: OSGI-INF/l10n/jsch
 Bundle-ActivationPolicy: lazy
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-11
-Export-Package: org.eclipse.jgit.transport.ssh.jsch;version="6.8.1"
+Export-Package: org.eclipse.jgit.transport.ssh.jsch;version="6.9.0"
 Import-Package: com.jcraft.jsch;version="[0.1.37,0.2.0)",
- org.eclipse.jgit.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.nls;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util.io;version="[6.8.1,6.9.0)",
- org.slf4j;version="[1.7.0,2.0.0)"
+ org.eclipse.jgit.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.nls;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util.io;version="[6.9.0,6.10.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 797bca4..42df3f2 100644
--- a/org.eclipse.jgit.ssh.jsch/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.jsch/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
 Bundle-Name: org.eclipse.jgit.ssh.jsch - Sources
 Bundle-SymbolicName: org.eclipse.jgit.ssh.jsch.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.8.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.jsch;version="6.8.1.qualifier";roots="."
+Bundle-Version: 6.9.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.ssh.jsch;version="6.9.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.jsch/pom.xml b/org.eclipse.jgit.ssh.jsch/pom.xml
index 1a100ea..ad9e898 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ssh.jsch</artifactId>
diff --git a/org.eclipse.jgit.test/BUILD b/org.eclipse.jgit.test/BUILD
index bb15de0..29f5b36 100644
--- a/org.eclipse.jgit.test/BUILD
+++ b/org.eclipse.jgit.test/BUILD
@@ -78,6 +78,7 @@
     deps = [
         "//lib:assertj-core",
         "//lib:commons-codec",
+        "//lib:commons-io",
         "//lib:junit",
         "//lib:mockito",
         "//lib:slf4j-simple",
diff --git a/org.eclipse.jgit.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.test/META-INF/MANIFEST.MF
index 8845014..d6468c6 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: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Localization: plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-RequiredExecutionEnvironment: JavaSE-11
@@ -18,65 +18,67 @@
  org.apache.commons.compress.compressors.bzip2;version="[1.15.0,2.0)",
  org.apache.commons.compress.compressors.gzip;version="[1.15.0,2.0)",
  org.apache.commons.compress.compressors.xz;version="[1.15.0,2.0)",
+ org.apache.commons.io;version="[2.15.0,3.0.0)",
+ org.apache.commons.io.output;version="[2.15.0,3.0.0)",
  org.assertj.core.api;version="[3.14.0,4.0.0)",
- org.eclipse.jgit.annotations;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.api;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.api.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.archive;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.attributes;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.awtui;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.blame;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.diff;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.dircache;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.events;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.fnmatch;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.gitrepo;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.hooks;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.ignore;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.ignore.internal;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.diff;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.diffmergetool;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.fsck;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.revwalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.commitgraph;version="6.8.1",
- org.eclipse.jgit.internal.storage.dfs;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.io;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.memory;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.pack;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.transport.connectivity;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.transport.http;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.transport.parser;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.junit;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.junit.time;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lfs;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib.internal;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.logging;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.merge;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.nls;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.notes;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.patch;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.pgm;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.pgm.internal;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revplot;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revwalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revwalk.filter;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.storage.file;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.storage.pack;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.submodule;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.http;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport.resolver;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.treewalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.treewalk.filter;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util.io;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util.sha1;version="[6.8.1,6.9.0)",
+ org.eclipse.jgit.annotations;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.api;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.api.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.archive;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.attributes;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.awtui;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.blame;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.diff;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.dircache;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.events;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.fnmatch;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.gitrepo;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.hooks;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.ignore;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.ignore.internal;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.diff;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.diffmergetool;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.fsck;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.revwalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.commitgraph;version="6.9.0",
+ org.eclipse.jgit.internal.storage.dfs;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.io;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.memory;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.transport.connectivity;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.transport.http;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.transport.parser;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.junit;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.junit.time;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lfs;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib.internal;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.logging;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.merge;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.nls;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.notes;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.patch;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.pgm;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.pgm.internal;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revplot;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revwalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revwalk.filter;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.storage.file;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.storage.pack;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.submodule;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.http;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport.resolver;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.treewalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.treewalk.filter;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util.io;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util.sha1;version="[6.9.0,6.10.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.experimental.theories;version="[4.13,5.0.0)",
  org.junit.function;version="[4.13.0,5.0.0)",
@@ -88,5 +90,5 @@
  org.mockito.junit;version="[5.4.0,6.0.0)",
  org.mockito.stubbing;version="[5.4.0,6.0.0)",
  org.objenesis;version="[3.3.0,4.0.0)",
- org.slf4j;version="[1.7.0,2.0.0)",
+ org.slf4j;version="[1.7.0,3.0.0)",
  org.tukaani.xz
diff --git a/org.eclipse.jgit.test/pom.xml b/org.eclipse.jgit.test/pom.xml
index 2ff7b7e..b810cb0 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.test</artifactId>
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CherryPickCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CherryPickCommandTest.java
index 301d6be..be3b33a 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CherryPickCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CherryPickCommandTest.java
@@ -9,6 +9,8 @@
  */
 package org.eclipse.jgit.api;
 
+import static org.eclipse.jgit.api.CherryPickCommitMessageProvider.ORIGINAL;
+import static org.eclipse.jgit.api.CherryPickCommitMessageProvider.ORIGINAL_WITH_REFERENCE;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -590,4 +592,187 @@
 			checkFile(new File(db.getWorkTree(), "file"), "a\n2\n3\n");
 		}
 	}
+
+	private void doCherryPickWithCustomProviderBaseTest(Git git,
+			CherryPickCommitMessageProvider commitMessageProvider)
+			throws Exception {
+		writeTrashFile("fileA", "line 1\nline 2\nline 3\n");
+		git.add().addFilepattern("fileA").call();
+		RevCommit commitFirst = git.commit().setMessage("create fileA").call();
+
+		writeTrashFile("fileB", "content from file B\n");
+		git.add().addFilepattern("fileB").call();
+		RevCommit commitCreateFileB = git.commit()
+				.setMessage("create fileB\n\nsome commit details").call();
+
+		writeTrashFile("fileA", "line 1\nline 2\nline 3\nline 4\n");
+		git.add().addFilepattern("fileA").call();
+		RevCommit commitEditFileA1 = git.commit().setMessage("patch fileA 1")
+				.call();
+
+		writeTrashFile("fileA", "line 1\nline 2\nline 3\nline 4\nline 5\n");
+		git.add().addFilepattern("fileA").call();
+		RevCommit commitEditFileA2 = git.commit().setMessage("patch fileA 2")
+				.call();
+
+		git.branchCreate().setName("side").setStartPoint(commitFirst).call();
+		checkoutBranch("refs/heads/side");
+
+		CherryPickResult pickResult = git.cherryPick()
+				.setCherryPickCommitMessageProvider(commitMessageProvider)
+				.include(commitCreateFileB).include(commitEditFileA1)
+				.include(commitEditFileA2).call();
+
+		assertEquals(CherryPickStatus.OK, pickResult.getStatus());
+
+		assertTrue(new File(db.getWorkTree(), "fileA").exists());
+		assertTrue(new File(db.getWorkTree(), "fileB").exists());
+
+		checkFile(new File(db.getWorkTree(), "fileA"),
+				"line 1\nline 2\nline 3\nline 4\nline 5\n");
+		checkFile(new File(db.getWorkTree(), "fileB"), "content from file B\n");
+	}
+
+	@Test
+	public void testCherryPickWithCustomCommitMessageProvider()
+			throws Exception {
+		try (Git git = new Git(db)) {
+			@SuppressWarnings("boxing")
+			CherryPickCommitMessageProvider messageProvider = srcCommit -> {
+				String message = srcCommit.getFullMessage();
+				return String.format("%s (message length: %d)", message,
+						message.length());
+			};
+			doCherryPickWithCustomProviderBaseTest(git, messageProvider);
+
+			Iterator<RevCommit> history = git.log().call().iterator();
+			assertEquals("patch fileA 2 (message length: 13)",
+					history.next().getFullMessage());
+			assertEquals("patch fileA 1 (message length: 13)",
+					history.next().getFullMessage());
+			assertEquals(
+					"create fileB\n\nsome commit details (message length: 33)",
+					history.next().getFullMessage());
+			assertEquals("create fileA", history.next().getFullMessage());
+			assertFalse(history.hasNext());
+		}
+	}
+
+	@Test
+	public void testCherryPickWithCustomCommitMessageProvider_ORIGINAL()
+			throws Exception {
+		try (Git git = new Git(db)) {
+			doCherryPickWithCustomProviderBaseTest(git, ORIGINAL);
+
+			Iterator<RevCommit> history = git.log().call().iterator();
+			assertEquals("patch fileA 2", history.next().getFullMessage());
+			assertEquals("patch fileA 1", history.next().getFullMessage());
+			assertEquals("create fileB\n\nsome commit details",
+					history.next().getFullMessage());
+			assertEquals("create fileA", history.next().getFullMessage());
+			assertFalse(history.hasNext());
+		}
+	}
+
+	@Test
+	public void testCherryPickWithCustomCommitMessageProvider_ORIGINAL_WITH_REFERENCE()
+			throws Exception {
+		try (Git git = new Git(db)) {
+			doCherryPickWithCustomProviderBaseTest(git,
+					ORIGINAL_WITH_REFERENCE);
+
+			Iterator<RevCommit> history = git.log().call().iterator();
+			assertEquals("patch fileA 2\n\n(cherry picked from commit 1ac121e90b0fb6fb18bbb4307e3e9731ceeba9e1)", history.next().getFullMessage());
+			assertEquals("patch fileA 1\n\n(cherry picked from commit 71475239df59076e18564fa360e3a74280926c2a)", history.next().getFullMessage());
+			assertEquals("create fileB\n\nsome commit details\n\n(cherry picked from commit 29b4501297ccf8de9de9f451e7beb384b51f5378)",
+					history.next().getFullMessage());
+			assertEquals("create fileA", history.next().getFullMessage());
+			assertFalse(history.hasNext());
+		}
+	}
+
+	@Test
+	public void testCherryPickWithCustomCommitMessageProvider_ORIGINAL_WITH_REFERENCE_DonNotAddNewLineAfterFooter()
+			throws Exception {
+		try (Git git = new Git(db)) {
+			CherryPickCommitMessageProvider commitMessageProvider = CherryPickCommitMessageProvider.ORIGINAL_WITH_REFERENCE;
+
+			RevCommit commit1 = addFileAndCommit(git, "file1", "content 1",
+					"commit1: no footer line");
+			RevCommit commit2 = addFileAndCommit(git, "file2", "content 2",
+					"commit2: simple single footer line"
+							+ "\n\nSigned-off-by: Alice <alice@example.com>");
+			RevCommit commit3 = addFileAndCommit(git, "file3", "content 3",
+					"commit3: multiple footer lines\n\n"
+							+ "Signed-off-by: Alice <alice@example.com>\n"
+							+ "Signed-off-by: Bob <bob@example.com>");
+			RevCommit commit4 = addFileAndCommit(git, "file4", "content 4",
+					"commit4: extra commit text before footer line\n\n"
+							+ "Commit message details\n\n"
+							+ "Signed-off-by: Alice <alice@example.com>\n"
+							+ "Signed-off-by: Bob <bob@example.com>");
+			RevCommit commit5 = addFileAndCommit(git, "file5", "content 5",
+					"commit5: extra commit text after footer line\n\n"
+							+ "Signed-off-by: Alice <alice@example.com>\n"
+							+ "Signed-off-by: Bob <bob@example.com>\n\n"
+							+ "some extra description after footer");
+
+			git.branchCreate().setName("side").setStartPoint(commit1).call();
+			checkoutBranch("refs/heads/side");
+
+			CherryPickResult pickResult = git.cherryPick()
+					.setCherryPickCommitMessageProvider(commitMessageProvider)
+					.include(commit2).include(commit3).include(commit4)
+					.include(commit5).call();
+
+			assertEquals(CherryPickStatus.OK, pickResult.getStatus());
+
+			assertTrue(new File(db.getWorkTree(), "file1").exists());
+			assertTrue(new File(db.getWorkTree(), "file2").exists());
+			assertTrue(new File(db.getWorkTree(), "file3").exists());
+			assertTrue(new File(db.getWorkTree(), "file4").exists());
+			assertTrue(new File(db.getWorkTree(), "file5").exists());
+
+			Iterator<RevCommit> history = git.log().call().iterator();
+			RevCommit cpCommit1 = history.next();
+			RevCommit cpCommit2 = history.next();
+			RevCommit cpCommit3 = history.next();
+			RevCommit cpCommit4 = history.next();
+			RevCommit cpCommitInit = history.next();
+			assertFalse(history.hasNext());
+
+			assertEquals("commit5: extra commit text after footer line\n\n"
+					+ "Signed-off-by: Alice <alice@example.com>\n"
+					+ "Signed-off-by: Bob <bob@example.com>\n\n"
+					+ "some extra description after footer\n\n"
+					+ "(cherry picked from commit c3c9959207dc7ae7c83da5d36dc14ef2ca42d572)",
+					cpCommit1.getFullMessage());
+			assertEquals("commit4: extra commit text before footer line\n\n"
+					+ "Commit message details\n\n"
+					+ "Signed-off-by: Alice <alice@example.com>\n"
+					+ "Signed-off-by: Bob <bob@example.com>\n"
+					+ "(cherry picked from commit af3e8106c12cb946a37b403ddb2dd6c11a883698)",
+					cpCommit2.getFullMessage());
+			assertEquals("commit3: multiple footer lines\n\n"
+					+ "Signed-off-by: Alice <alice@example.com>\n"
+					+ "Signed-off-by: Bob <bob@example.com>\n"
+					+ "(cherry picked from commit 6d60f1a70a11a32dff4402c157c4ac328c32ce6c)",
+					cpCommit3.getFullMessage());
+			assertEquals("commit2: simple single footer line\n\n"
+					+ "Signed-off-by: Alice <alice@example.com>\n"
+					+ "(cherry picked from commit 92bf0ec458814ecc73da8e050e60547d2ea6cce5)",
+					cpCommit4.getFullMessage());
+
+			assertEquals("commit1: no footer line",
+					cpCommitInit.getFullMessage());
+		}
+	}
+
+	private RevCommit addFileAndCommit(Git git, String fileName,
+			String fileText, String commitMessage)
+			throws IOException, GitAPIException {
+		writeTrashFile(fileName, fileText);
+		git.add().addFilepattern(fileName).call();
+		return git.commit().setMessage(commitMessage).call();
+	}
 }
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java
index 16f7cd1..987c98e 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java
@@ -332,6 +332,40 @@
 	}
 
 	/**
+	 * Create a commit A and an unrelated commit B creating the same file with
+	 * different content. Then rebase A onto B. The rebase should stop with a
+	 * conflict.
+	 *
+	 * @throws Exception
+	 *             on errors
+	 */
+	@Test
+	public void testRebaseNoMergeBaseConflict() throws Exception {
+		writeTrashFile(FILE1, FILE1);
+		git.add().addFilepattern(FILE1).call();
+		RevCommit first = git.commit().setMessage("Add file").call();
+		File file1 = new File(db.getWorkTree(), FILE1);
+		assertTrue(file1.exists());
+		// Create an independent branch
+		git.checkout().setOrphan(true).setName("orphan").call();
+		git.rm().addFilepattern(FILE1).call();
+		assertFalse(file1.exists());
+		writeTrashFile(FILE1, "something else");
+		git.add().addFilepattern(FILE1).call();
+		git.commit().setMessage("Orphan").call();
+		checkoutBranch("refs/heads/master");
+		assertEquals(first.getId(), db.resolve("HEAD"));
+		RebaseResult res = git.rebase().setUpstream("refs/heads/orphan").call();
+		assertEquals(Status.STOPPED, res.getStatus());
+		assertEquals(first, res.getCurrentCommit());
+		checkFile(file1, "<<<<<<< Upstream, based on orphan\n"
+				+ "something else\n"
+				+ "=======\n"
+				+ "file1\n"
+				+ ">>>>>>> " + first.abbreviate(7).name() + " Add file\n");
+	}
+
+	/**
 	 * Create the following commits and then attempt to rebase topic onto
 	 * master. This will serialize the branches.
 	 *
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/BasePackBitmapIndexTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/BasePackBitmapIndexTest.java
new file mode 100644
index 0000000..f47c385
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/BasePackBitmapIndexTest.java
@@ -0,0 +1,137 @@
+/*
+ * Copyright (c) 2023, Google LLC  and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.internal.storage.file;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.eclipse.jgit.internal.storage.file.BasePackBitmapIndex.StoredBitmap;
+import org.eclipse.jgit.lib.AnyObjectId;
+import org.eclipse.jgit.lib.ObjectId;
+import org.eclipse.jgit.lib.ObjectIdOwnerMap;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.googlecode.javaewah.EWAHCompressedBitmap;
+
+public class BasePackBitmapIndexTest {
+
+	private ObjectId baseOid;
+
+	private StoredBitmap baseBitmap;
+
+	private ObjectId xorOid;
+
+	private StoredBitmap xorBitmap;
+
+	private ObjectIdOwnerMap<StoredBitmap> bitmaps;
+
+	@Before
+	public void setUp() {
+		baseOid = ObjectId
+				.fromString("c46f36f2bfc96d6d6f75bd71ee33625293aee690");
+		baseBitmap = newBaseStoredBitmap(baseOid, bitmapOf(100));
+		xorOid = ObjectId
+				.fromString("52c18ae15f8fa3787f920e68791367dae2e1af2d");
+		xorBitmap = newXorStoredBitmap(xorOid, bitmapOf(200, 300), baseBitmap);
+		bitmaps = new ObjectIdOwnerMap<>();
+		bitmaps.add(baseBitmap);
+		bitmaps.add(xorBitmap);
+	}
+
+	@Test
+	public void testBitmapCounts() {
+		TestPackBitmapIndex index = new TestPackBitmapIndex(bitmaps);
+
+		assertEquals(1, index.getBaseBitmapCount());
+		assertEquals(1, index.getXorBitmapCount());
+		assertEquals(2, index.getBitmapCount());
+	}
+
+	@Test
+	public void testBitmapCounts_xorResolved() {
+		TestPackBitmapIndex index = new TestPackBitmapIndex(bitmaps);
+		index.getBitmap(xorOid);
+
+		assertEquals(2, index.getBaseBitmapCount());
+		assertEquals(0, index.getXorBitmapCount());
+		assertEquals(2, index.getBitmapCount());
+	}
+
+	@Test
+	public void testBitmapSizes() {
+		TestPackBitmapIndex index = new TestPackBitmapIndex(bitmaps);
+
+		assertEquals(baseBitmap.getCurrentSizeInBytes(),
+				index.getBaseBitmapSizeInBytes());
+		assertEquals(xorBitmap.getCurrentSizeInBytes(),
+				index.getXorBitmapSizeInBytes());
+	}
+
+	@Test
+	public void testBitmapSizes_xorResolved() {
+		TestPackBitmapIndex index = new TestPackBitmapIndex(bitmaps);
+		index.getBitmap(xorOid);
+
+		assertTrue(baseBitmap.getCurrentSizeInBytes() < index
+				.getBaseBitmapSizeInBytes());
+		assertEquals(0, index.getXorBitmapSizeInBytes());
+	}
+
+	private static final StoredBitmap newBaseStoredBitmap(ObjectId oid,
+			EWAHCompressedBitmap base) {
+		return new StoredBitmap(oid, base, null, 0);
+	}
+
+	private static StoredBitmap newXorStoredBitmap(ObjectId oid,
+			EWAHCompressedBitmap xorMask, StoredBitmap base) {
+		return new StoredBitmap(oid, xorMask, base, 0);
+	}
+
+	private static final EWAHCompressedBitmap bitmapOf(int... bits) {
+		EWAHCompressedBitmap b = new EWAHCompressedBitmap();
+		for (int bit : bits)
+			b.set(bit);
+		return b;
+	}
+
+	private static class TestPackBitmapIndex extends BasePackBitmapIndex {
+		TestPackBitmapIndex(ObjectIdOwnerMap<StoredBitmap> bitmaps) {
+			super(bitmaps);
+		}
+
+		@Override
+		public int findPosition(AnyObjectId objectId) {
+			throw new IllegalStateException();
+		}
+
+		@Override
+		public ObjectId getObject(int position)
+				throws IllegalArgumentException {
+			throw new IllegalStateException();
+		}
+
+		@Override
+		public EWAHCompressedBitmap ofObjectType(EWAHCompressedBitmap bitmap,
+				int type) {
+			throw new IllegalStateException();
+		}
+
+		@Override
+		public int getObjectCount() {
+			throw new IllegalStateException();
+		}
+
+		@Override
+		public int getBitmapCount() {
+			return getBitmaps().size();
+		}
+	}
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/StoredBitmapTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/StoredBitmapTest.java
index f5c7c67..684ee52 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/StoredBitmapTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/StoredBitmapTest.java
@@ -11,6 +11,8 @@
 package org.eclipse.jgit.internal.storage.file;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
 import org.eclipse.jgit.internal.storage.file.BasePackBitmapIndex.StoredBitmap;
 import org.eclipse.jgit.lib.ObjectId;
@@ -44,6 +46,33 @@
 		assertEquals(bitmapOf(50, 90), sb.getBitmap());
 	}
 
+	@Test
+	public void testGetSizeWithoutXor() {
+		EWAHCompressedBitmap base = bitmapOf(100);
+		StoredBitmap sb = newStoredBitmap(base);
+		assertEquals(base.sizeInBytes(), sb.getCurrentSizeInBytes());
+		sb.getBitmap();
+		assertEquals(base.sizeInBytes(), sb.getCurrentSizeInBytes());
+	}
+
+	@Test
+	public void testGetSizeWithOneXor() {
+		EWAHCompressedBitmap base = bitmapOf(100, 101);
+		EWAHCompressedBitmap xor = bitmapOf(100);
+		StoredBitmap sb = newStoredBitmap(base, xor);
+		assertEquals(xor.sizeInBytes(), sb.getCurrentSizeInBytes());
+	}
+
+	@Test
+	public void testIsBase() {
+		EWAHCompressedBitmap one = bitmapOf(100, 101);
+		EWAHCompressedBitmap two = bitmapOf(100);
+		StoredBitmap baseBitmap = newStoredBitmap(one);
+		StoredBitmap xoredBitmap = newStoredBitmap(one, two);
+		assertTrue(baseBitmap.isBase());
+		assertFalse(xoredBitmap.isBase());
+	}
+
 	private static final StoredBitmap newStoredBitmap(
 			EWAHCompressedBitmap... bitmaps) {
 		StoredBitmap sb = null;
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/BitmapWalkerTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/BitmapWalkerTest.java
new file mode 100644
index 0000000..a59a71d
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/BitmapWalkerTest.java
@@ -0,0 +1,161 @@
+/*
+ * Copyright (C) 2023, Google Inc.
+ *
+ * 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.assertNotNull;
+
+import java.util.List;
+
+import org.eclipse.jgit.internal.storage.file.FileRepository;
+import org.eclipse.jgit.internal.storage.file.GC;
+import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase;
+import org.eclipse.jgit.junit.TestRepository;
+import org.eclipse.jgit.lib.AnyObjectId;
+import org.eclipse.jgit.lib.BitmapIndex;
+import org.eclipse.jgit.lib.BitmapIndex.Bitmap;
+import org.eclipse.jgit.lib.BitmapIndex.BitmapBuilder;
+import org.eclipse.jgit.lib.BitmapIndex.BitmapLookupListener;
+import org.eclipse.jgit.lib.NullProgressMonitor;
+import org.eclipse.jgit.lib.ObjectReader;
+import org.junit.Before;
+import org.junit.Test;
+
+public class BitmapWalkerTest extends LocalDiskRepositoryTestCase {
+
+	private static final String MAIN = "refs/heads/main";
+
+	TestRepository<FileRepository> repo;
+
+	RevCommit tipWithBitmap;
+
+	@Override
+	@Before
+	public void setUp() throws Exception {
+		super.setUp();
+		FileRepository db = createWorkRepository();
+		repo = new TestRepository<>(db);
+
+		RevCommit base = repo.commit().create();
+		RevCommit one = repo.commit().parent(base).create();
+		tipWithBitmap = repo.commit().parent(one).create();
+		repo.update(MAIN, tipWithBitmap);
+
+		GC gc = new GC(repo.getRepository());
+		gc.setAuto(false);
+		gc.gc().get();
+
+		assertNotNull(repo.getRevWalk().getObjectReader().getBitmapIndex());
+	}
+
+	private static class BitmapWalkCounter implements BitmapLookupListener {
+		int withBitmap;
+
+		int withoutBitmap;
+
+		@Override
+		public void onBitmapFound(AnyObjectId oid) {
+			withBitmap += 1;
+		}
+
+		@Override
+		public void onBitmapNotFound(AnyObjectId oid) {
+			withoutBitmap += 1;
+		}
+	}
+
+	@Test
+	public void counters_bitmapAtTip() throws Exception {
+		try (RevWalk rw = repo.getRevWalk();
+				ObjectReader or = rw.getObjectReader()) {
+			BitmapWalkCounter counter = new BitmapWalkCounter();
+			BitmapIndex bitmapIndex = or.getBitmapIndex();
+			bitmapIndex.addBitmapLookupListener(counter);
+			BitmapWalker bw = new BitmapWalker(rw.toObjectWalkWithSameObjects(),
+					bitmapIndex, NullProgressMonitor.INSTANCE);
+			BitmapBuilder bitmap = bw.findObjects(List.of(tipWithBitmap), null,
+					true);
+			// First commit has a tree, so in total 4 objects
+			assertEquals(4, bitmap.cardinality());
+			assertEquals(1, counter.withBitmap);
+			assertEquals(0, counter.withoutBitmap);
+			assertEquals(0, bw.getCountOfBitmapIndexMisses());
+		}
+	}
+
+	@Test
+	public void counters_bitmapAfterAStep() throws Exception {
+		System.out.println("Old tip: " + tipWithBitmap);
+		RevCommit newTip = repo.commit().parent(tipWithBitmap).create();
+		System.out.println("New tip: " + newTip);
+		try (RevWalk rw = repo.getRevWalk();
+				ObjectReader or = rw.getObjectReader()) {
+			BitmapWalkCounter counter = new BitmapWalkCounter();
+			BitmapIndex bitmapIndex = or.getBitmapIndex();
+			bitmapIndex.addBitmapLookupListener(counter);
+			BitmapWalker bw = new BitmapWalker(rw.toObjectWalkWithSameObjects(),
+					bitmapIndex, NullProgressMonitor.INSTANCE);
+
+			bw.findObjects(List.of(newTip), null, true);
+
+			assertEquals(1, counter.withBitmap);
+			// It checks bitmap before marking as interesting, and again in the
+			// walk
+			assertEquals(2, counter.withoutBitmap);
+			assertEquals(1, bw.getCountOfBitmapIndexMisses());
+		}
+	}
+
+	@Test
+	public void counters_bitmapAfterThreeSteps() throws Exception {
+		RevCommit newOne = repo.commit().parent(tipWithBitmap).create();
+		RevCommit newTwo = repo.commit().parent(newOne).create();
+		RevCommit newTip = repo.commit().parent(newTwo).create();
+
+		try (RevWalk rw = repo.getRevWalk();
+				ObjectReader or = rw.getObjectReader()) {
+			BitmapWalkCounter counter = new BitmapWalkCounter();
+			BitmapIndex bitmapIndex = or.getBitmapIndex();
+			bitmapIndex.addBitmapLookupListener(counter);
+			BitmapWalker bw = new BitmapWalker(rw.toObjectWalkWithSameObjects(),
+					bitmapIndex, NullProgressMonitor.INSTANCE);
+
+			bw.findObjects(List.of(newTip), null, true);
+
+			assertEquals(1, counter.withBitmap);
+			assertEquals(4, counter.withoutBitmap);
+			assertEquals(3, bw.getCountOfBitmapIndexMisses());
+		}
+	}
+
+	@Test
+	public void counters_bitmapAfterThreeStepsWithSeen() throws Exception {
+		RevCommit newOne = repo.commit().parent(tipWithBitmap).create();
+		RevCommit newTwo = repo.commit().parent(newOne).create();
+		RevCommit newTip = repo.commit().parent(newTwo).create();
+
+		try (RevWalk rw = repo.getRevWalk();
+				ObjectReader or = rw.getObjectReader()) {
+			BitmapIndex bitmapIndex = or.getBitmapIndex();
+			Bitmap seen = bitmapIndex.getBitmap(tipWithBitmap);
+			BitmapBuilder seenBB = bitmapIndex.newBitmapBuilder().or(seen);
+			BitmapWalkCounter counter = new BitmapWalkCounter();
+			bitmapIndex.addBitmapLookupListener(counter);
+			BitmapWalker bw = new BitmapWalker(rw.toObjectWalkWithSameObjects(),
+					bitmapIndex, NullProgressMonitor.INSTANCE);
+
+			bw.findObjects(List.of(newTip), seenBB, true);
+
+			assertEquals(0, counter.withBitmap);
+			assertEquals(4, counter.withoutBitmap);
+			assertEquals(3, bw.getCountOfBitmapIndexMisses());
+		}
+	}
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/FooterLineTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/FooterLineTest.java
index 303aedc..657c3d2 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/FooterLineTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/FooterLineTest.java
@@ -80,6 +80,33 @@
 	}
 
 	@Test
+	public void testNoFooters_noRawMsg_SingleLineNoHeaders() {
+		String noRawMsg = "commit message with no header lines\n";
+		List<FooterLine> footers = FooterLine.fromMessage(noRawMsg);
+		assertNotNull(footers);
+		assertEquals(0, footers.size());
+	}
+
+	@Test
+	public void testOneFooter_noRawMsg_MultiParagraphNoHeaders() {
+		String noRawMsg = "subject\n\n"
+			+ "Not: footer\n\n"
+			+ "Footer: value\n";
+		List<FooterLine> footers = FooterLine.fromMessage(noRawMsg);
+		assertNotNull(footers);
+		assertEquals(1, footers.size());
+	}
+
+	@Test
+	public void testOneFooter_longSubject_NoHeaders() {
+		String noRawMsg = "50+ chars loooooooooooooong custom commit message.\n\n"
+				+ "Footer: value\n";
+		List<FooterLine> footers = FooterLine.fromMessage(noRawMsg);
+		assertNotNull(footers);
+		assertEquals(1, footers.size());
+	}
+
+	@Test
 	public void testSignedOffBy_OneUserNoLF() {
 		String msg = buildMessage("subject\n\nbody of commit\n" + "\n"
 			+ "Signed-off-by: A. U. Thor <a@example.com>");
@@ -264,18 +291,26 @@
 		f = footers.get(0);
 		assertEquals("Signed-off-by", f.getKey());
 		assertEquals("A. U. Thor <a@example.com>", f.getValue());
+		assertEquals(217, f.getStartOffset());
+		assertEquals(258, f.getEndOffset());
 
 		f = footers.get(1);
 		assertEquals("CC", f.getKey());
 		assertEquals("<some.mailing.list@example.com>", f.getValue());
+		assertEquals(259, f.getStartOffset());
+		assertEquals(305, f.getEndOffset());
 
 		f = footers.get(2);
 		assertEquals("Acked-by", f.getKey());
 		assertEquals("Some Reviewer <sr@example.com>", f.getValue());
+		assertEquals(356, f.getStartOffset());
+		assertEquals(396, f.getEndOffset());
 
 		f = footers.get(3);
 		assertEquals("Signed-off-by", f.getKey());
 		assertEquals("Main Tain Er <mte@example.com>", f.getValue());
+		assertEquals(397, f.getStartOffset());
+		assertEquals(442, f.getEndOffset());
 	}
 
 	@Test
@@ -369,6 +404,26 @@
 				f.getValue());
 	}
 
+	@Test
+	public void testFirstLineNeverFooter() {
+		String msg = buildMessage(
+				String.join("\n", "First-Line: is never a footer", "Foo: ter",
+						"1-is: also a footer"));
+		List<FooterLine> footers = FooterLine.fromMessage(msg);
+		assertNotNull(footers);
+		assertEquals(2, footers.size());
+	}
+
+	@Test
+	public void testLineAfterFooters() {
+		String msg = buildMessage(
+				String.join("\n", "Subject line: is never a footer", "Foo: ter",
+						"1-is: also a footer", "this is not a footer"));
+		List<FooterLine> footers = FooterLine.fromMessage(msg);
+		assertNotNull(footers);
+		assertEquals(2, footers.size());
+	}
+
 	private String buildMessage(String msg) {
 		StringBuilder buf = new StringBuilder();
 		buf.append("tree " + ObjectId.zeroId().name() + "\n");
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/TreeRevFilterTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/TreeRevFilterTest.java
index 298facf..f67a623 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/TreeRevFilterTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/TreeRevFilterTest.java
@@ -21,6 +21,7 @@
 
 public class TreeRevFilterTest extends RevWalkTestCase {
 	private RevFilter treeRevFilter() {
+		rw.setRewriteParents(false);
 		return new TreeRevFilter(rw, TreeFilter.ANY_DIFF);
 	}
 
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/TreeRevFilterWithRewriteParentsTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/TreeRevFilterWithRewriteParentsTest.java
new file mode 100644
index 0000000..100f2e4
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/TreeRevFilterWithRewriteParentsTest.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2023, Google LLC and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+package org.eclipse.jgit.revwalk;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import org.eclipse.jgit.revwalk.filter.RevFilter;
+import org.eclipse.jgit.treewalk.filter.TreeFilter;
+import org.junit.Test;
+
+public class TreeRevFilterWithRewriteParentsTest extends RevWalkTestCase {
+	private RevFilter treeRevFilter() {
+		rw.setRewriteParents(true);
+		return new TreeRevFilter(rw, TreeFilter.ANY_DIFF);
+	}
+
+	@Test
+	public void testStringOfPearls_FilePath1()
+			throws Exception {
+		RevCommit a = commit(tree(file("d/f", blob("a"))));
+		RevCommit b = commit(tree(file("d/f", blob("a"))), a);
+		RevCommit c = commit(tree(file("d/f", blob("b"))), b);
+		rw.setRevFilter(treeRevFilter());
+		markStart(c);
+
+		assertCommit(c, rw.next());
+		assertEquals(1, c.getParentCount());
+		assertCommit(a, c.getParent(0));
+
+		assertCommit(a, rw.next()); // b was skipped
+		assertEquals(0, a.getParentCount());
+		assertNull(rw.next());
+	}
+
+	@Test
+	public void testStringOfPearls_FilePath2() throws Exception {
+		RevCommit a = commit(tree(file("d/f", blob("a"))));
+		RevCommit b = commit(tree(file("d/f", blob("a"))), a);
+		RevCommit c = commit(tree(file("d/f", blob("b"))), b);
+		RevCommit d = commit(tree(file("d/f", blob("b"))), c);
+		rw.setRevFilter(treeRevFilter());
+		markStart(d);
+
+		// d was skipped
+		assertCommit(c, rw.next());
+		assertEquals(1, c.getParentCount());
+		assertCommit(a, c.getParent(0));
+
+		// b was skipped
+		assertCommit(a, rw.next());
+		assertEquals(0, a.getParentCount());
+		assertNull(rw.next());
+	}
+
+	@Test
+	public void testStringOfPearls_DirPath2() throws Exception {
+		RevCommit a = commit(tree(file("d/f", blob("a"))));
+		RevCommit b = commit(tree(file("d/f", blob("a"))), a);
+		RevCommit c = commit(tree(file("d/f", blob("b"))), b);
+		RevCommit d = commit(tree(file("d/f", blob("b"))), c);
+		rw.setRevFilter(treeRevFilter());
+		markStart(d);
+
+		// d was skipped
+		assertCommit(c, rw.next());
+		assertEquals(1, c.getParentCount());
+		assertCommit(a, c.getParent(0));
+
+		// b was skipped
+		assertCommit(a, rw.next());
+		assertEquals(0, a.getParentCount());
+		assertNull(rw.next());
+	}
+
+	@Test
+	public void testStringOfPearls_FilePath3() throws Exception {
+		RevCommit a = commit(tree(file("d/f", blob("a"))));
+		RevCommit b = commit(tree(file("d/f", blob("a"))), a);
+		RevCommit c = commit(tree(file("d/f", blob("b"))), b);
+		RevCommit d = commit(tree(file("d/f", blob("b"))), c);
+		RevCommit e = commit(tree(file("d/f", blob("b"))), d);
+		RevCommit f = commit(tree(file("d/f", blob("b"))), e);
+		RevCommit g = commit(tree(file("d/f", blob("b"))), f);
+		RevCommit h = commit(tree(file("d/f", blob("b"))), g);
+		RevCommit i = commit(tree(file("d/f", blob("c"))), h);
+		rw.setRevFilter(treeRevFilter());
+		markStart(i);
+
+		assertCommit(i, rw.next());
+		assertEquals(1, i.getParentCount());
+		assertCommit(c, i.getParent(0));
+
+		// h..d was skipped
+		assertCommit(c, rw.next());
+		assertEquals(1, c.getParentCount());
+		assertCommit(a, c.getParent(0));
+
+		// b was skipped
+		assertCommit(a, rw.next());
+		assertEquals(0, a.getParentCount());
+		assertNull(rw.next());
+	}
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FSTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FSTest.java
index 51236e1..3a7fa23 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FSTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FSTest.java
@@ -29,8 +29,12 @@
 import java.time.Duration;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Locale;
 import java.util.Set;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 
 import org.eclipse.jgit.errors.CommandFailedException;
@@ -196,6 +200,23 @@
 	}
 
 	@Test
+	@SuppressWarnings("boxing")
+	public void testConcurrentSymlinkSupport()
+			throws ExecutionException, InterruptedException {
+		Assume.assumeTrue(FS.DETECTED.supportsSymlinks());
+		int n = 3;
+		List<CompletableFuture<Boolean>> futures = new ArrayList<>();
+		for (int i = 0; i < n; i++) {
+			futures.add(CompletableFuture.supplyAsync(
+					() -> FS.DETECTED.newInstance().supportsSymlinks()));
+		}
+
+		for (int i = 0; i < n; i++) {
+			assertTrue(futures.get(i).get());
+		}
+	}
+
+	@Test
 	public void testFsTimestampResolution() throws Exception {
 		DateTimeFormatter formatter = DateTimeFormatter
 				.ofPattern("uuuu-MMM-dd HH:mm:ss.nnnnnnnnn", Locale.ENGLISH)
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtilsTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtilsTest.java
index e80c075..e4ef302 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtilsTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtilsTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011, Leonard Broman <leonard.broman@gmail.com> and others
+ * Copyright (C) 2011, 2024 Leonard Broman <leonard.broman@gmail.com> and others
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Distribution License v. 1.0 which is available at
@@ -15,6 +15,7 @@
 
 import java.nio.charset.Charset;
 import java.nio.charset.UnsupportedCharsetException;
+import java.util.List;
 
 import org.eclipse.jgit.lib.Constants;
 import org.junit.Test;
@@ -24,7 +25,7 @@
 public class RawParseUtilsTest {
 	String commit = "tree e3a1035abd2b319bb01e57d69b0ba6cab289297e\n" +
 		"parent 54e895b87c0768d2317a2b17062e3ad9f76a8105\n" +
-		"committer A U Thor <author@xample.com 1528968566 +0200\n" +
+			"committer A U Thor <author@example.com> 1528968566 +0200\n" +
 		"gpgsig -----BEGIN PGP SIGNATURE-----\n" +
 		" \n" +
 		" wsBcBAABCAAQBQJbGB4pCRBK7hj4Ov3rIwAAdHIIAENrvz23867ZgqrmyPemBEZP\n" +
@@ -67,21 +68,24 @@
 	public void testHeaderStart() {
 		byte[] headerName = "some".getBytes(UTF_8);
 		byte[] commitBytes = commit.getBytes(UTF_8);
-		assertEquals(625, RawParseUtils.headerStart(headerName, commitBytes, 0));
-		assertEquals(625, RawParseUtils.headerStart(headerName, commitBytes, 4));
+		assertEquals(627,
+				RawParseUtils.headerStart(headerName, commitBytes, 0));
+		assertEquals(627,
+				RawParseUtils.headerStart(headerName, commitBytes, 4));
 
 		byte[] missingHeaderName = "missing".getBytes(UTF_8);
 		assertEquals(-1, RawParseUtils.headerStart(missingHeaderName,
 							   commitBytes, 0));
 
 		byte[] fauxHeaderName = "other".getBytes(UTF_8);
-		assertEquals(-1, RawParseUtils.headerStart(fauxHeaderName, commitBytes, 625 + 4));
+		assertEquals(-1, RawParseUtils.headerStart(fauxHeaderName, commitBytes,
+				627 + 4));
 	}
 
 	@Test
 	public void testHeaderEnd() {
 		byte[] commitBytes = commit.getBytes(UTF_8);
-		int[] expected = new int[] {45, 93, 148, 619, 637};
+		int[] expected = new int[] { 45, 93, 150, 621, 639 };
 		int start = 0;
 		for (int i = 0; i < expected.length; i++) {
 			start = RawParseUtils.headerEnd(commitBytes, start);
@@ -89,4 +93,44 @@
 			start += 1;
 		}
 	}
+
+	@Test
+	public void testHeaderValue() {
+		byte[] commitBytes = commit.getBytes(UTF_8);
+		List<String> headers = List.of(
+				"e3a1035abd2b319bb01e57d69b0ba6cab289297e",
+				"54e895b87c0768d2317a2b17062e3ad9f76a8105",
+				"A U Thor <author@example.com> 1528968566 +0200",
+				"-----BEGIN PGP SIGNATURE-----\n"
+						+ "\n"
+						+ "wsBcBAABCAAQBQJbGB4pCRBK7hj4Ov3rIwAAdHIIAENrvz23867ZgqrmyPemBEZP\n"
+						+ "U24B1Tlq/DWvce2buaxmbNQngKZ0pv2s8VMc11916WfTIC9EKvioatmpjduWvhqj\n"
+						+ "znQTFyiMor30pyYsfrqFuQZvqBW01o8GEWqLg8zjf9Rf0R3LlOEw86aT8CdHRlm6\n"
+						+ "wlb22xb8qoX4RB+LYfz7MhK5F+yLOPXZdJnAVbuyoMGRnDpwdzjL5Hj671+XJxN5\n"
+						+ "SasRdhxkkfw/ZnHxaKEc4juMz8Nziz27elRwhOQqlTYoXNJnsV//wy5Losd7aKi1\n"
+						+ "xXXyUpndEOmT0CIcKHrN/kbYoVL28OJaxoBuva3WYQaRrzEe3X02NMxZe9gkSqA=\n"
+						+ "=TClh\n"
+						+ "-----END PGP SIGNATURE-----",
+				"other header");
+		int start = 0;
+		for (String header : headers) {
+			int endOfTag = RawParseUtils.next(commitBytes, start, ' ');
+			int end = RawParseUtils.headerEnd(commitBytes, start);
+
+			assertEquals(header, new String(
+					RawParseUtils.headerValue(commitBytes, endOfTag, end),
+					UTF_8));
+			start = end + 1;
+		}
+	}
+
+	@Test
+	public void testLastHeaderEnd() {
+		byte[] raw = "headerA A header\nheaderB Another header".getBytes(UTF_8);
+		int bStart = RawParseUtils.headerStart("headerB".getBytes(UTF_8), raw,
+				0);
+		assertEquals(25, bStart);
+		int bEnd = RawParseUtils.nextLfSkippingSplitLines(raw, bStart);
+		assertEquals(raw.length, bEnd);
+	}
 }
diff --git a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF
index f9b6a84..af02407 100644
--- a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF
@@ -4,14 +4,14 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ui
 Bundle-SymbolicName: org.eclipse.jgit.ui
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-RequiredExecutionEnvironment: JavaSE-11
-Export-Package: org.eclipse.jgit.awtui;version="6.8.1"
-Import-Package: org.eclipse.jgit.errors;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.lib;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.nls;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revplot;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.revwalk;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.transport;version="[6.8.1,6.9.0)",
- org.eclipse.jgit.util;version="[6.8.1,6.9.0)"
+Export-Package: org.eclipse.jgit.awtui;version="6.9.0"
+Import-Package: org.eclipse.jgit.errors;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.lib;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.nls;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revplot;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.revwalk;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.transport;version="[6.9.0,6.10.0)",
+ org.eclipse.jgit.util;version="[6.9.0,6.10.0)"
diff --git a/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF
index a4e59a2..9c86b04 100644
--- a/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
 Bundle-Name: org.eclipse.jgit.ui - Sources
 Bundle-SymbolicName: org.eclipse.jgit.ui.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.8.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ui;version="6.8.1.qualifier";roots="."
+Bundle-Version: 6.9.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.ui;version="6.9.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ui/pom.xml b/org.eclipse.jgit.ui/pom.xml
index b051ad5..86795aa 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ui</artifactId>
diff --git a/org.eclipse.jgit/.settings/.api_filters b/org.eclipse.jgit/.settings/.api_filters
index 506a89a..e15ed48 100644
--- a/org.eclipse.jgit/.settings/.api_filters
+++ b/org.eclipse.jgit/.settings/.api_filters
@@ -30,29 +30,19 @@
             </message_arguments>
         </filter>
     </resource>
+    <resource path="src/org/eclipse/jgit/lib/GpgSignatureVerifier.java" type="org.eclipse.jgit.lib.GpgSignatureVerifier">
+        <filter id="404000815">
+            <message_arguments>
+                <message_argument value="org.eclipse.jgit.lib.GpgSignatureVerifier"/>
+                <message_argument value="verify(GpgConfig, byte[], byte[])"/>
+            </message_arguments>
+        </filter>
+    </resource>
     <resource path="src/org/eclipse/jgit/storage/pack/PackConfig.java" type="org.eclipse.jgit.storage.pack.PackConfig">
         <filter id="336658481">
             <message_arguments>
                 <message_argument value="org.eclipse.jgit.storage.pack.PackConfig"/>
-                <message_argument value="DEFAULT_PACK_KEPT_OBJECTS"/>
-            </message_arguments>
-        </filter>
-        <filter id="1142947843">
-            <message_arguments>
-                <message_argument value="5.13.3"/>
-                <message_argument value="DEFAULT_PACK_KEPT_OBJECTS"/>
-            </message_arguments>
-        </filter>
-        <filter id="1142947843">
-            <message_arguments>
-                <message_argument value="5.13.3"/>
-                <message_argument value="isPackKeptObjects()"/>
-            </message_arguments>
-        </filter>
-        <filter id="1142947843">
-            <message_arguments>
-                <message_argument value="5.13.3"/>
-                <message_argument value="setPackKeptObjects(boolean)"/>
+                <message_argument value="DEFAULT_BITMAP_EXCESSIVE_BRANCH_TIP_COUNT"/>
             </message_arguments>
         </filter>
     </resource>
diff --git a/org.eclipse.jgit/META-INF/MANIFEST.MF b/org.eclipse.jgit/META-INF/MANIFEST.MF
index b0215f5..1feae3e 100644
--- a/org.eclipse.jgit/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit/META-INF/MANIFEST.MF
@@ -3,12 +3,12 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit
 Bundle-SymbolicName: org.eclipse.jgit
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Eclipse-ExtensibleAPI: true
-Export-Package: org.eclipse.jgit.annotations;version="6.8.1",
- org.eclipse.jgit.api;version="6.8.1";
+Export-Package: org.eclipse.jgit.annotations;version="6.9.0",
+ org.eclipse.jgit.api;version="6.9.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.notes,
    org.eclipse.jgit.dircache,
@@ -23,18 +23,18 @@
    org.eclipse.jgit.revwalk.filter,
    org.eclipse.jgit.blame,
    org.eclipse.jgit.merge",
- org.eclipse.jgit.api.errors;version="6.8.1";
+ org.eclipse.jgit.api.errors;version="6.9.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.errors",
- org.eclipse.jgit.attributes;version="6.8.1";
+ org.eclipse.jgit.attributes;version="6.9.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.treewalk",
- org.eclipse.jgit.blame;version="6.8.1";
+ org.eclipse.jgit.blame;version="6.9.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.treewalk.filter,
    org.eclipse.jgit.diff",
- org.eclipse.jgit.diff;version="6.8.1";
+ org.eclipse.jgit.diff;version="6.9.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.attributes,
    org.eclipse.jgit.revwalk,
@@ -42,53 +42,53 @@
    org.eclipse.jgit.treewalk.filter,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.util",
- org.eclipse.jgit.dircache;version="6.8.1";
+ org.eclipse.jgit.dircache;version="6.9.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="6.8.1";
+ org.eclipse.jgit.errors;version="6.9.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.dircache,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.internal.storage.pack",
- org.eclipse.jgit.events;version="6.8.1";
+ org.eclipse.jgit.events;version="6.9.0";
   uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.fnmatch;version="6.8.1",
- org.eclipse.jgit.gitrepo;version="6.8.1";
+ org.eclipse.jgit.fnmatch;version="6.9.0",
+ org.eclipse.jgit.gitrepo;version="6.9.0";
   uses:="org.xml.sax.helpers,
    org.eclipse.jgit.api,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.xml.sax",
- org.eclipse.jgit.gitrepo.internal;version="6.8.1";x-internal:=true,
- org.eclipse.jgit.hooks;version="6.8.1";uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.ignore;version="6.8.1",
- org.eclipse.jgit.ignore.internal;version="6.8.1";
+ org.eclipse.jgit.gitrepo.internal;version="6.9.0";x-internal:=true,
+ org.eclipse.jgit.hooks;version="6.9.0";uses:="org.eclipse.jgit.lib",
+ org.eclipse.jgit.ignore;version="6.9.0",
+ org.eclipse.jgit.ignore.internal;version="6.9.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal;version="6.8.1";
+ org.eclipse.jgit.internal;version="6.9.0";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.http.test",
- org.eclipse.jgit.internal.diff;version="6.8.1";
+ org.eclipse.jgit.internal.diff;version="6.9.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.diffmergetool;version="6.8.1";
+ org.eclipse.jgit.internal.diffmergetool;version="6.9.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="6.8.1";
+ org.eclipse.jgit.internal.fsck;version="6.9.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.revwalk;version="6.8.1";
+ org.eclipse.jgit.internal.revwalk;version="6.9.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.commitgraph;version="6.8.1";
+ org.eclipse.jgit.internal.storage.commitgraph;version="6.9.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.dfs;version="6.8.1";
+ org.eclipse.jgit.internal.storage.dfs;version="6.9.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="6.8.1";
+ org.eclipse.jgit.internal.storage.file;version="6.9.0";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.junit,
    org.eclipse.jgit.junit.http,
@@ -97,36 +97,36 @@
    org.eclipse.jgit.pgm,
    org.eclipse.jgit.pgm.test,
    org.eclipse.jgit.ssh.apache",
- org.eclipse.jgit.internal.storage.io;version="6.8.1";
+ org.eclipse.jgit.internal.storage.io;version="6.9.0";
   x-friends:="org.eclipse.jgit.junit,
    org.eclipse.jgit.test,
    org.eclipse.jgit.pgm",
- org.eclipse.jgit.internal.storage.memory;version="6.8.1";
+ org.eclipse.jgit.internal.storage.memory;version="6.9.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.pack;version="6.8.1";
+ org.eclipse.jgit.internal.storage.pack;version="6.9.0";
   x-friends:="org.eclipse.jgit.junit,
    org.eclipse.jgit.test,
    org.eclipse.jgit.pgm",
- org.eclipse.jgit.internal.storage.reftable;version="6.8.1";
+ org.eclipse.jgit.internal.storage.reftable;version="6.9.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="6.8.1";x-internal:=true,
- org.eclipse.jgit.internal.transport.connectivity;version="6.8.1";
+ org.eclipse.jgit.internal.submodule;version="6.9.0";x-internal:=true,
+ org.eclipse.jgit.internal.transport.connectivity;version="6.9.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.http;version="6.8.1";
+ org.eclipse.jgit.internal.transport.http;version="6.9.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.parser;version="6.8.1";
+ org.eclipse.jgit.internal.transport.parser;version="6.9.0";
   x-friends:="org.eclipse.jgit.http.server,
    org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.ssh;version="6.8.1";
+ org.eclipse.jgit.internal.transport.ssh;version="6.9.0";
   x-friends:="org.eclipse.jgit.ssh.apache,
    org.eclipse.jgit.ssh.jsch,
    org.eclipse.jgit.test",
- org.eclipse.jgit.internal.util;version="6.8.1";
+ org.eclipse.jgit.internal.util;version="6.9.0";
   x-friends:=" org.eclipse.jgit.junit",
- org.eclipse.jgit.lib;version="6.8.1";
+ org.eclipse.jgit.lib;version="6.9.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.util.sha1,
    org.eclipse.jgit.dircache,
@@ -140,12 +140,12 @@
    org.eclipse.jgit.util,
    org.eclipse.jgit.submodule,
    org.eclipse.jgit.util.time",
- org.eclipse.jgit.lib.internal;version="6.8.1";
+ org.eclipse.jgit.lib.internal;version="6.9.0";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.pgm,
    org.eclipse.egit.ui",
- org.eclipse.jgit.logging;version="6.8.1",
- org.eclipse.jgit.merge;version="6.8.1";
+ org.eclipse.jgit.logging;version="6.9.0",
+ org.eclipse.jgit.merge;version="6.9.0";
   uses:="org.eclipse.jgit.dircache,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
@@ -154,40 +154,40 @@
    org.eclipse.jgit.util,
    org.eclipse.jgit.api,
    org.eclipse.jgit.attributes",
- org.eclipse.jgit.nls;version="6.8.1",
- org.eclipse.jgit.notes;version="6.8.1";
+ org.eclipse.jgit.nls;version="6.9.0",
+ org.eclipse.jgit.notes;version="6.9.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.merge",
- org.eclipse.jgit.patch;version="6.8.1";
+ org.eclipse.jgit.patch;version="6.9.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.diff",
- org.eclipse.jgit.revplot;version="6.8.1";
+ org.eclipse.jgit.revplot;version="6.9.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk",
- org.eclipse.jgit.revwalk;version="6.8.1";
+ org.eclipse.jgit.revwalk;version="6.9.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.diff,
    org.eclipse.jgit.treewalk.filter,
    org.eclipse.jgit.revwalk.filter,
    org.eclipse.jgit.treewalk",
- org.eclipse.jgit.revwalk.filter;version="6.8.1";
+ org.eclipse.jgit.revwalk.filter;version="6.9.0";
   uses:="org.eclipse.jgit.revwalk,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.util",
- org.eclipse.jgit.storage.file;version="6.8.1";
+ org.eclipse.jgit.storage.file;version="6.9.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.util",
- org.eclipse.jgit.storage.pack;version="6.8.1";
+ org.eclipse.jgit.storage.pack;version="6.9.0";
   uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.submodule;version="6.8.1";
+ org.eclipse.jgit.submodule;version="6.9.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.diff,
    org.eclipse.jgit.treewalk.filter,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.util",
- org.eclipse.jgit.transport;version="6.8.1";
+ org.eclipse.jgit.transport;version="6.9.0";
   uses:="javax.crypto,
    org.eclipse.jgit.util.io,
    org.eclipse.jgit.lib,
@@ -200,21 +200,21 @@
    org.eclipse.jgit.transport.resolver,
    org.eclipse.jgit.storage.pack,
    org.eclipse.jgit.errors",
- org.eclipse.jgit.transport.http;version="6.8.1";
+ org.eclipse.jgit.transport.http;version="6.9.0";
   uses:="javax.net.ssl",
- org.eclipse.jgit.transport.resolver;version="6.8.1";
+ org.eclipse.jgit.transport.resolver;version="6.9.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.lib",
- org.eclipse.jgit.treewalk;version="6.8.1";
+ org.eclipse.jgit.treewalk;version="6.9.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="6.8.1";
+ org.eclipse.jgit.treewalk.filter;version="6.9.0";
   uses:="org.eclipse.jgit.treewalk",
- org.eclipse.jgit.util;version="6.8.1";
+ org.eclipse.jgit.util;version="6.9.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.hooks,
    org.eclipse.jgit.revwalk,
@@ -227,18 +227,18 @@
    org.eclipse.jgit.treewalk,
    javax.net.ssl,
    org.eclipse.jgit.util.time",
- org.eclipse.jgit.util.io;version="6.8.1";
+ org.eclipse.jgit.util.io;version="6.9.0";
   uses:="org.eclipse.jgit.attributes,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.treewalk",
- org.eclipse.jgit.util.sha1;version="6.8.1",
- org.eclipse.jgit.util.time;version="6.8.1"
+ org.eclipse.jgit.util.sha1;version="6.9.0",
+ org.eclipse.jgit.util.time;version="6.9.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 Import-Package: com.googlecode.javaewah;version="[1.1.6,2.0.0)",
  javax.crypto,
  javax.management,
  javax.net.ssl,
  org.apache.commons.codec.digest;version="1.15.0",
- org.slf4j;version="[1.7.0,2.0.0)",
+ org.slf4j;version="[1.7.0,3.0.0)",
  org.xml.sax,
  org.xml.sax.helpers
diff --git a/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF
index 4db2870..d5f39e0 100644
--- a/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
 Bundle-Name: org.eclipse.jgit - Sources
 Bundle-SymbolicName: org.eclipse.jgit.source
 Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.8.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit;version="6.8.1.qualifier";roots="."
+Bundle-Version: 6.9.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit;version="6.9.0.qualifier";roots="."
diff --git a/org.eclipse.jgit/pom.xml b/org.eclipse.jgit/pom.xml
index 8e18b4c..72dc69e 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>6.8.1-SNAPSHOT</version>
+    <version>6.9.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit</artifactId>
diff --git a/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties b/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
index 19c9008..bbfd0b0 100644
--- a/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
+++ b/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
@@ -716,7 +716,6 @@
 shortReadOfOptionalDIRCExtensionExpectedAnotherBytes=Short read of optional DIRC extension {0}; expected another {1} bytes within the section.
 shortSkipOfBlock=Short skip of block.
 shutdownCleanup=Cleanup {} during JVM shutdown
-shutdownCleanupFailed=Cleanup during JVM shutdown failed
 shutdownCleanupListenerFailed=Cleanup of {0} during JVM shutdown failed
 signatureVerificationError=Signature verification failed
 signatureVerificationUnavailable=No signature verifier registered
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java
index 38e795b..a1c6478 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java
@@ -9,6 +9,7 @@
  */
 package org.eclipse.jgit.api;
 
+import static org.eclipse.jgit.api.CherryPickCommitMessageProvider.ORIGINAL;
 import static org.eclipse.jgit.lib.Constants.OBJECT_ID_ABBREV_STRING_LENGTH;
 
 import java.io.IOException;
@@ -66,6 +67,8 @@
 
 	private String ourCommitName = null;
 
+	private CherryPickCommitMessageProvider messageProvider = ORIGINAL;
+
 	private MergeStrategy strategy = MergeStrategy.RECURSIVE;
 
 	private ContentMergeStrategy contentStrategy;
@@ -168,8 +171,10 @@
 					dco.checkout();
 					if (!noCommit) {
 						try (Git git = new Git(getRepository())) {
+							String commitMessage = messageProvider
+									.getCherryPickedCommitMessage(srcCommit);
 							newHead = git.commit()
-									.setMessage(srcCommit.getFullMessage())
+									.setMessage(commitMessage)
 									.setReflogComment(reflogPrefix + " " //$NON-NLS-1$
 											+ srcCommit.getShortMessage())
 									.setAuthor(srcCommit.getAuthorIdent())
@@ -297,6 +302,22 @@
 	}
 
 	/**
+	 * Set a message provider for a target cherry-picked commit<br>
+	 * By default original commit message is used (see
+	 * {@link CherryPickCommitMessageProvider#ORIGINAL})
+	 *
+	 * @param messageProvider
+	 *            the commit message provider
+	 * @return {@code this}
+	 * @since 6.9
+	 */
+	public CherryPickCommand setCherryPickCommitMessageProvider(
+			CherryPickCommitMessageProvider messageProvider) {
+		this.messageProvider = messageProvider;
+		return this;
+	}
+
+	/**
 	 * Set the prefix to use in the reflog.
 	 * <p>
 	 * This is primarily needed for implementing rebase in terms of
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommitMessageProvider.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommitMessageProvider.java
new file mode 100644
index 0000000..50d65b6
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommitMessageProvider.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2023 Dmitrii Naumenko <dmitrii.naumenko@jetbrains.com>
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is aailable at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.api;
+
+import java.util.List;
+
+import org.eclipse.jgit.revwalk.FooterLine;
+import org.eclipse.jgit.revwalk.RevCommit;
+
+/**
+ * The interface is used to construct a cherry-picked commit message based on
+ * the original commit
+ *
+ * @see #ORIGINAL
+ * @see #ORIGINAL_WITH_REFERENCE
+ * @since 6.9
+ */
+public interface CherryPickCommitMessageProvider {
+
+	/**
+	 * This provider returns the original commit message
+	 */
+	static final CherryPickCommitMessageProvider ORIGINAL = RevCommit::getFullMessage;
+
+	/**
+	 * This provider returns the original commit message with original commit
+	 * hash in SHA-1 form.<br>
+	 * Example:
+	 *
+	 * <pre>
+	 * <code>my original commit message
+	 *
+	 * (cherry picked from commit 75355897dc28e9975afed028c1a6d8c6b97b2a3c)</code>
+	 * </pre>
+	 *
+	 * This is similar to <code>-x</code> flag in git-scm (see <a href=
+	 * "https://git-scm.com/docs/git-cherry-pick#_options">https://git-scm.com/docs/git-cherry-pick#_options</a>)
+	 */
+	static final CherryPickCommitMessageProvider ORIGINAL_WITH_REFERENCE = srcCommit -> {
+		String fullMessage = srcCommit.getFullMessage();
+
+		// Don't add extra new line after footer (aka trailer)
+		// https://stackoverflow.com/questions/70007405/git-log-exclude-cherry-pick-messages-for-trailers
+		// https://lore.kernel.org/git/7vmx136cdc.fsf@alter.siamese.dyndns.org
+		String separator = messageEndsWithFooter(srcCommit) ? "\n" : "\n\n"; //$NON-NLS-1$//$NON-NLS-2$
+		String revisionString = srcCommit.getName();
+		return String.format("%s%s(cherry picked from commit %s)", //$NON-NLS-1$
+				fullMessage, separator, revisionString);
+	};
+
+	/**
+	 * @param srcCommit
+	 *            original cherry-picked commit
+	 * @return target cherry-picked commit message
+	 */
+	String getCherryPickedCommitMessage(RevCommit srcCommit);
+
+	private static boolean messageEndsWithFooter(RevCommit srcCommit) {
+		byte[] rawBuffer = srcCommit.getRawBuffer();
+		List<FooterLine> footers = srcCommit.getFooterLines();
+		int maxFooterEnd = footers.stream().mapToInt(FooterLine::getEndOffset)
+				.max().orElse(-1);
+		return rawBuffer.length == maxFooterEnd;
+	}
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java
index 0f7b8af..757aff8 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java
@@ -1064,12 +1064,16 @@
 		String authorScript = toAuthorScript(author);
 		rebaseState.createFile(AUTHOR_SCRIPT, authorScript);
 		rebaseState.createFile(MESSAGE, commitToPick.getFullMessage());
-		ByteArrayOutputStream bos = new ByteArrayOutputStream();
-		try (DiffFormatter df = new DiffFormatter(bos)) {
-			df.setRepository(repo);
-			df.format(commitToPick.getParent(0), commitToPick);
+		if (commitToPick.getParentCount() > 0) {
+			ByteArrayOutputStream bos = new ByteArrayOutputStream();
+			try (DiffFormatter df = new DiffFormatter(bos)) {
+				df.setRepository(repo);
+				df.format(commitToPick.getParent(0), commitToPick);
+			}
+			rebaseState.createFile(PATCH, new String(bos.toByteArray(), UTF_8));
+		} else {
+			rebaseState.createFile(PATCH, ""); //$NON-NLS-1$
 		}
-		rebaseState.createFile(PATCH, new String(bos.toByteArray(), UTF_8));
 		rebaseState.createFile(STOPPED_SHA,
 				repo.newObjectReader()
 				.abbreviate(
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java
index 700b54a..ef464e3 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java
@@ -745,7 +745,6 @@
 	/***/ public String shortReadOfOptionalDIRCExtensionExpectedAnotherBytes;
 	/***/ public String shortSkipOfBlock;
 	/***/ public String shutdownCleanup;
-	/***/ public String shutdownCleanupFailed;
 	/***/ public String shutdownCleanupListenerFailed;
 	/***/ public String signatureVerificationError;
 	/***/ public String signatureVerificationUnavailable;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/commitgraph/ChangedPathFilter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/commitgraph/ChangedPathFilter.java
index 53d921e..ad3ce50 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/commitgraph/ChangedPathFilter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/commitgraph/ChangedPathFilter.java
@@ -87,6 +87,7 @@
 	 *            the paths that the filter must match
 	 * @return the corresponding filter
 	 */
+	@SuppressWarnings("ByteBufferBackingArray")
 	public static ChangedPathFilter fromPaths(Set<ByteBuffer> paths) {
 		if (paths.isEmpty()) {
 			return EMPTY;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsInserter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsInserter.java
index 2f8d964..dfab7ba 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsInserter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsInserter.java
@@ -83,6 +83,8 @@
 	private boolean rollback;
 	private boolean checkExisting = true;
 
+	private int minBytesForObjectSizeIndex = -1;
+
 	/**
 	 * Initialize a new inserter.
 	 *
@@ -91,6 +93,8 @@
 	 */
 	protected DfsInserter(DfsObjDatabase db) {
 		this.db = db;
+		PackConfig pc = new PackConfig(db.getRepository().getConfig());
+		this.minBytesForObjectSizeIndex = pc.getMinBytesForObjSizeIndex();
 	}
 
 	/**
@@ -109,6 +113,20 @@
 		this.compression = compression;
 	}
 
+	/**
+	 * Set minimum size for an object to be included in the object size index.
+	 *
+	 * <p>
+	 * Use 0 for all and -1 for nothing (the pack won't have object size index).
+	 *
+	 * @param minBytes
+	 *            only objects with size bigger or equal to this are included in
+	 *            the index.
+	 */
+	protected void setMinBytesForObjectSizeIndex(int minBytes) {
+		this.minBytesForObjectSizeIndex = minBytes;
+	}
+
 	@Override
 	public DfsPackParser newPackParser(InputStream in) throws IOException {
 		return new DfsPackParser(db, this, in);
@@ -195,11 +213,7 @@
 		sortObjectsById();
 
 		PackIndex index = writePackIndex(packDsc, packHash, objectList);
-		PackConfig pConfig = new PackConfig(db.getRepository().getConfig());
-		if (pConfig.isWriteObjSizeIndex()) {
-			writeObjectSizeIndex(packDsc, objectList,
-					pConfig.getMinBytesForObjSizeIndex());
-		}
+		writeObjectSizeIndex(packDsc, objectList);
 		db.commitPack(Collections.singletonList(packDsc), null);
 		rollback = false;
 
@@ -323,10 +337,14 @@
 	}
 
 	void writeObjectSizeIndex(DfsPackDescription pack,
-			List<PackedObjectInfo> packedObjs, int minSize) throws IOException {
+			List<PackedObjectInfo> packedObjs) throws IOException {
+		if (minBytesForObjectSizeIndex < 0) {
+			return;
+		}
 		try (DfsOutputStream os = db.writeFile(pack, PackExt.OBJECT_SIZE_INDEX);
 				CountingOutputStream cnt = new CountingOutputStream(os)) {
-			PackObjectSizeIndexWriter.createWriter(os, minSize)
+			PackObjectSizeIndexWriter
+					.createWriter(os, minBytesForObjectSizeIndex)
 					.write(packedObjs);
 			pack.addFileExt(OBJECT_SIZE_INDEX);
 			pack.setBlockSize(OBJECT_SIZE_INDEX, os.blockSize());
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackParser.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackParser.java
index 8c7b0ec..a38ce91 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackParser.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackParser.java
@@ -26,7 +26,6 @@
 import org.eclipse.jgit.lib.AnyObjectId;
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.ProgressMonitor;
-import org.eclipse.jgit.storage.pack.PackConfig;
 import org.eclipse.jgit.transport.PackLock;
 import org.eclipse.jgit.transport.PackParser;
 import org.eclipse.jgit.transport.PackedObjectInfo;
@@ -123,11 +122,7 @@
 			packDsc.setBlockSize(PACK, blockSize);
 
 			writePackIndex();
-			PackConfig pConfig = new PackConfig(objdb.getRepository().getConfig());
-			if (pConfig.isWriteObjSizeIndex()) {
-				objins.writeObjectSizeIndex(packDsc, getSortedObjectList(null),
-						pConfig.getMinBytesForObjSizeIndex());
-			}
+			objins.writeObjectSizeIndex(packDsc, getSortedObjectList(null));
 			objdb.commitPack(Collections.singletonList(packDsc), null);
 			rollback = false;
 
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java
index 3f0adcb..c722c06 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java
@@ -28,6 +28,7 @@
 import java.util.zip.DataFormatException;
 import java.util.zip.Inflater;
 
+import org.eclipse.jgit.annotations.NonNull;
 import org.eclipse.jgit.errors.IncorrectObjectTypeException;
 import org.eclipse.jgit.errors.MissingObjectException;
 import org.eclipse.jgit.errors.StoredObjectRepresentationNotAvailableException;
@@ -120,11 +121,23 @@
 		for (DfsPackFile pack : db.getPacks()) {
 			PackBitmapIndex bitmapIndex = pack.getBitmapIndex(this);
 			if (bitmapIndex != null)
-				return new BitmapIndexImpl(bitmapIndex);
+				return createBitmapIndex(bitmapIndex);
 		}
 		return null;
 	}
 
+	/**
+	 * Give subclasses a chance to record pack index stats
+	 *
+	 * @param packBitmapIndex
+	 *            packBitmapIndex found in a pack (never null)
+	 * @return an instance of BitmapIndex
+	 */
+	protected BitmapIndex createBitmapIndex(
+			@NonNull PackBitmapIndex packBitmapIndex) {
+		return new BitmapIndexImpl(packBitmapIndex);
+	}
+
 	@Override
 	public Optional<CommitGraph> getCommitGraph() throws IOException {
 		for (DfsPackFile pack : db.getPacks()) {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/BasePackBitmapIndex.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/BasePackBitmapIndex.java
index 906fade..c2b3926 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/BasePackBitmapIndex.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/BasePackBitmapIndex.java
@@ -35,6 +35,50 @@
 		return bitmaps;
 	}
 
+	@Override
+	public int getBaseBitmapCount() {
+		int bases = 0;
+		for (StoredBitmap sb : getBitmaps()) {
+			if (sb.isBase()) {
+				bases += 1;
+			}
+		}
+		return bases;
+	}
+
+	@Override
+	public long getBaseBitmapSizeInBytes() {
+		long baseSize = 0;
+		for (StoredBitmap sb : getBitmaps()) {
+			if (sb.isBase()) {
+				baseSize += sb.getCurrentSizeInBytes();
+			}
+		}
+		return baseSize;
+	}
+
+	@Override
+	public int getXorBitmapCount() {
+		int xored = 0;
+		for (StoredBitmap sb : getBitmaps()) {
+			if (!sb.isBase()) {
+				xored += 1;
+			}
+		}
+		return xored;
+	}
+
+	@Override
+	public long getXorBitmapSizeInBytes() {
+		long xorSize = 0;
+		for (StoredBitmap sb : getBitmaps()) {
+			if (!sb.isBase()) {
+				xorSize += sb.getCurrentSizeInBytes();
+			}
+		}
+		return xorSize;
+	}
+
 	/**
 	 * Data representation of the bitmap entry restored from a pack index. The
 	 * commit of the bitmap is the map key.
@@ -74,8 +118,9 @@
 		EWAHCompressedBitmap getBitmapWithoutCaching() {
 			// Fast path to immediately return the expanded result.
 			Object r = bitmapContainer;
-			if (r instanceof EWAHCompressedBitmap)
+			if (r instanceof EWAHCompressedBitmap) {
 				return (EWAHCompressedBitmap) r;
+			}
 
 			// Expand the bitmap but not cache the result.
 			XorCompressedBitmap xb = (XorCompressedBitmap) r;
@@ -100,10 +145,38 @@
 		int getFlags() {
 			return flags;
 		}
+
+		/**
+		 * This bitmap is (currently) a base or a XOR mask
+		 *
+		 * @return true if this bitmap is a base (a ready map).
+		 */
+		boolean isBase() {
+			return bitmapContainer instanceof EWAHCompressedBitmap;
+		}
+
+		/**
+		 * Size in bytes of this bitmap in its current representation
+		 *
+		 * If this is a XOR'ed bitmap, size is different before/after
+		 * {@link #getBitmap()}. Before is the byte size of the xor mask,
+		 * afterwards is the size of the "ready" bitmap
+		 *
+		 * @return size in bytes of the bitmap in its current representation
+		 */
+		long getCurrentSizeInBytes() {
+			Object r = bitmapContainer;
+			if (r instanceof EWAHCompressedBitmap) {
+				return ((EWAHCompressedBitmap) r).sizeInBytes();
+			}
+			XorCompressedBitmap xor = ((XorCompressedBitmap) r);
+			return xor.bitmap.sizeInBytes();
+		}
 	}
 
 	private static final class XorCompressedBitmap {
 		final EWAHCompressedBitmap bitmap;
+
 		final StoredBitmap xorBitmap;
 
 		XorCompressedBitmap(EWAHCompressedBitmap b, StoredBitmap xb) {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
index 5409c4f..fc058ab 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
@@ -1934,7 +1934,7 @@
 					token.close();
 				}
 				if (wasLocked) {
-					FileUtils.delete(pidFile.toFile(), FileUtils.RETRY);
+					FileUtils.delete(pidFile.toFile(), FileUtils.RETRY | FileUtils.SKIP_MISSING);
 				}
 			} catch (IOException e) {
 				LOG.error(MessageFormat
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LooseObjects.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LooseObjects.java
index 278c846..b4bb2a9 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LooseObjects.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LooseObjects.java
@@ -167,6 +167,9 @@
 		while (readAttempts < MAX_LOOSE_OBJECT_STALE_READ_ATTEMPTS) {
 			readAttempts++;
 			File path = fileFor(id);
+			if (trustFolderStat && !path.exists()) {
+				break;
+			}
 			try {
 				return getObjectLoader(curs, path, id);
 			} catch (FileNotFoundException noFile) {
@@ -279,7 +282,7 @@
 			// that already exists. We can't be sure renameTo() would
 			// fail on all platforms if dst exists, so we check first.
 			//
-			FileUtils.delete(tmp, FileUtils.RETRY);
+			FileUtils.delete(tmp, FileUtils.RETRY | FileUtils.SKIP_MISSING);
 			return InsertLooseObjectResult.EXISTS_LOOSE;
 		}
 
@@ -297,7 +300,7 @@
 			// Any other IO error is considered a failure.
 			//
 			LOG.error(e.getMessage(), e);
-			FileUtils.delete(tmp, FileUtils.RETRY);
+			FileUtils.delete(tmp, FileUtils.RETRY | FileUtils.SKIP_MISSING);
 			return InsertLooseObjectResult.FAILURE;
 		}
 
@@ -309,7 +312,7 @@
 			// know what went wrong, so fail.
 			//
 			LOG.error(e.getMessage(), e);
-			FileUtils.delete(tmp, FileUtils.RETRY);
+			FileUtils.delete(tmp, FileUtils.RETRY | FileUtils.SKIP_MISSING);
 			return InsertLooseObjectResult.FAILURE;
 		}
 	}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java
index 579f931..9f21481 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java
@@ -548,11 +548,11 @@
 		// If the object is already in the repository, remove temporary file.
 		//
 		if (loose.hasCached(id)) {
-			FileUtils.delete(tmp, FileUtils.RETRY);
+			FileUtils.delete(tmp, FileUtils.RETRY | FileUtils.SKIP_MISSING);
 			return InsertLooseObjectResult.EXISTS_LOOSE;
 		}
 		if (!createDuplicate && has(id)) {
-			FileUtils.delete(tmp, FileUtils.RETRY);
+			FileUtils.delete(tmp, FileUtils.RETRY | FileUtils.SKIP_MISSING);
 			return InsertLooseObjectResult.EXISTS_PACKED;
 		}
 		return loose.insert(tmp, id);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectoryInserter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectoryInserter.java
index 2f30a97..24fead8 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectoryInserter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectoryInserter.java
@@ -204,7 +204,7 @@
 			return tmp;
 		} finally {
 			if (delete) {
-				FileUtils.delete(tmp, FileUtils.RETRY);
+				FileUtils.delete(tmp, FileUtils.RETRY | FileUtils.SKIP_MISSING);
 			}
 		}
 	}
@@ -232,7 +232,7 @@
 			return tmp;
 		} finally {
 			if (delete) {
-				FileUtils.delete(tmp, FileUtils.RETRY);
+				FileUtils.delete(tmp, FileUtils.RETRY | FileUtils.SKIP_MISSING);
 			}
 		}
 	}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/Pack.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/Pack.java
index 333967c..212dbb2 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/Pack.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/Pack.java
@@ -63,8 +63,8 @@
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.ObjectLoader;
-import org.eclipse.jgit.util.Hex;
 import org.eclipse.jgit.util.FileUtils;
+import org.eclipse.jgit.util.Hex;
 import org.eclipse.jgit.util.LongList;
 import org.eclipse.jgit.util.NB;
 import org.eclipse.jgit.util.RawParseUtils;
@@ -1162,16 +1162,12 @@
 			// Once upon a time the bitmap or index files existed. Now one
 			// of them has been removed. Most likely an external gc has
 			// removed index, packfile or the bitmap
-			bitmapIdxFile = null;
-			return null;
 		} catch (IOException e) {
 			if (!FileUtils.isStaleFileHandleInCausalChain(e)) {
 				throw e;
 			}
 			// Ignore NFS stale handle exception the same way as
 			// FileNotFoundException above.
-			bitmapIdxFile = null;
-			return null;
 		}
 		bitmapIdxFile = null;
 		return null;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndex.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndex.java
index 2334bd4..def4f3d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndex.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndex.java
@@ -196,6 +196,41 @@
 	public abstract int getBitmapCount();
 
 	/**
+	 * Returns the number of bitmaps in this bitmap index ready to use, not
+	 * XOR'ed against other entries.
+	 *
+	 * @return the number of bitmaps in this bitmap index ready to use.
+	 */
+	public abstract int getBaseBitmapCount();
+
+	/**
+	 * Current size in bytes of all base bitmaps in the index.
+	 *
+	 * Resolving xors for bitmaps can affect this size.
+	 *
+	 * @return Current size (in bytes) of all base bitmaps in this index.
+	 */
+	public abstract long getBaseBitmapSizeInBytes();
+
+	/**
+	 * Returns the number of bitmaps in this bitmap index XOR'ed against other
+	 * entries.
+	 *
+	 * @return the number of bitmaps in this bitmap index represented as XOR
+	 *         masks.
+	 */
+	public abstract int getXorBitmapCount();
+
+	/**
+	 * Current size in bytes of all XOR'ed bitmaps in the index.
+	 *
+	 * Resolving xors for bitmaps can affect this size.
+	 *
+	 * @return Current size (in bytes) of all xor bitmaps in this index.
+	 */
+	public abstract long getXorBitmapSizeInBytes();
+
+	/**
 	 * Supplier that propagates IOException.
 	 *
 	 * @param <T>
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndexRemapper.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndexRemapper.java
index 91c3683..bb7cfd0 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndexRemapper.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndexRemapper.java
@@ -95,6 +95,26 @@
 	}
 
 	@Override
+	public int getBaseBitmapCount() {
+		return newPackIndex.getBaseBitmapCount();
+	}
+
+	@Override
+	public long getBaseBitmapSizeInBytes() {
+		return newPackIndex.getBaseBitmapSizeInBytes();
+	}
+
+	@Override
+	public int getXorBitmapCount() {
+		return newPackIndex.getXorBitmapCount();
+	}
+
+	@Override
+	public long getXorBitmapSizeInBytes() {
+		return newPackIndex.getXorBitmapSizeInBytes();
+	}
+
+	@Override
 	public EWAHCompressedBitmap ofObjectType(
 			EWAHCompressedBitmap bitmap, int type) {
 		return newPackIndex.ofObjectType(bitmap, type);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
index 6e02b36..9e95231 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
@@ -2029,8 +2029,8 @@
 		if (!shallowPack && useBitmaps) {
 			BitmapIndex bitmapIndex = reader.getBitmapIndex();
 			if (bitmapIndex != null) {
-				BitmapWalker bitmapWalker = new BitmapWalker(
-						walker, bitmapIndex, countingMonitor);
+				BitmapWalker bitmapWalker = new BitmapWalker(walker,
+						bitmapIndex, countingMonitor);
 				findObjectsToPackUsingBitmaps(bitmapWalker, want, have);
 				endPhase(countingMonitor);
 				stats.timeCounting = System.currentTimeMillis() - countingStart;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapPreparer.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapPreparer.java
index 8b5cea7..dabc1f0 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapPreparer.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapPreparer.java
@@ -28,16 +28,16 @@
 import org.eclipse.jgit.internal.JGitText;
 import org.eclipse.jgit.internal.revwalk.AddUnseenToBitmapFilter;
 import org.eclipse.jgit.internal.storage.file.BitmapIndexImpl;
-import org.eclipse.jgit.internal.storage.file.BitmapIndexImpl.CompressedBitmap;
 import org.eclipse.jgit.internal.storage.file.PackBitmapIndex;
 import org.eclipse.jgit.internal.storage.file.PackBitmapIndexBuilder;
 import org.eclipse.jgit.internal.storage.file.PackBitmapIndexRemapper;
+import org.eclipse.jgit.internal.storage.file.BitmapIndexImpl.CompressedBitmap;
 import org.eclipse.jgit.lib.AnyObjectId;
-import org.eclipse.jgit.lib.BitmapIndex.BitmapBuilder;
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.ObjectReader;
 import org.eclipse.jgit.lib.ProgressMonitor;
+import org.eclipse.jgit.lib.BitmapIndex.BitmapBuilder;
 import org.eclipse.jgit.revwalk.BitmapWalker;
 import org.eclipse.jgit.revwalk.ObjectWalk;
 import org.eclipse.jgit.revwalk.RevCommit;
@@ -77,6 +77,7 @@
 	private final int recentCommitSpan;
 	private final int distantCommitSpan;
 	private final int excessiveBranchCount;
+	private final int excessiveBranchTipCount;
 	private final long inactiveBranchTimestamp;
 
 	PackWriterBitmapPreparer(ObjectReader reader,
@@ -96,6 +97,8 @@
 		this.recentCommitSpan = config.getBitmapRecentCommitSpan();
 		this.distantCommitSpan = config.getBitmapDistantCommitSpan();
 		this.excessiveBranchCount = config.getBitmapExcessiveBranchCount();
+		this.excessiveBranchTipCount = Math.max(excessiveBranchCount,
+				config.getBitmapExcessiveBranchTipCount());
 		long now = SystemReader.getInstance().getCurrentTime();
 		long ageInSeconds = (long) config.getBitmapInactiveBranchAgeInDays()
 				* DAY_IN_SECONDS;
@@ -163,11 +166,17 @@
 			rw2.setRetainBody(false);
 			rw2.setRevFilter(new NotInBitmapFilter(seen));
 
+			int newWantsCount = selectionHelper.newWantsByNewest.size();
+			int maxBranches = Math.min(excessiveBranchTipCount, newWantsCount);
+			Set<RevCommit> excessiveBranches = new HashSet<>(
+					selectionHelper.newWantsByNewest.subList(maxBranches,
+							newWantsCount));
 			// For each branch, do a revwalk to enumerate its commits. Exclude
 			// both reused commits and any commits seen in a previous branch.
 			// Then iterate through all new commits from oldest to newest,
 			// selecting well-spaced commits in this branch.
-			for (RevCommit rc : selectionHelper.newWantsByNewest) {
+			for (RevCommit rc : selectionHelper.newWantsByNewest.subList(0,
+					maxBranches)) {
 				BitmapBuilder tipBitmap = commitBitmapIndex.newBitmapBuilder();
 				rw2.markStart((RevCommit) rw2.peel(rw2.parseAny(rc)));
 				RevCommit rc2;
@@ -223,7 +232,7 @@
 					pm.update(1);
 
 					// Always pick the items in wants, prefer merge commits.
-					if (selectionHelper.newWants.remove(c)) {
+					if (!excessiveBranches.contains(c) && selectionHelper.newWants.remove(c)) {
 						if (nextIn > 0) {
 							nextFlg = 0;
 						}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/util/ShutdownHook.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/util/ShutdownHook.java
index d6c5a81..f52025f 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/util/ShutdownHook.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/util/ShutdownHook.java
@@ -82,7 +82,9 @@
 			}).get(30L, TimeUnit.SECONDS);
 		} catch (RejectedExecutionException | InterruptedException
 				| ExecutionException | TimeoutException e) {
-			LOG.error(JGitText.get().shutdownCleanupFailed, e);
+			// message isn't localized since during shutdown there's no
+			// guarantee which classes are still loaded
+			LOG.error("Cleanup during JVM shutdown failed", e); //$NON-NLS-1$
 		}
 		runner.shutdownNow();
 	}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/AbstractGpgSignatureVerifier.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/AbstractGpgSignatureVerifier.java
new file mode 100644
index 0000000..06a89dc
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/AbstractGpgSignatureVerifier.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2024, Thomas Wolf <twolf@apache.org> and others
+*
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Distribution License v. 1.0 which is available at
+* https://www.eclipse.org/org/documents/edl-v10.php.
+*
+* SPDX-License-Identifier: BSD-3-Clause
+*/
+package org.eclipse.jgit.lib;
+
+import java.io.IOException;
+import java.util.Arrays;
+
+import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.revwalk.RevObject;
+import org.eclipse.jgit.revwalk.RevTag;
+import org.eclipse.jgit.util.RawParseUtils;
+
+/**
+ * Provides a base implementation of
+ * {@link GpgSignatureVerifier#verifySignature(RevObject, GpgConfig)}.
+ *
+ * @since 6.9
+ */
+public abstract class AbstractGpgSignatureVerifier
+		implements GpgSignatureVerifier {
+
+	@Override
+	public SignatureVerification verifySignature(RevObject object,
+			GpgConfig config) throws IOException {
+		if (object instanceof RevCommit) {
+			RevCommit commit = (RevCommit) object;
+			byte[] signatureData = commit.getRawGpgSignature();
+			if (signatureData == null) {
+				return null;
+			}
+			byte[] raw = commit.getRawBuffer();
+			// Now remove the GPG signature
+			byte[] header = { 'g', 'p', 'g', 's', 'i', 'g' };
+			int start = RawParseUtils.headerStart(header, raw, 0);
+			if (start < 0) {
+				return null;
+			}
+			int end = RawParseUtils.nextLfSkippingSplitLines(raw, start);
+			// start is at the beginning of the header's content
+			start -= header.length + 1;
+			// end is on the terminating LF; we need to skip that, too
+			if (end < raw.length) {
+				end++;
+			}
+			byte[] data = new byte[raw.length - (end - start)];
+			System.arraycopy(raw, 0, data, 0, start);
+			System.arraycopy(raw, end, data, start, raw.length - end);
+			return verify(config, data, signatureData);
+		} else if (object instanceof RevTag) {
+			RevTag tag = (RevTag) object;
+			byte[] signatureData = tag.getRawGpgSignature();
+			if (signatureData == null) {
+				return null;
+			}
+			byte[] raw = tag.getRawBuffer();
+			// The signature is just tacked onto the end of the message, which
+			// is last in the buffer.
+			byte[] data = Arrays.copyOfRange(raw, 0,
+					raw.length - signatureData.length);
+			return verify(config, data, signatureData);
+		}
+		return null;
+	}
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
index c7b4e45..76b4d71 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
@@ -751,6 +751,13 @@
 	public static final String CONFIG_KEY_BITMAP_EXCESSIVE_BRANCH_COUNT = "bitmapexcessivebranchcount";
 
 	/**
+	 * The "pack.bitmapExcessiveBranchTipCount" key
+	 *
+	 * @since 6.9
+	 */
+	public static final String CONFIG_KEY_BITMAP_EXCESSIVE_BRANCH_TIP_COUNT = "bitmapexcessivebranchtipcount";
+
+	/**
 	 * The "pack.bitmapExcludedRefsPrefixes" key
 	 * @since 5.13.2
 	 */
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/GpgSignatureVerifier.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/GpgSignatureVerifier.java
index a7a39c9..91c9bab 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/GpgSignatureVerifier.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/GpgSignatureVerifier.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021, Thomas Wolf <thomas.wolf@paranor.ch> and others
+ * Copyright (C) 2021, 2024 Thomas Wolf <twolf@apache.org> and others
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Distribution License v. 1.0 which is available at
@@ -18,7 +18,8 @@
 import org.eclipse.jgit.revwalk.RevObject;
 
 /**
- * A {@code GpgVerifier} can verify GPG signatures on git commits and tags.
+ * A {@code GpgSignatureVerifier} can verify GPG signatures on git commits and
+ * tags.
  *
  * @since 5.11
  */
@@ -42,6 +43,28 @@
 	SignatureVerification verifySignature(@NonNull RevObject object,
 			@NonNull GpgConfig config) throws IOException;
 
+	/**
+	 * Verifies a given signature for given data.
+	 *
+	 * @param config
+	 *            the {@link GpgConfig}
+	 * @param data
+	 *            the signature is for
+	 * @param signatureData
+	 *            the ASCII-armored signature
+	 * @return a {@link SignatureVerification} describing the outcome
+	 * @throws IOException
+	 *             if the signature cannot be parsed
+	 * @throws JGitInternalException
+	 *             if signature verification fails
+	 * @since 6.9
+	 */
+	default SignatureVerification verify(@NonNull GpgConfig config, byte[] data,
+			byte[] signatureData) throws IOException {
+		// Default implementation for backwards compatibility; override as
+		// appropriate
+		return verify(data, signatureData);
+	}
 
 	/**
 	 * Verifies a given signature for given data.
@@ -55,7 +78,10 @@
 	 *             if the signature cannot be parsed
 	 * @throws JGitInternalException
 	 *             if signature verification fails
+	 * @deprecated since 6.9, use {@link #verify(GpgConfig, byte[], byte[])}
+	 *             instead
 	 */
+	@Deprecated
 	public SignatureVerification verify(byte[] data, byte[] signatureData)
 			throws IOException;
 
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/FooterLine.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/FooterLine.java
index f58eb82..fa7fb31 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/FooterLine.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/FooterLine.java
@@ -81,14 +81,25 @@
 			// empty
 		}
 
-		int msgB = RawParseUtils.commitMessage(raw, 0);
+		// The first non-header line is never a footer.
+		int msgB = RawParseUtils.nextLfSkippingSplitLines(raw,
+				RawParseUtils.hasAnyKnownHeaders(raw)
+						? RawParseUtils.commitMessage(raw, 0)
+						: 0);
 		ArrayList<FooterLine> r = new ArrayList<>(4);
 		Charset enc = RawParseUtils.guessEncoding(raw);
 
 		// Search for the beginning of last paragraph
 		int parStart = parEnd;
-		for (; parStart > msgB && (raw[parStart - 1] != '\n' || raw[parStart - 2] != '\n'); --parStart) {
-			// empty
+		for (; parStart > msgB; --parStart) {
+			if (parStart < 2) {
+				// Too close to beginning: this is not a raw message
+				parStart = 0;
+				break;
+			}
+			if (raw[parStart - 1] == '\n' && raw[parStart - 2] == '\n') {
+				break;
+			}
 		}
 
 		for (int ptr = parStart; ptr < parEnd;) {
@@ -101,7 +112,8 @@
 			}
 
 			// Skip over the ': *' at the end of the key before the value.
-			int valStart, valEnd;
+			int valStart;
+			int valEnd;
 			for (valStart = keyEnd + 1; valStart < raw.length
 					&& raw[valStart] == ' '; ++valStart) {
 				// empty
@@ -115,6 +127,10 @@
 					break;
 				}
 			}
+			if (keyStart == msgB) {
+				// Fist line cannot be a footer
+				continue;
+			}
 			r.add(new FooterLine(raw, enc, keyStart, keyEnd, valStart, valEnd));
 		}
 
@@ -235,6 +251,28 @@
 		return RawParseUtils.decode(enc, buffer, lt, gt - 1);
 	}
 
+	/**
+	 * @return start offset of the footer relative to the original raw message
+	 *         byte buffer
+	 *
+	 * @see #fromMessage(byte[])
+	 * @since 6.9
+	 */
+	public int getStartOffset() {
+		return keyStart;
+	}
+
+	/**
+	 * @return end offset of the footer relative to the original raw message
+	 *         byte buffer
+	 *
+	 * @see #fromMessage(byte[])
+	 * @since 6.9
+	 */
+	public int getEndOffset() {
+		return valEnd;
+	}
+
 	@Override
 	public String toString() {
 		return getKey() + ": " + getValue(); //$NON-NLS-1$
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 1f0f131..743a8cc 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevCommit.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevCommit.java
@@ -17,7 +17,6 @@
 import java.nio.charset.Charset;
 import java.nio.charset.IllegalCharsetNameException;
 import java.nio.charset.UnsupportedCharsetException;
-import java.util.Arrays;
 import java.util.List;
 
 import org.eclipse.jgit.annotations.Nullable;
@@ -409,7 +408,7 @@
 			return null;
 		}
 		final int end = RawParseUtils.headerEnd(raw, start);
-		return Arrays.copyOfRange(raw, start, end);
+		return RawParseUtils.headerValue(raw, start, end);
 	}
 
 	/**
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 414af30..61a91e7 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/StartGenerator.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/StartGenerator.java
@@ -94,18 +94,18 @@
 		final DateRevQueue pending;
 		int pendingOutputType = 0;
 		if (q instanceof DateRevQueue) {
-			pending = (DateRevQueue) q;
+			pending = (DateRevQueue)q;
 		} else {
 			pending = RevWalk.newDateRevQueue(q);
 		}
+		if (rf != RevFilter.ALL && w.getRewriteParents()) {
+			pendingOutputType |= HAS_REWRITE | NEEDS_REWRITE;
+		}
 		if (tf != TreeFilter.ALL) {
-			int rewriteFlag;
 			if (w.getRewriteParents()) {
 				pendingOutputType |= HAS_REWRITE | NEEDS_REWRITE;
-				rewriteFlag = RevWalk.REWRITE;
-			} else
-				rewriteFlag = 0;
-			rf = AndRevFilter.create(new TreeRevFilter(w, tf, rewriteFlag), rf);
+			}
+			rf = AndRevFilter.create(new TreeRevFilter(w, tf), rf);
 		}
 
 		walker.queue = q;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TreeRevFilter.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TreeRevFilter.java
index 43571a6..4085954 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TreeRevFilter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TreeRevFilter.java
@@ -60,21 +60,8 @@
 	 * Create a {@link org.eclipse.jgit.revwalk.filter.RevFilter} from a
 	 * {@link org.eclipse.jgit.treewalk.filter.TreeFilter}.
 	 *
-	 * @param walker
-	 *            walker used for reading trees.
-	 * @param t
-	 *            filter to compare against any changed paths in each commit. If
-	 *            a {@link org.eclipse.jgit.revwalk.FollowFilter}, will be
-	 *            replaced with a new filter following new paths after a rename.
-	 * @since 3.5
-	 */
-	public TreeRevFilter(RevWalk walker, TreeFilter t) {
-		this(walker, t, 0);
-	}
-
-	/**
-	 * Create a filter for the first phase of a parent-rewriting limited
-	 * revision walk.
+	 * When revWalk's rewrite parent flag is set, it creates a filter for the
+	 * first phase of a parent-rewriting limited revision walk.
 	 * <p>
 	 * This filter is ANDed to evaluate before all other filters and ties the
 	 * configured {@link TreeFilter} into the revision walking process.
@@ -91,14 +78,13 @@
 	 *            filter to compare against any changed paths in each commit. If
 	 *            a {@link FollowFilter}, will be replaced with a new filter
 	 *            following new paths after a rename.
-	 * @param rewriteFlag
-	 *            flag to color commits to be removed from the simplified DAT.
+	 * @since 3.5
 	 */
-	TreeRevFilter(RevWalk walker, TreeFilter t, int rewriteFlag) {
+	public TreeRevFilter(RevWalk walker, TreeFilter t) {
 		pathFilter = new TreeWalk(walker.reader);
 		pathFilter.setFilter(t);
 		pathFilter.setRecursive(t.shouldBeRecursive());
-		this.rewriteFlag = rewriteFlag;
+		this.rewriteFlag = walker.getRewriteParents() ? RevWalk.REWRITE : 0;
 	}
 
 	@Override
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackConfig.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackConfig.java
index d524524..8373d68 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackConfig.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackConfig.java
@@ -16,6 +16,7 @@
 import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_BITMAP_CONTIGUOUS_COMMIT_COUNT;
 import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_BITMAP_DISTANT_COMMIT_SPAN;
 import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_BITMAP_EXCESSIVE_BRANCH_COUNT;
+import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_BITMAP_EXCESSIVE_BRANCH_TIP_COUNT;
 import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_BITMAP_EXCLUDED_REFS_PREFIXES;
 import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_BITMAP_INACTIVE_BRANCH_AGE_INDAYS;
 import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_BITMAP_RECENT_COMMIT_COUNT;
@@ -240,6 +241,17 @@
 	public static final int DEFAULT_BITMAP_EXCESSIVE_BRANCH_COUNT = 100;
 
 	/**
+	 * Default maxium count of branches to create tip bitmaps for. If the number
+	 * of branches exceeds this, then tip bitmaps will only be created for the
+	 * most recently active branches. Branches exceeding this count will receive
+	 * 0 bitmaps: {@value #DEFAULT_BITMAP_EXCESSIVE_BRANCH_TIP_COUNT}
+	 *
+	 * @see #setBitmapExcessiveBranchTipCount(int)
+	 * @since 6.9
+	 */
+	public static final int DEFAULT_BITMAP_EXCESSIVE_BRANCH_TIP_COUNT = Integer.MAX_VALUE;
+
+	/**
 	 * Default age at which a branch is considered inactive. Age is taken as the
 	 * number of days ago that the most recent commit was made to a branch. Only
 	 * affects bitmap processing if bitmaps are enabled and the
@@ -330,6 +342,8 @@
 
 	private int bitmapExcessiveBranchCount = DEFAULT_BITMAP_EXCESSIVE_BRANCH_COUNT;
 
+	private int bitmapExcessiveBranchTipCount = DEFAULT_BITMAP_EXCESSIVE_BRANCH_TIP_COUNT;
+
 	private int bitmapInactiveBranchAgeInDays = DEFAULT_BITMAP_INACTIVE_BRANCH_AGE_IN_DAYS;
 
 	private String[] bitmapExcludedRefsPrefixes = DEFAULT_BITMAP_EXCLUDED_REFS_PREFIXES;
@@ -1190,7 +1204,8 @@
 	 * a repository exceeds this number and bitmaps are enabled, "inactive"
 	 * branches will have fewer bitmaps than "active" branches.
 	 *
-	 * Default setting: {@value #DEFAULT_BITMAP_EXCESSIVE_BRANCH_COUNT}
+	 * Default setting: {@value #DEFAULT_BITMAP_EXCESSIVE_BRANCH_COUNT}. See
+	 * also {@link #getBitmapExcessiveBranchTipCount}.
 	 *
 	 * @return the count of branches deemed "excessive"
 	 * @since 4.2
@@ -1204,7 +1219,8 @@
 	 * a repository exceeds this number and bitmaps are enabled, "inactive"
 	 * branches will have fewer bitmaps than "active" branches.
 	 *
-	 * Default setting: {@value #DEFAULT_BITMAP_EXCESSIVE_BRANCH_COUNT}
+	 * Default setting: {@value #DEFAULT_BITMAP_EXCESSIVE_BRANCH_COUNT}. See
+	 * also {@link #setBitmapExcessiveBranchTipCount(int)}.
 	 *
 	 * @param count
 	 *            the count of branches deemed "excessive"
@@ -1215,6 +1231,57 @@
 	}
 
 	/**
+	 * Get the count of branches deemed "excessive". If the count of branches in
+	 * a repository exceeds this number and bitmaps are enabled, branches
+	 * exceeding this count will have no bitmaps selected. Branches are indexed
+	 * most recent first.
+	 *
+	 * <li>The first {@code DEFAULT_BITMAP_EXCESSIVE_BRANCH_COUNT} most active
+	 * branches have full bitmap coverage.
+	 * <li>The {@code DEFAULT_BITMAP_EXCESSIVE_BRANCH_COUNT} to {@code
+	 * 	  DEFAULT_BITMAP_EXCESSIVE_BRANCH_TIP_COUNT} most active branches have
+	 * only the tip commit covered.
+	 * <li>The remaining branches have no bitmap coverage.
+	 *
+	 * If {@link #getBitmapExcessiveBranchCount()} is greater, then that value
+	 * will override this value.
+	 *
+	 * Default setting: {@value #DEFAULT_BITMAP_EXCESSIVE_BRANCH_TIP_COUNT}
+	 *
+	 * @return the count of branch tips deemed "excessive"
+	 * @since 6.9
+	 */
+	public int getBitmapExcessiveBranchTipCount() {
+		return bitmapExcessiveBranchTipCount;
+	}
+
+	/**
+	 * Get the count of branches deemed "excessive". If the count of branches in
+	 * a repository exceeds this number and bitmaps are enabled, branches
+	 * exceeding this count will have no bitmaps selected. Branches are indexed
+	 * most recent first.
+	 *
+	 * <li>The first {@code DEFAULT_BITMAP_EXCESSIVE_BRANCH_COUNT} most active
+	 * branches have full bitmap coverage.
+	 * <li>The {@code DEFAULT_BITMAP_EXCESSIVE_BRANCH_COUNT} to {@code
+	 * 	  DEFAULT_BITMAP_EXCESSIVE_BRANCH_TIP_COUNT} most active branches have
+	 * only the tip commit covered.
+	 * <li>The remaining branches have no bitmap coverage.
+	 *
+	 * If {@link #getBitmapExcessiveBranchCount()} is greater, then that value
+	 * will override this value.
+	 *
+	 * Default setting: {@value #DEFAULT_BITMAP_EXCESSIVE_BRANCH_TIP_COUNT}
+	 *
+	 * @param count
+	 *            the count of branch tips deemed "excessive"
+	 * @since 6.9
+	 */
+	public void setBitmapExcessiveBranchTipCount(int count) {
+		bitmapExcessiveBranchTipCount = count;
+	}
+
+	/**
 	 * Get the age in days that marks a branch as "inactive".
 	 *
 	 * Default setting: {@value #DEFAULT_BITMAP_INACTIVE_BRANCH_AGE_IN_DAYS}
@@ -1390,6 +1457,9 @@
 		setBitmapExcessiveBranchCount(rc.getInt(CONFIG_PACK_SECTION,
 				CONFIG_KEY_BITMAP_EXCESSIVE_BRANCH_COUNT,
 				getBitmapExcessiveBranchCount()));
+		setBitmapExcessiveBranchTipCount(rc.getInt(CONFIG_PACK_SECTION,
+				CONFIG_KEY_BITMAP_EXCESSIVE_BRANCH_TIP_COUNT,
+				getBitmapExcessiveBranchTipCount()));
 		setBitmapInactiveBranchAgeInDays(rc.getInt(CONFIG_PACK_SECTION,
 				CONFIG_KEY_BITMAP_INACTIVE_BRANCH_AGE_INDAYS,
 				getBitmapInactiveBranchAgeInDays()));
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackFetchConnection.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackFetchConnection.java
index e0a3517..469a3d6 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackFetchConnection.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackFetchConnection.java
@@ -402,11 +402,14 @@
 	protected void doFetch(final ProgressMonitor monitor,
 			final Collection<Ref> want, final Set<ObjectId> have,
 			OutputStream outputStream) throws TransportException {
+		boolean hasObjects = !have.isEmpty();
 		try {
 			noProgress = monitor == NullProgressMonitor.INSTANCE;
 
-			markRefsAdvertised();
-			markReachable(want, have, maxTimeWanted(want));
+			if (hasObjects) {
+				markRefsAdvertised();
+			}
+			markReachable(want, have, maxTimeWanted(want, hasObjects));
 
 			if (TransferConfig.ProtocolVersion.V2
 					.equals(getProtocolVersion())) {
@@ -418,7 +421,7 @@
 				state = new TemporaryBuffer.Heap(Integer.MAX_VALUE);
 				pckState = new PacketLineOut(state);
 				try {
-					doFetchV2(monitor, want, outputStream);
+					doFetchV2(monitor, want, outputStream, hasObjects);
 				} finally {
 					clearState();
 				}
@@ -430,7 +433,7 @@
 				pckState = new PacketLineOut(state);
 			}
 			PacketLineOut output = statelessRPC ? pckState : pckOut;
-			if (sendWants(want, output)) {
+			if (sendWants(want, output, hasObjects)) {
 				boolean mayHaveShallow = depth != null || deepenSince != null || !deepenNots.isEmpty();
 				Set<ObjectId> shallowCommits = local.getObjectDatabase().getShallowCommits();
 				if (isCapableOf(GitProtocolConstants.CAPABILITY_SHALLOW)) {
@@ -457,7 +460,8 @@
 	}
 
 	private void doFetchV2(ProgressMonitor monitor, Collection<Ref> want,
-			OutputStream outputStream) throws IOException, CancelledException {
+			OutputStream outputStream, boolean hasObjects)
+			throws IOException, CancelledException {
 		sideband = true;
 		negotiateBegin();
 
@@ -479,7 +483,7 @@
 			pckState.writeString(capability);
 		}
 
-		if (!sendWants(want, pckState)) {
+		if (!sendWants(want, pckState, hasObjects)) {
 			// We already have everything we wanted.
 			return;
 		}
@@ -666,8 +670,12 @@
 		return local.getConfig().get(FetchConfig::new);
 	}
 
-	private int maxTimeWanted(Collection<Ref> wants) {
+	private int maxTimeWanted(Collection<Ref> wants, boolean hasObjects) {
 		int maxTime = 0;
+		if (!hasObjects) {
+			// we don't have any objects locally, we can immediately bail out
+			return maxTime;
+		}
 		for (Ref r : wants) {
 			try {
 				final RevObject obj = walk.parseAny(r.getObjectId());
@@ -769,7 +777,8 @@
 		}
 	}
 
-	private boolean sendWants(Collection<Ref> want, PacketLineOut p)
+	private boolean sendWants(Collection<Ref> want, PacketLineOut p,
+			boolean hasObjects)
 			throws IOException {
 		boolean first = true;
 		for (Ref r : want) {
@@ -778,7 +787,9 @@
 				continue;
 			}
 			// if depth is set we need to fetch the objects even if they are already available
-			if (transport.getDepth() == null) {
+			if (transport.getDepth() == null
+					// only check reachable objects when we have objects
+					&& hasObjects) {
 				try {
 					if (walk.parseAny(objectId).has(REACHABLE)) {
 						// We already have this object. Asking for it is
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PackParser.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PackParser.java
index c6bf77d..7224405 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PackParser.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PackParser.java
@@ -1566,7 +1566,7 @@
 	 * @param baseStreamPosition
 	 *            position of the base object in the incoming stream. The base
 	 *            must be before the delta, therefore {@code baseStreamPosition
-	 *            &lt; deltaStreamPosition}. This is <b>not</b> the position
+	 *            < deltaStreamPosition}. This is <b>not</b> the position
 	 *            returned by a prior end object event.
 	 * @param inflatedSize
 	 *            size of the delta when fully inflated. The size stored within
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateParser.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateParser.java
index 5009ecf..463d053 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateParser.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateParser.java
@@ -10,8 +10,8 @@
 
 package org.eclipse.jgit.transport;
 
-import static org.eclipse.jgit.transport.ReceivePack.parseCommand;
 import static org.eclipse.jgit.transport.GitProtocolConstants.CAPABILITY_PUSH_CERT;
+import static org.eclipse.jgit.transport.ReceivePack.parseCommand;
 
 import java.io.EOFException;
 import java.io.IOException;
@@ -317,7 +317,7 @@
 	 * certificate.
 	 * <p>
 	 * This method doesn't parse the first line {@code "push-cert \NUL
-	 * &lt;capabilities&gt;"}, but assumes the first line including the
+	 * <capabilities>"}, but assumes the first line including the
 	 * capabilities has already been handled by the caller.
 	 *
 	 * @param pckIn
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
index ac973a9..a8e1dae 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
@@ -1024,7 +1024,7 @@
 		File tempFile = null;
 		try {
 			tempFile = File.createTempFile("tempsymlinktarget", ""); //$NON-NLS-1$ //$NON-NLS-2$
-			File linkName = new File(tempFile.getParentFile(), "tempsymlink"); //$NON-NLS-1$
+			File linkName = new File(tempFile.getPath() + "-tempsymlink"); //$NON-NLS-1$
 			createSymLink(linkName, tempFile.getPath());
 			supportSymlinks = Boolean.TRUE;
 			linkName.delete();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/RawParseUtils.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/RawParseUtils.java
index 71fae81..46d0bc8 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/RawParseUtils.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/RawParseUtils.java
@@ -16,7 +16,12 @@
 import static org.eclipse.jgit.lib.ObjectChecker.author;
 import static org.eclipse.jgit.lib.ObjectChecker.committer;
 import static org.eclipse.jgit.lib.ObjectChecker.encoding;
+import static org.eclipse.jgit.lib.ObjectChecker.object;
+import static org.eclipse.jgit.lib.ObjectChecker.parent;
+import static org.eclipse.jgit.lib.ObjectChecker.tag;
 import static org.eclipse.jgit.lib.ObjectChecker.tagger;
+import static org.eclipse.jgit.lib.ObjectChecker.tree;
+import static org.eclipse.jgit.lib.ObjectChecker.type;
 
 import java.nio.ByteBuffer;
 import java.nio.charset.CharacterCodingException;
@@ -520,17 +525,24 @@
 	}
 
 	/**
-	 * Locate the end of the header.  Note that headers may be
-	 * more than one line long.
+	 * Locate the first end of line after the given position, while treating
+	 * following lines which are starting with spaces as part of the current
+	 * line.
+	 * <p>
+	 * For example, {@code nextLfSkippingSplitLines(
+	 * "row \n with space at beginning of a following line\nThe actual next line",
+	 * 0)} will return the position of {@code "\nThe actual next line"}.
+	 *
 	 * @param b
 	 *            buffer to scan.
 	 * @param ptr
-	 *            position within buffer to start looking for the end-of-header.
-	 * @return new position just after the header.  This is either
-	 * b.length, or the index of the header's terminating newline.
-	 * @since 5.1
+	 *            position within buffer to start looking for the next line.
+	 * @return new position just after the line end of the last line-split. This
+	 *         is either b.length, or the index of the current split-line's
+	 *         terminating newline.
+	 * @since 6.9
 	 */
-	public static final int headerEnd(final byte[] b, int ptr) {
+	public static final int nextLfSkippingSplitLines(final byte[] b, int ptr) {
 		final int sz = b.length;
 		while (ptr < sz) {
 			final byte c = b[ptr++];
@@ -538,7 +550,62 @@
 				return ptr - 1;
 			}
 		}
-		return ptr - 1;
+		return ptr;
+	}
+
+	/**
+	 * Extract a part of a buffer as a header value, removing the single blanks
+	 * at the front of continuation lines.
+	 *
+	 * @param b
+	 *            buffer to extract the header from
+	 * @param start
+	 *            of the header value, see
+	 *            {@link #headerStart(byte[], byte[], int)}
+	 * @param end
+	 *            of the header; see
+	 *            {@link #nextLfSkippingSplitLines(byte[], int)}
+	 * @return the header value, with blanks indicating continuation lines
+	 *         stripped
+	 * @since 6.9
+	 */
+	public static final byte[] headerValue(final byte[] b, int start, int end) {
+		byte[] data = new byte[end - start];
+		int out = 0;
+		byte last = '\0';
+		for (int in = start; in < end; in++) {
+			byte ch = b[in];
+			if (ch != ' ' || last != '\n') {
+				data[out++] = ch;
+			}
+			last = ch;
+		}
+		if (out == data.length) {
+			return data;
+		}
+		return Arrays.copyOf(data, out);
+	}
+
+	/**
+	 * Locate the first end of header after the given position. Note that
+	 * headers may be more than one line long.
+	 * <p>
+	 * Also note that there might be multiple headers. If you wish to find the
+	 * last header's end - call this in a loop.
+	 *
+	 * @param b
+	 *            buffer to scan.
+	 * @param ptr
+	 *            position within buffer to start looking for the header
+	 *            (normally a new-line).
+	 * @return new position just after the line end. This is either b.length, or
+	 *         the index of the header's terminating newline.
+	 * @since 5.1
+	 * @deprecated use {{@link #nextLfSkippingSplitLines}} directly instead
+	 */
+	@Deprecated
+	public static final int headerEnd(final byte[] b, int ptr) {
+		return nextLfSkippingSplitLines(b, ptr);
 	}
 
 	/**
@@ -576,6 +643,22 @@
 	}
 
 	/**
+	 * Returns whether the message starts with any known headers.
+	 *
+	 * @param b
+	 *            buffer to scan.
+	 * @return whether the message starts with any known headers
+	 * @since 6.9
+	 */
+	public static final boolean hasAnyKnownHeaders(byte[] b) {
+		return match(b, 0, tree) != -1 || match(b, 0, parent) != -1
+				|| match(b, 0, author) != -1 || match(b, 0, committer) != -1
+				|| match(b, 0, encoding) != -1 || match(b, 0, object) != -1
+				|| match(b, 0, type) != -1 || match(b, 0, tag) != -1
+				|| match(b, 0, tagger) != -1;
+	}
+
+	/**
 	 * Locate the first position before a given character.
 	 *
 	 * @param b
@@ -1258,6 +1341,7 @@
 		final int sz = b.length;
 		if (ptr == 0)
 			ptr += 48; // skip the "object ..." line.
+		// Assume the rest of the current paragraph is all headers.
 		while (ptr < sz && b[ptr] != '\n')
 			ptr = nextLF(b, ptr);
 		if (ptr < sz && b[ptr] == '\n')
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java
index 4a48762..ed62c71 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java
@@ -174,6 +174,67 @@
 		}
 	}
 
+	/**
+	 * Delegating SystemReader. Reduces boiler-plate code applications need to
+	 * implement when overriding only a few of the SystemReader's methods.
+	 *
+	 * @since 6.9
+	 */
+	public static class Delegate extends SystemReader {
+
+		private final SystemReader delegate;
+
+		/**
+		 * Create a delegating system reader
+		 *
+		 * @param delegate
+		 *            the system reader to delegate to
+		 */
+		public Delegate(SystemReader delegate) {
+			this.delegate = delegate;
+		}
+
+		@Override
+		public String getHostname() {
+			return delegate.getHostname();
+		}
+
+		@Override
+		public String getenv(String variable) {
+			return delegate.getenv(variable);
+		}
+
+		@Override
+		public String getProperty(String key) {
+			return delegate.getProperty(key);
+		}
+
+		@Override
+		public FileBasedConfig openUserConfig(Config parent, FS fs) {
+			return delegate.openUserConfig(parent, fs);
+		}
+
+		@Override
+		public FileBasedConfig openSystemConfig(Config parent, FS fs) {
+			return delegate.openSystemConfig(parent, fs);
+		}
+
+		@Override
+		public FileBasedConfig openJGitConfig(Config parent, FS fs) {
+			return delegate.openJGitConfig(parent, fs);
+		}
+
+		@Override
+		public long getCurrentTime() {
+			return delegate.getCurrentTime();
+		}
+
+		@Override
+		public int getTimezone(long when) {
+			return delegate.getTimezone(when);
+		}
+	}
+
 	private static volatile SystemReader INSTANCE = DEFAULT;
 
 	/**
diff --git a/pom.xml b/pom.xml
index e605467..8e8f347 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>6.8.1-SNAPSHOT</version>
+  <version>6.9.0-SNAPSHOT</version>
 
   <name>JGit - Parent</name>
   <url>${jgit-url}</url>
@@ -118,37 +118,37 @@
 
     <project.build.outputTimestamp>${commit.time.iso}</project.build.outputTimestamp>
 
-    <jgit-last-release-version>6.7.0.202309050840-r</jgit-last-release-version>
+    <jgit-last-release-version>6.8.0.202311291450-r</jgit-last-release-version>
     <ant-version>1.10.14</ant-version>
-    <apache-sshd-version>2.11.0</apache-sshd-version>
+    <apache-sshd-version>2.12.0</apache-sshd-version>
     <jsch-version>0.1.55</jsch-version>
     <jzlib-version>1.1.3</jzlib-version>
     <javaewah-version>1.2.3</javaewah-version>
     <junit-version>4.13.2</junit-version>
     <test-fork-count>1C</test-fork-count>
     <args4j-version>2.33</args4j-version>
-    <commons-compress-version>1.25.0</commons-compress-version>
+    <commons-compress-version>1.26.0</commons-compress-version>
     <osgi-core-version>6.0.0</osgi-core-version>
     <servlet-api-version>4.0.4</servlet-api-version>
-    <jetty-version>10.0.18</jetty-version>
-    <japicmp-version>0.17.2</japicmp-version>
+    <jetty-version>10.0.20</jetty-version>
+    <japicmp-version>0.18.5</japicmp-version>
     <httpclient-version>4.5.14</httpclient-version>
     <httpcore-version>4.4.16</httpcore-version>
     <slf4j-version>1.7.36</slf4j-version>
-    <maven-javadoc-plugin-version>3.5.0</maven-javadoc-plugin-version>
+    <maven-javadoc-plugin-version>3.6.3</maven-javadoc-plugin-version>
     <gson-version>2.10.1</gson-version>
     <bouncycastle-version>1.77</bouncycastle-version>
-    <spotbugs-maven-plugin-version>4.7.3.4</spotbugs-maven-plugin-version>
-    <maven-project-info-reports-plugin-version>3.4.3</maven-project-info-reports-plugin-version>
-    <maven-jxr-plugin-version>3.3.0</maven-jxr-plugin-version>
-    <maven-surefire-plugin-version>3.0.0</maven-surefire-plugin-version>
+    <spotbugs-maven-plugin-version>4.8.3.1</spotbugs-maven-plugin-version>
+    <maven-project-info-reports-plugin-version>3.5.1</maven-project-info-reports-plugin-version>
+    <maven-jxr-plugin-version>3.3.2</maven-jxr-plugin-version>
+    <maven-surefire-plugin-version>3.2.5</maven-surefire-plugin-version>
     <maven-surefire-report-plugin-version>${maven-surefire-plugin-version}</maven-surefire-report-plugin-version>
-    <maven-compiler-plugin-version>3.11.0</maven-compiler-plugin-version>
+    <maven-compiler-plugin-version>3.12.1</maven-compiler-plugin-version>
     <plexus-compiler-version>2.13.0</plexus-compiler-version>
     <hamcrest-version>2.2</hamcrest-version>
-    <assertj-version>3.24.2</assertj-version>
-    <jna-version>5.13.0</jna-version>
-    <byte-buddy-version>1.14.9</byte-buddy-version>
+    <assertj-version>3.25.3</assertj-version>
+    <jna-version>5.14.0</jna-version>
+    <byte-buddy-version>1.14.12</byte-buddy-version>
 
     <!-- Properties to enable jacoco code coverage analysis -->
     <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
@@ -208,13 +208,13 @@
 
         <plugin>
           <artifactId>maven-clean-plugin</artifactId>
-          <version>3.2.0</version>
+          <version>3.3.2</version>
         </plugin>
 
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-shade-plugin</artifactId>
-          <version>3.4.1</version>
+          <version>3.5.1</version>
         </plugin>
 
         <plugin>
@@ -226,7 +226,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-dependency-plugin</artifactId>
-          <version>3.5.0</version>
+          <version>3.6.1</version>
         </plugin>
 
         <plugin>
@@ -255,7 +255,7 @@
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
           <artifactId>build-helper-maven-plugin</artifactId>
-          <version>3.4.0</version>
+          <version>3.5.0</version>
         </plugin>
 
         <plugin>
@@ -263,7 +263,6 @@
           <artifactId>spotbugs-maven-plugin</artifactId>
           <version>${spotbugs-maven-plugin-version}</version>
           <configuration>
-            <findbugsXmlOutput>true</findbugsXmlOutput>
             <failOnError>false</failOnError>
           </configuration>
           <executions>
@@ -278,9 +277,9 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-pmd-plugin</artifactId>
-          <version>3.20.0</version>
+          <version>3.21.2</version>
           <configuration>
-            <sourceEncoding>utf-8</sourceEncoding>
+            <inputEncoding>${project.build.sourceEncoding}</inputEncoding>
             <minimumTokens>100</minimumTokens>
             <targetJdk>${java.version}</targetJdk>
             <format>xml</format>
@@ -301,17 +300,17 @@
         <plugin>
           <groupId>org.eclipse.cbi.maven.plugins</groupId>
           <artifactId>eclipse-jarsigner-plugin</artifactId>
-          <version>1.4.2</version>
+          <version>1.4.3</version>
         </plugin>
         <plugin>
           <groupId>org.jacoco</groupId>
           <artifactId>jacoco-maven-plugin</artifactId>
-          <version>0.8.10</version>
+          <version>0.8.11</version>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-site-plugin</artifactId>
-          <version>4.0.0-M9</version>
+          <version>4.0.0-M13</version>
           <dependencies>
             <dependency><!-- add support for ssh/scp -->
               <groupId>org.apache.maven.wagon</groupId>
@@ -363,12 +362,12 @@
         <plugin>
           <groupId>org.eclipse.dash</groupId>
           <artifactId>license-tool-plugin</artifactId>
-          <version>1.0.2</version>
+          <version>1.1.0</version>
         </plugin>
         <plugin>
           <groupId>org.cyclonedx</groupId>
           <artifactId>cyclonedx-maven-plugin</artifactId>
-          <version>2.7.9</version>
+          <version>2.7.10</version>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
@@ -379,6 +378,11 @@
             <reproducible>true</reproducible>
           </configuration>
         </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-enforcer-plugin</artifactId>
+          <version>3.4.1</version>
+        </plugin>
       </plugins>
     </pluginManagement>
 
@@ -386,7 +390,6 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-enforcer-plugin</artifactId>
-        <version>3.3.0</version>
         <executions>
           <execution>
             <id>enforce-maven</id>
@@ -620,7 +623,7 @@
       <plugin>
         <groupId>io.github.git-commit-id</groupId>
         <artifactId>git-commit-id-maven-plugin</artifactId>
-        <version>6.0.0</version>
+        <version>7.0.0</version>
         <executions>
           <execution>
             <id>get-the-git-infos</id>
@@ -980,7 +983,7 @@
       <dependency>
         <groupId>org.mockito</groupId>
         <artifactId>mockito-core</artifactId>
-        <version>5.7.0</version>
+        <version>5.10.0</version>
       </dependency>
 
       <dependency>
@@ -1089,7 +1092,7 @@
               <dependency>
                 <groupId>org.eclipse.jdt</groupId>
                 <artifactId>ecj</artifactId>
-                <version>3.35.0</version>
+                <version>3.36.0</version>
               </dependency>
             </dependencies>
           </plugin>
