Merge branch 'stable-6.8'

* stable-6.8:
  Introduce a PriorityQueue sorting RevCommits by commit timestamp
  Remove org.eclipse.jgit.benchmark/.factorypath
  Update jmh to 1.37 for org.eclipse.jgit.benchmark

Change-Id: Ifdd88eed34be3a1f4897b468392fd86bbc3f3a64
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` | ✅ | Grace period after which unreachable objects will be pruned. |
 | `gc.prunePackExpire` | `1.hour.ago` |  ⃞ | Grace period after which packfiles only containing unreachable objects will be pruned. |
 | `gc.writeChangedPaths` | `false`| ⃞ | Whether bloom filter should be written to commit-graph during a gc operation. |
+| `gc.writeCommitGraph`| `false` | ⃞ | 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..e90833c 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -104,16 +104,18 @@
     sha1 = "3a293bba303c486a9ff6be8e11c9c68fd56b63c7",
 )
 
+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(
@@ -178,8 +180,8 @@
 
 maven_jar(
     name = "mockito",
-    artifact = "org.mockito:mockito-core:5.7.0",
-    sha1 = "a1c258331ab91d66863c983aff7136357e9de056",
+    artifact = "org.mockito:mockito-core:5.8.0",
+    sha1 = "df310627f77f859114ad31e1376fff0dce263cca",
 )
 
 maven_jar(
@@ -188,18 +190,18 @@
     sha1 = "ebbf338e33f893139459ce5df023115971c2786f",
 )
 
-BYTE_BUDDY_VERSION = "1.14.8"
+BYTE_BUDDY_VERSION = "1.14.10"
 
 maven_jar(
     name = "bytebuddy",
     artifact = "net.bytebuddy:byte-buddy:" + BYTE_BUDDY_VERSION,
-    sha1 = "505d7d8937ff00cc55db79723e26c94069b87d66",
+    sha1 = "8117daf4a612122eb4f517f66adff778cb8b4737",
 )
 
 maven_jar(
     name = "bytebuddy-agent",
     artifact = "net.bytebuddy:byte-buddy-agent:" + BYTE_BUDDY_VERSION,
-    sha1 = "ae6ebe485f3bcd0a1e20241488a32e6400a501ef",
+    sha1 = "90ed94ac044ea8953b224304c762316e91fd6b31",
 )
 
 maven_jar(
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..77ef316 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>
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.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..e680eec 100644
--- a/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.junit.ssh
 Bundle-SymbolicName: org.eclipse.jgit.junit.ssh
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Localization: OSGI-INF/l10n/plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
@@ -33,16 +33,16 @@
  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)",
+ 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..068530a 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="1702682577">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.8.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>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
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..a15d413 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="1702682577">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.8.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>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
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..d1de820 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="1702682577">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.8.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>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
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..39a6caf 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="1702682577">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.8.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>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
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..3b62aaa 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="1702682577">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.8.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>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
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..f2e8988 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="1702682576">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.8.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>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
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..f7dd81d 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="1702682576">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.8.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>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
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..129e9ae 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="1702682576">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.8.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>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
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..7cafd8c 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="1702682576">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.8.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>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
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..4e10090 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="1702682576">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.8.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>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
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..dfa805f 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="1702682576">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.8.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>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
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..1bed485 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="1702682576">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.8.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>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
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..f0553eb 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="1702682576">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.8.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>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
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..7e9dbed 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="1702682576">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -79,7 +79,7 @@
     	<dependency>
     		<groupId>org.mockito</groupId>
     		<artifactId>mockito-core</artifactId>
-    		<version>5.7.0</version>
+    		<version>5.8.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>
@@ -187,13 +187,13 @@
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     	<dependency>
     		<groupId>net.bytebuddy</groupId>
     		<artifactId>byte-buddy-agent</artifactId>
-    		<version>1.14.9</version>
+    		<version>1.14.10</version>
     		<type>jar</type>
     	</dependency>
     </dependencies>
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..7086e51
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.31.target
@@ -0,0 +1,272 @@
+<?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="1702682576">
+  <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.11.0</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.apache.sshd</groupId>
+    		<artifactId>sshd-sftp</artifactId>
+    		<version>2.11.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.8.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.18</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.eclipse.jetty</groupId>
+    		<artifactId>jetty-io</artifactId>
+    		<version>10.0.18</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.eclipse.jetty</groupId>
+    		<artifactId>jetty-security</artifactId>
+    		<version>10.0.18</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.eclipse.jetty</groupId>
+    		<artifactId>jetty-server</artifactId>
+    		<version>10.0.18</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.eclipse.jetty</groupId>
+    		<artifactId>jetty-servlet</artifactId>
+    		<version>10.0.18</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.eclipse.jetty</groupId>
+    		<artifactId>jetty-util</artifactId>
+    		<version>10.0.18</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>org.eclipse.jetty</groupId>
+    		<artifactId>jetty-util-ajax</artifactId>
+    		<version>10.0.18</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.10</version>
+    		<type>jar</type>
+    	</dependency>
+    	<dependency>
+    		<groupId>net.bytebuddy</groupId>
+    		<artifactId>byte-buddy-agent</artifactId>
+    		<version>1.14.10</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.24.2</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.25.0</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..a44c867 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
@@ -87,12 +87,12 @@
 	dependency {
 		groupId = "net.bytebuddy"
 		artifactId = "byte-buddy"
-		version = "1.14.9"
+		version = "1.14.10"
 	}
 	dependency {
 		groupId = "net.bytebuddy"
 		artifactId = "byte-buddy-agent"
-		version = "1.14.9"
+		version = "1.14.10"
 	}
 }
 
@@ -192,12 +192,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 +210,7 @@
 	dependency {
 		groupId = "org.mockito"
 		artifactId = "mockito-core"
-		version = "5.7.0"
+		version = "5.8.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..9422775 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.4</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>
@@ -201,10 +200,6 @@
       <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>
@@ -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>
@@ -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/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..8090c4f 100644
--- a/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ssh.apache.test
 Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.test
-Bundle-Version: 6.8.1.qualifier
+Bundle-Version: 6.9.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-11
@@ -22,16 +22,16 @@
  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)",
+ 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..0010fa0 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,18 +23,18 @@
    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)",
@@ -88,12 +88,12 @@
  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.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/META-INF/MANIFEST.MF b/org.eclipse.jgit.test/META-INF/MANIFEST.MF
index 8845014..374a82c 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
@@ -19,64 +19,64 @@
  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.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 +88,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/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..cac0743 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>");
@@ -369,6 +396,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/transport/UploadPackHandleDeletedPackFileTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackHandleDeletedPackFileTest.java
new file mode 100644
index 0000000..b1c9447
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackHandleDeletedPackFileTest.java
@@ -0,0 +1,148 @@
+/*
+ * Copyright (C) 2023, Dariusz Luksza <dariusz.luksza@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
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.transport;
+
+import static org.junit.Assert.fail;
+import static org.eclipse.jgit.lib.Constants.HEAD;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.jgit.internal.storage.dfs.DfsRepositoryDescription;
+import org.eclipse.jgit.internal.storage.dfs.InMemoryRepository;
+import org.eclipse.jgit.internal.storage.file.FileRepository;
+import org.eclipse.jgit.internal.storage.file.GC;
+import org.eclipse.jgit.internal.storage.file.Pack;
+import org.eclipse.jgit.internal.storage.pack.PackExt;
+import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase;
+import org.eclipse.jgit.junit.TestRepository;
+import org.eclipse.jgit.junit.TestRepository.CommitBuilder;
+import org.eclipse.jgit.lib.NullProgressMonitor;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.transport.UploadPack.RequestPolicy;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameter;
+import org.junit.runners.Parameterized.Parameters;
+
+@RunWith(Parameterized.class)
+public class UploadPackHandleDeletedPackFileTest
+		extends LocalDiskRepositoryTestCase {
+
+	private FileRepository server;
+
+	private TestRepository<FileRepository> remote;
+
+	private Repository client;
+
+	private RevCommit head;
+
+	@Parameter
+	public boolean emptyCommit;
+
+	@Parameters(name="empty commit: {0}")
+	public static Collection<Boolean[]> initTestData() {
+		return Arrays.asList(
+				new Boolean[][] { { Boolean.TRUE }, { Boolean.FALSE } });
+	}
+
+	@Before
+	@Override
+	public void setUp() throws Exception {
+		super.setUp();
+		server = createBareRepository();
+		server.getConfig().setString("protocol", null, "version", "2");
+
+		remote = new TestRepository<>(server);
+		client = new InMemoryRepository(new DfsRepositoryDescription("client"));
+
+		setupServerRepo();
+		head = server.parseCommit(server.resolve(HEAD));
+	}
+
+	@Test
+	public void testV2PackFileRemovedDuringUploadPack() throws Exception {
+		doRemovePackFileDuringUploadPack(PackExt.PACK);
+	}
+
+	@Test
+	@Ignore("pending fix")
+	public void testV2IdxFileRemovedDuringUploadPack() throws Exception {
+		doRemovePackFileDuringUploadPack(PackExt.INDEX);
+	}
+
+	@Test
+	public void testV2BitmapFileRemovedDuringUploadPack() throws Exception {
+		doRemovePackFileDuringUploadPack(PackExt.BITMAP_INDEX);
+	}
+
+	private void doRemovePackFileDuringUploadPack(PackExt packExt)
+			throws Exception {
+		Object ctx = new Object();
+		TestProtocol testProtocol = new TestProtocol<>(
+				(Object req, Repository db) -> {
+					UploadPack up = new UploadPack(db);
+					up.setRequestPolicy(RequestPolicy.REACHABLE_COMMIT);
+					Collection<Pack> packs = server.getObjectDatabase()
+							.getPacks();
+					assertEquals("single pack expected", 1, packs.size());
+					Pack pack = packs.iterator().next();
+
+					try {
+						addNewCommit();
+
+						new GC(remote.getRepository()).gc();
+
+						pack.getPackFile().create(packExt).delete();
+					} catch (Exception e) {
+						fail("GC or pack file removal failed");
+					}
+
+					return up;
+				}, null);
+
+		URIish uri = testProtocol.register(ctx, server);
+
+		try (Transport tn = testProtocol.open(uri, client, "server")) {
+			tn.fetch(NullProgressMonitor.INSTANCE,
+					Collections.singletonList(new RefSpec(head.name())));
+			assertTrue(client.getObjectDatabase().has(head));
+		}
+	}
+
+	private void addNewCommit() throws Exception {
+		CommitBuilder commit = remote.commit().message("2");
+		if (!emptyCommit) {
+			commit = commit.add("test2.txt", remote.blob("2"));
+		}
+		remote.update("master", commit.parent(head).create());
+	}
+
+	private void setupServerRepo() throws Exception {
+		RevCommit commit0 = remote.commit().message("0")
+				.add("test.txt", remote.blob("0"))
+				.create();
+		remote.update("master", commit0);
+
+		new GC(remote.getRepository()).gc(); // create pack files
+
+		head = remote.commit().message("1").parent(commit0)
+				.add("test1.txt", remote.blob("1"))
+				.create();
+		remote.update("master", head);
+	}
+}
\ No newline at end of file
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/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/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/LooseObjects.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LooseObjects.java
index 278c846..87025b3 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) {
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..0c67b453 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,14 @@
 			rw2.setRetainBody(false);
 			rw2.setRevFilter(new NotInBitmapFilter(seen));
 
+			int maxBranches = Math.min(excessiveBranchTipCount,
+					selectionHelper.newWantsByNewest.size());
 			// 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;
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/revwalk/FooterLine.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/FooterLine.java
index f58eb82..227ea0f 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));
 		}
 
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/util/RawParseUtils.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/RawParseUtils.java
index 71fae81..fccdca8 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++];
@@ -542,6 +554,28 @@
 	}
 
 	/**
+	 * 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);
+	}
+
+	/**
 	 * Find the start of the contents of a given header.
 	 *
 	 * @param b
@@ -576,6 +610,21 @@
 	}
 
 	/**
+	 * Returns whether the message starts with any known headers.
+	 *
+	 * @param b
+	 *            buffer to scan.
+	 * @return whether the message starts with any known headers
+	 */
+	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 +1307,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/pom.xml b/pom.xml
index e605467..31e2f7d 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,7 +118,7 @@
 
     <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>
     <jsch-version>0.1.55</jsch-version>
@@ -131,24 +131,24 @@
     <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>
+    <japicmp-version>0.18.3</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.2.0</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.1</maven-jxr-plugin-version>
+    <maven-surefire-plugin-version>3.2.3</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.0</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>
+    <jna-version>5.14.0</jna-version>
+    <byte-buddy-version>1.14.10</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>
@@ -386,7 +385,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>
@@ -620,7 +619,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 +979,7 @@
       <dependency>
         <groupId>org.mockito</groupId>
         <artifactId>mockito-core</artifactId>
-        <version>5.7.0</version>
+        <version>5.8.0</version>
       </dependency>
 
       <dependency>
@@ -1089,7 +1088,7 @@
               <dependency>
                 <groupId>org.eclipse.jdt</groupId>
                 <artifactId>ecj</artifactId>
-                <version>3.35.0</version>
+                <version>3.36.0</version>
               </dependency>
             </dependencies>
           </plugin>