Merge branch 'stable-5.11' into stable-5.12

* stable-5.11:
  Remove texts which were added by mistake in 00386272
  Fix formatting which was broken in 00386272

Change-Id: I6184772bdeca1b9ccecf6e400ae15604ab4f5a69
diff --git a/Documentation/config-options.md b/Documentation/config-options.md
index d463551..a9ca48c 100644
--- a/Documentation/config-options.md
+++ b/Documentation/config-options.md
@@ -7,6 +7,8 @@
 | ✅ | option defined by native git |
 | ⃞ | jgit custom option not supported by native git |
 
+For details on native git options see also the official [git config documentation](https://git-scm.com/docs/git-config).
+
 ## __core__ options
 
 |  option | default | git option | description |
@@ -59,6 +61,24 @@
 | `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. |
 
+## __http__ options
+
+|  option | default | git option | description |
+|---------|---------|------------|-------------|
+| `http.cookieFile`| | ✅ | Absolute path (with tilde expansion) of a cookie file in Netscape format. |
+| `http.cookieFileCacheLimit`| 10 | ⃞ | JGit caches at most this number of the most recently used cookie files. |
+| `http.extraHeader`|  | ✅ | Extra HTTP header(s) to send with HTTP requests, in the format "`Key: Value`". May appear multiple times; an empty option clears the list. |
+| `http.followRedirects`| `initial` | ✅ | `true`, `false`, or `initial`. Whether to follow a redirect always, never, or only on the first HTTP request in a git remote operation. |
+| `http.maxRedirects`| 5 | ⃞ | Maximum number of redirects to follow; can be overridden via the Java system property `http.maxRedirects`. |
+| `http.postBuffer`| `1 MiB` | ✅ | Maximum size in bytes for single HTTP POST requests; for larger requests, HTTP 1.1 chunked transfer is used. |
+| `http.saveCookies`| `false` | ✅ | Boolean; if `true` and `http.cookieFile` is set, save received cookies. |
+| `http.sslVerify`| `true` | ✅ | Boolean; whether to check SSL certificates in HTTPS connections. |
+| `http.userAgent`| | ✅ | User-agent string to send with HTTP requests. Must be 7bit-ASCII. Can be overridden via environment variable `GIT_HTTP_USER_AGENT`. |
+
+All `http.*` options can also be specified in a URL-specific way using the format `http.<url>.*`. See the official [git config documentation](https://git-scm.com/docs/git-config#Documentation/git-config.txt-httplturlgt) for details.
+
+Proxy configuration uses the standard Java mechanisms via class `java.net.ProxySelector`.
+
 ## __pack__ options
 
 |  option | default | git option | description |
diff --git a/WORKSPACE b/WORKSPACE
index 224968a..77c8451 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -237,55 +237,55 @@
     sha1 = "9180733b7df8542621dc12e21e87557e8c99b8cb",
 )
 
-JETTY_VER = "9.4.36.v20210114"
+JETTY_VER = "9.4.40.v20210413"
 
 maven_jar(
     name = "jetty-servlet",
     artifact = "org.eclipse.jetty:jetty-servlet:" + JETTY_VER,
-    sha1 = "b189e52a5ee55ae172e4e99e29c5c314f5daf4b9",
-    src_sha1 = "3a0fa449772ab0d76625f6afb81f60c32a490613",
+    sha1 = "41abc058d311baae3fe5411223e4108af212a24a",
+    src_sha1 = "2e5b2319bce4c74d760106db05deed2a405041ce",
 )
 
 maven_jar(
     name = "jetty-security",
     artifact = "org.eclipse.jetty:jetty-security:" + JETTY_VER,
-    sha1 = "42030d6ed7dfc0f75818cde0adcf738efc477574",
-    src_sha1 = "612220a97d45fad3983ccc56b0cb9a271f3fd003",
+    sha1 = "0c2807eff66ca21b565276e69aa8502524beb204",
+    src_sha1 = "b4873ec0ab5acc8a383df4dc9046ad5361b5616f",
 )
 
 maven_jar(
     name = "jetty-server",
     artifact = "org.eclipse.jetty:jetty-server:" + JETTY_VER,
-    sha1 = "88a7d342974aadca658e7386e8d0fcc5c0788f41",
-    src_sha1 = "4552c0c6db2948e8557db477b6b48d291006e481",
+    sha1 = "a6d22f20c863d2d7669dbc2399a1a3b25b0f8a20",
+    src_sha1 = "09f789d2959ea38813be6bd2b751bba9db3a4494",
 )
 
 maven_jar(
     name = "jetty-http",
     artifact = "org.eclipse.jetty:jetty-http:" + JETTY_VER,
-    sha1 = "1eee89a55e04ff94df0f85d95200fc48acb43d86",
-    src_sha1 = "552a784ec789c7ba581c5341ae6d8b6353ed5ace",
+    sha1 = "dea7e5fe28a6580d6900e77d836e650aeecfa9c8",
+    src_sha1 = "b161959fac6fd932031022ac3fb8b6c34a422feb",
 )
 
 maven_jar(
     name = "jetty-io",
     artifact = "org.eclipse.jetty:jetty-io:" + JETTY_VER,
-    sha1 = "84a8faf9031eb45a5a2ddb7681e22c483d81ab3a",
-    src_sha1 = "72d5fc6d909e28f8720394b25babda80805a46b9",
+    sha1 = "c420368a360c20b40a57897676d581462d0a54c0",
+    src_sha1 = "6ae54fba76b91f24ec5880202920f0a61b1b050b",
 )
 
 maven_jar(
     name = "jetty-util",
     artifact = "org.eclipse.jetty:jetty-util:" + JETTY_VER,
-    sha1 = "925257fbcca6b501a25252c7447dbedb021f7404",
-    src_sha1 = "532e8b66044f4e58ca5da3aec19f02a2f3c16ddd",
+    sha1 = "1ab1a4f33f293110fdfb3da1911b2a00da78019b",
+    src_sha1 = "9d537ad9d22c7edfac0e38ba5afc04632716dca5",
 )
 
 maven_jar(
     name = "jetty-util-ajax",
     artifact = "org.eclipse.jetty:jetty-util-ajax:" + JETTY_VER,
-    sha1 = "2f478130c21787073facb64d7242e06f94980c60",
-    src_sha1 = "7153d7ca38878d971fd90992c303bb7719ba7a21",
+    sha1 = "62014fb386f1c3dce53029165fd76435bcb8bb6c",
+    src_sha1 = "99df1bf89bdd11c9caa0e56cc802b949f896e3d9",
 )
 
 BOUNCYCASTLE_VER = "1.65"
diff --git a/lib/BUILD b/lib/BUILD
index 8ad49d4..83709a3 100644
--- a/lib/BUILD
+++ b/lib/BUILD
@@ -161,8 +161,8 @@
     visibility = [
         "//org.eclipse.jgit:__pkg__",
         "//org.eclipse.jgit.gpg.bc:__pkg__",
-        "//org.eclipse.jgit.test:__pkg__",
         "//org.eclipse.jgit.gpg.bc.test:__pkg__",
+        "//org.eclipse.jgit.test:__pkg__",
     ],
     exports = ["@bcpg//jar"],
 )
@@ -172,8 +172,8 @@
     visibility = [
         "//org.eclipse.jgit:__pkg__",
         "//org.eclipse.jgit.gpg.bc:__pkg__",
-        "//org.eclipse.jgit.test:__pkg__",
         "//org.eclipse.jgit.gpg.bc.test:__pkg__",
+        "//org.eclipse.jgit.test:__pkg__",
     ],
     exports = ["@bcprov//jar"],
 )
diff --git a/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
index 7bb56a0..5fc0e9a 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: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.apache.tools.ant,
- org.eclipse.jgit.ant.tasks;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.junit;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)",
+ org.eclipse.jgit.ant.tasks;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.junit;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.0)",
  org.hamcrest.core;version="[1.1.0,2.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 cc46d76..f1e01e7 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 fd05d2c..812634e 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: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.apache.tools.ant,
-  org.eclipse.jgit.storage.file;version="[5.11.1,5.12.0)"
+  org.eclipse.jgit.storage.file;version="[5.12.0,5.13.0)"
 Bundle-Localization: plugin
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.ant;version="5.11.1",
- org.eclipse.jgit.ant.tasks;version="5.11.1";
+Export-Package: org.eclipse.jgit.ant;version="5.12.0",
+ org.eclipse.jgit.ant.tasks;version="5.12.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 81c01f6..ee4006a 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: 5.11.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ant;version="5.11.1.qualifier";roots="."
+Bundle-Version: 5.12.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.ant;version="5.12.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ant/pom.xml b/org.eclipse.jgit.ant/pom.xml
index 9bc075c..f6a268a 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ant</artifactId>
diff --git a/org.eclipse.jgit.archive/.settings/.api_filters b/org.eclipse.jgit.archive/.settings/.api_filters
deleted file mode 100644
index f4a934a..0000000
--- a/org.eclipse.jgit.archive/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.jgit.archive" version="2">
-    <resource path="src/org/eclipse/jgit/archive/BaseFormat.java" type="org.eclipse.jgit.archive.BaseFormat">
-        <filter id="336658481">
-            <message_arguments>
-                <message_argument value="org.eclipse.jgit.archive.BaseFormat"/>
-                <message_argument value="COMPRESSION_LEVEL"/>
-            </message_arguments>
-        </filter>
-    </resource>
-</component>
diff --git a/org.eclipse.jgit.archive/META-INF/MANIFEST.MF b/org.eclipse.jgit.archive/META-INF/MANIFEST.MF
index 7d22393..043241e 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: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
@@ -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="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.nls;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revwalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)",
+ org.eclipse.jgit.api;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.nls;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revwalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.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="5.11.1";
+Export-Package: org.eclipse.jgit.archive;version="5.12.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.api,
    org.apache.commons.compress.archivers,
    org.osgi.framework",
- org.eclipse.jgit.archive.internal;version="5.11.1";x-internal:=true
+ org.eclipse.jgit.archive.internal;version="5.12.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 8897c1d..e63330e 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: 5.11.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.archive;version="5.11.1.qualifier";roots="."
+Bundle-Version: 5.12.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.archive;version="5.12.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.archive/pom.xml b/org.eclipse.jgit.archive/pom.xml
index 1440f91..2da96d4 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 49dae02..ec57ef7 100644
--- a/org.eclipse.jgit.benchmarks/pom.xml
+++ b/org.eclipse.jgit.benchmarks/pom.xml
@@ -14,7 +14,7 @@
   <modelVersion>4.0.0</modelVersion>
 
   <groupId>org.eclipse.jgit</groupId>
-  <version>5.11.1-SNAPSHOT</version>
+  <version>5.12.0-SNAPSHOT</version>
   <artifactId>org.eclipse.jgit.benchmarks</artifactId>
   <packaging>jar</packaging>
 
@@ -148,7 +148,7 @@
             <dependency><!-- add support for ssh/scp -->
               <groupId>org.apache.maven.wagon</groupId>
               <artifactId>wagon-ssh</artifactId>
-              <version>3.4.2</version>
+              <version>3.4.3</version>
             </dependency>
           </dependencies>
         </plugin>
diff --git a/org.eclipse.jgit.coverage/pom.xml b/org.eclipse.jgit.coverage/pom.xml
index bc93418..6c42abf 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ant</artifactId>
-      <version>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.archive</artifactId>
-      <version>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.http.apache</artifactId>
-      <version>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.http.server</artifactId>
-      <version>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs</artifactId>
-      <version>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs.server</artifactId>
-      <version>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.pgm</artifactId>
-      <version>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ui</artifactId>
-      <version>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ssh.apache</artifactId>
-      <version>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
 
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.test</artifactId>
-      <version>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ant.test</artifactId>
-      <version>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.http.test</artifactId>
-      <version>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.pgm.test</artifactId>
-      <version>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs.test</artifactId>
-      <version>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.lfs.server.test</artifactId>
-      <version>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jgit</groupId>
       <artifactId>org.eclipse.jgit.ssh.apache.test</artifactId>
-      <version>5.11.1-SNAPSHOT</version>
+      <version>5.12.0-SNAPSHOT</version>
     </dependency>
   </dependencies>
 
diff --git a/org.eclipse.jgit.gpg.bc.test/BUILD b/org.eclipse.jgit.gpg.bc.test/BUILD
index 925536e..4c86eff 100644
--- a/org.eclipse.jgit.gpg.bc.test/BUILD
+++ b/org.eclipse.jgit.gpg.bc.test/BUILD
@@ -2,7 +2,6 @@
     "@com_googlesource_gerrit_bazlets//tools:genrule2.bzl",
     "genrule2",
 )
-load("@rules_java//java:defs.bzl", "java_import")
 load(
     "@com_googlesource_gerrit_bazlets//tools:junit.bzl",
     "junit_tests",
@@ -11,25 +10,20 @@
 junit_tests(
     name = "bc",
     srcs = glob(["tst/**/*.java"]),
+    resource_jars = [":tst_rsrc"],
     tags = ["bc"],
     deps = [
         "//lib:bcpg",
         "//lib:bcprov",
         "//lib:junit",
-        "//org.eclipse.jgit:jgit",
         "//org.eclipse.jgit.gpg.bc:gpg-bc",
-        "//org.eclipse.jgit.gpg.bc.test:tst_rsrc",
+        "//org.eclipse.jgit:jgit",
     ],
 )
 
-java_import(
-    name = "tst_rsrc",
-    jars = [":tst_rsrc_jar"],
-)
-
 genrule2(
-    name = "tst_rsrc_jar",
+    name = "tst_rsrc",
     srcs = glob(["tst-rsrc/**"]),
     outs = ["tst_rsrc.jar"],
-    cmd = "o=$$PWD/$@ && tar cf - $(SRCS) | tar -C $$TMP --strip-components=2 -xf - && cd  $$TMP && zip -qr $$o .",
+    cmd = "tar cf - $(SRCS) | tar -C $$TMP --strip-components=2 -xf - && cd $$TMP && zip -qr $$ROOT/$@ .",
 )
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 2b8b1a5..0e584f8 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: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
@@ -12,9 +12,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="[5.11.1,5.12.0)",
- org.eclipse.jgit.gpg.bc.internal.keys;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util.sha1;version="[5.11.1,5.12.0)",
+ org.eclipse.jgit.gpg.bc.internal;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.gpg.bc.internal.keys;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util.sha1;version="[5.12.0,5.13.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 29fc22c..f55b54a 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 e77177f..11aa3fd 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="[5.11.1,5.12.0)"
+Fragment-Host: org.eclipse.jgit;bundle-version="[5.12.0,5.13.0)"
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
-Bundle-Version: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.bouncycastle.asn1;version="[1.65.0,2.0.0)",
  org.bouncycastle.asn1.cryptlib;version="[1.65.0,2.0.0)",
@@ -29,9 +29,9 @@
  org.bouncycastle.util;version="[1.65.0,2.0.0)",
  org.bouncycastle.util.encoders;version="[1.65.0,2.0.0)",
  org.bouncycastle.util.io;version="[1.65.0,2.0.0)",
- org.eclipse.jgit.annotations;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.api.errors;version="[5.11.1,5.12.0)",
+ org.eclipse.jgit.annotations;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.api.errors;version="[5.12.0,5.13.0)",
  org.slf4j;version="[1.7.0,2.0.0)"
-Export-Package: org.eclipse.jgit.gpg.bc;version="5.11.1",
- org.eclipse.jgit.gpg.bc.internal;version="5.11.1";x-friends:="org.eclipse.jgit.gpg.bc.test",
- org.eclipse.jgit.gpg.bc.internal.keys;version="5.11.1";x-friends:="org.eclipse.jgit.gpg.bc.test"
+Export-Package: org.eclipse.jgit.gpg.bc;version="5.12.0",
+ org.eclipse.jgit.gpg.bc.internal;version="5.12.0";x-friends:="org.eclipse.jgit.gpg.bc.test",
+ org.eclipse.jgit.gpg.bc.internal.keys;version="5.12.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 662d8f0..7851004 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: 5.11.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.gpg.bc;version="5.11.1.qualifier";roots="."
+Bundle-Version: 5.12.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.gpg.bc;version="5.12.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.gpg.bc/pom.xml b/org.eclipse.jgit.gpg.bc/pom.xml
index feb17dd..d5b7962 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 07572c6..3f1068a 100644
--- a/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.http.apache
 Bundle-SymbolicName: org.eclipse.jgit.http.apache
-Bundle-Version: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-Localization: plugin
 Bundle-Vendor: %Bundle-Vendor
@@ -25,11 +25,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="[5.11.1,5.12.0)",
- org.eclipse.jgit.nls;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport.http;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)"
-Export-Package: org.eclipse.jgit.transport.http.apache;version="5.11.1";
+ org.eclipse.jgit.annotations;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.nls;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport.http;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.0)"
+Export-Package: org.eclipse.jgit.transport.http.apache;version="5.12.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 806a9b6..b53fff2 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: 5.11.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.http.apache;version="5.11.1.qualifier";roots="."
+Bundle-Version: 5.12.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.http.apache;version="5.12.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.http.apache/pom.xml b/org.eclipse.jgit.http.apache/pom.xml
index 09525a7..7d6cffe 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 1efd612..a4bbfd9 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: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Localization: plugin
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.http.server;version="5.11.1",
- org.eclipse.jgit.http.server.glue;version="5.11.1";
+Export-Package: org.eclipse.jgit.http.server;version="5.12.0",
+ org.eclipse.jgit.http.server.glue;version="5.12.0";
   uses:="javax.servlet,javax.servlet.http",
- org.eclipse.jgit.http.server.resolver;version="5.11.1";
+ org.eclipse.jgit.http.server.resolver;version="5.12.0";
   uses:="org.eclipse.jgit.transport.resolver,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.transport,
@@ -18,14 +18,14 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: javax.servlet;version="[2.5.0,3.2.0)",
  javax.servlet.http;version="[2.5.0,3.2.0)",
- org.eclipse.jgit.annotations;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.transport.parser;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.nls;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revwalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport.resolver;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)"
+ org.eclipse.jgit.annotations;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.transport.parser;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.nls;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revwalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport.resolver;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.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 3e7e444..5ef910d 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: 5.11.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.http.server;version="5.11.1.qualifier";roots="."
+Bundle-Version: 5.12.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.http.server;version="5.12.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.http.server/pom.xml b/org.eclipse.jgit.http.server/pom.xml
index a3f1d2d..965d138 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.http.server</artifactId>
@@ -126,6 +126,7 @@
                       <groupId>${project.groupId}</groupId>
                       <artifactId>${project.artifactId}</artifactId>
                       <version>${jgit-last-release-version}</version>
+                      <type>jar</type>
                   </dependency>
               </oldVersion>
               <newVersion>
@@ -143,7 +144,7 @@
                   <breakBuildOnBinaryIncompatibleModifications>false</breakBuildOnBinaryIncompatibleModifications>
                   <onlyBinaryIncompatible>false</onlyBinaryIncompatible>
                   <includeSynthetic>false</includeSynthetic>
-                  <ignoreMissingClasses>false</ignoreMissingClasses>
+                  <ignoreMissingClasses>true</ignoreMissingClasses>
                   <skipPomModules>true</skipPomModules>
               </parameter>
               <skip>false</skip>
diff --git a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
index fcd738d..170595f 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: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
@@ -28,26 +28,26 @@
  org.eclipse.jetty.util.log;version="[9.4.5,10.0.0)",
  org.eclipse.jetty.util.security;version="[9.4.5,10.0.0)",
  org.eclipse.jetty.util.thread;version="[9.4.5,10.0.0)",
- org.eclipse.jgit.api;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.http.server;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.http.server.glue;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.http.server.resolver;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.junit;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.junit.http;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.nls;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revwalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport.http;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport.http.apache;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport.resolver;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)",
+ org.eclipse.jgit.api;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.http.server;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.http.server.glue;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.http.server.resolver;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.junit;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.junit.http;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.nls;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revwalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport.http;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport.http.apache;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport.resolver;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.0)",
  org.hamcrest;version="[1.1.0,2.0.0)",
  org.hamcrest.core;version="[1.1.0,2.0.0)",
  org.junit;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 226fa3c..5e3f2d1 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 563a780..a170764 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: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Localization: plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
@@ -22,16 +22,16 @@
  org.eclipse.jetty.util.log;version="[9.4.5,10.0.0)",
  org.eclipse.jetty.util.security;version="[9.4.5,10.0.0)",
  org.eclipse.jetty.util.ssl;version="[9.4.5,10.0.0)",
- org.eclipse.jgit.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.http.server;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.junit;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revwalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport.resolver;version="[5.11.1,5.12.0)",
+ org.eclipse.jgit.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.http.server;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.junit;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revwalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport.resolver;version="[5.12.0,5.13.0)",
  org.junit;version="[4.13,5.0.0)"
-Export-Package: org.eclipse.jgit.junit.http;version="5.11.1";
+Export-Package: org.eclipse.jgit.junit.http;version="5.12.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 5788778..55d08fb 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: 5.11.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.junit.http;version="5.11.1.qualifier";roots="."
+Bundle-Version: 5.12.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.junit.http;version="5.12.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit.http/pom.xml b/org.eclipse.jgit.junit.http/pom.xml
index 1b06523..03b1692 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 fc6d388..b0d87bd 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: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Localization: plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
@@ -33,16 +33,16 @@
  org.apache.sshd.server.subsystem;version="[2.6.0,2.7.0)",
  org.apache.sshd.sftp;version="[2.6.0,2.7.0)",
  org.apache.sshd.sftp.server;version="[2.6.0,2.7.0)",
- org.eclipse.jgit.annotations;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.api;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.api.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.junit;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revwalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)",
+ org.eclipse.jgit.annotations;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.api;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.api.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.junit;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revwalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.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="5.11.1"
+Export-Package: org.eclipse.jgit.junit.ssh;version="5.12.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 836e419..9dd564f 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: 5.11.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.junit.ssh;version="5.11.1.qualifier";roots="."
+Bundle-Version: 5.12.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.junit.ssh;version="5.12.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit.ssh/pom.xml b/org.eclipse.jgit.junit.ssh/pom.xml
index 4811ba7..b73fcf1 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 b23b82f..c9aa1ec 100644
--- a/org.eclipse.jgit.junit/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit/META-INF/MANIFEST.MF
@@ -3,35 +3,35 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.junit
 Bundle-SymbolicName: org.eclipse.jgit.junit
-Bundle-Version: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Localization: plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: org.eclipse.jgit.annotations;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.api;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.api.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.dircache;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.pack;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.merge;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revwalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport;version="5.11.1",
- org.eclipse.jgit.treewalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.treewalk.filter;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util.io;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util.time;version="[5.11.1,5.12.0)",
+Import-Package: org.eclipse.jgit.annotations;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.api;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.api.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.dircache;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.merge;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revwalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport;version="5.12.0",
+ org.eclipse.jgit.treewalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.treewalk.filter;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util.io;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util.time;version="[5.12.0,5.13.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="5.11.1";
+Export-Package: org.eclipse.jgit.junit;version="5.12.0";
   uses:="org.eclipse.jgit.dircache,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
@@ -44,4 +44,4 @@
    org.junit.runners.model,
    org.junit.runner,
    org.eclipse.jgit.util.time",
- org.eclipse.jgit.junit.time;version="5.11.1";uses:="org.eclipse.jgit.util.time"
+ org.eclipse.jgit.junit.time;version="5.12.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 42e8610..8e44b87 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: 5.11.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.junit;version="5.11.1.qualifier";roots="."
+Bundle-Version: 5.12.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.junit;version="5.12.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit/pom.xml b/org.eclipse.jgit.junit/pom.xml
index 7815a55..f1ad71a 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.junit</artifactId>
diff --git a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/RepositoryTestCase.java b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/RepositoryTestCase.java
index 64556ac..5622108 100644
--- a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/RepositoryTestCase.java
+++ b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/RepositoryTestCase.java
@@ -25,6 +25,7 @@
 import java.io.Reader;
 import java.nio.file.Path;
 import java.time.Instant;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
@@ -39,6 +40,7 @@
 import org.eclipse.jgit.lib.FileMode;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.ObjectInserter;
+import org.eclipse.jgit.lib.Ref;
 import org.eclipse.jgit.lib.RefUpdate;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.revwalk.RevCommit;
@@ -386,6 +388,16 @@
 	}
 
 	/**
+	 * Get all Refs
+	 *
+	 * @return list of refs
+	 * @throws IOException
+	 */
+	public List<Ref> getRefs() throws IOException {
+		return db.getRefDatabase().getRefs();
+	}
+
+	/**
 	 * Checkout a branch
 	 *
 	 * @param branchName
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 75f5e4c..c0fd56e 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: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
@@ -28,24 +28,24 @@
  org.eclipse.jetty.util.log;version="[9.4.5,10.0.0)",
  org.eclipse.jetty.util.security;version="[9.4.5,10.0.0)",
  org.eclipse.jetty.util.thread;version="[9.4.5,10.0.0)",
- org.eclipse.jgit.api;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.api.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.junit;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.junit.http;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs.server;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs.server.fs;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs.test;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revwalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.treewalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.treewalk.filter;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)",
+ org.eclipse.jgit.api;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.api.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.junit;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.junit.http;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs.server;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs.server.fs;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs.test;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revwalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.treewalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.treewalk.filter;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.0)",
  org.hamcrest.core;version="[1.1.0,2.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 a4812b1..5d8352c 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 78f545b..2bf113b 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: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Localization: plugin
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.lfs.server;version="5.11.1";
+Export-Package: org.eclipse.jgit.lfs.server;version="5.12.0";
   uses:="javax.servlet.http,
    org.eclipse.jgit.lfs.lib",
- org.eclipse.jgit.lfs.server.fs;version="5.11.1";
+ org.eclipse.jgit.lfs.server.fs;version="5.12.0";
   uses:="javax.servlet,
    javax.servlet.http,
    org.eclipse.jgit.lfs.server,
    org.eclipse.jgit.lfs.lib",
- org.eclipse.jgit.lfs.server.internal;version="5.11.1";x-internal:=true,
- org.eclipse.jgit.lfs.server.s3;version="5.11.1";
+ org.eclipse.jgit.lfs.server.internal;version="5.12.0";x-internal:=true,
+ org.eclipse.jgit.lfs.server.s3;version="5.12.0";
   uses:="org.eclipse.jgit.lfs.server,
    org.eclipse.jgit.lfs.lib"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
@@ -24,15 +24,15 @@
  javax.servlet.annotation;version="[3.1.0,4.0.0)",
  javax.servlet.http;version="[3.1.0,4.0.0)",
  org.apache.http;version="[4.3.0,5.0.0)",
- org.eclipse.jgit.annotations;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs.internal;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.nls;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport.http;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport.http.apache;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)",
+ org.eclipse.jgit.annotations;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs.internal;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.nls;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport.http;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport.http.apache;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.0)",
  org.slf4j;version="[1.7.0,2.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 b1d9aee..38fc66c 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: 5.11.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.lfs.server;version="5.11.1.qualifier";roots="."
+Bundle-Version: 5.12.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.lfs.server;version="5.12.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.lfs.server/pom.xml b/org.eclipse.jgit.lfs.server/pom.xml
index b726e6b..cfb0f9f 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.lfs.server</artifactId>
diff --git a/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
index 72aa22b..3626a2f 100644
--- a/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
@@ -3,24 +3,24 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs.test
 Bundle-SymbolicName: org.eclipse.jgit.lfs.test
-Bundle-Version: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: org.eclipse.jgit.api;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.attributes;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.junit;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revwalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.treewalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.treewalk.filter;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)",
+Import-Package: org.eclipse.jgit.api;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.attributes;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.junit;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revwalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.treewalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.treewalk.filter;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.0)",
  org.hamcrest.core;version="[1.1.0,2.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="5.11.1";x-friends:="org.eclipse.jgit.lfs.server.test"
+Export-Package: org.eclipse.jgit.lfs.test;version="5.12.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 cbe507c..1e463b9 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 13f91fb..73d3d3c 100644
--- a/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
@@ -3,31 +3,31 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.lfs
 Bundle-SymbolicName: org.eclipse.jgit.lfs
-Bundle-Version: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Localization: plugin
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.lfs;version="5.11.1",
- org.eclipse.jgit.lfs.errors;version="5.11.1",
- org.eclipse.jgit.lfs.internal;version="5.11.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="5.11.1"
+Export-Package: org.eclipse.jgit.lfs;version="5.12.0",
+ org.eclipse.jgit.lfs.errors;version="5.12.0",
+ org.eclipse.jgit.lfs.internal;version="5.12.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="5.12.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: com.google.gson;version="[2.8.0,3.0.0)",
  com.google.gson.stream;version="[2.8.0,3.0.0)",
- org.eclipse.jgit.annotations;version="[5.11.1,5.12.0)";resolution:=optional,
- org.eclipse.jgit.api.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.attributes;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.diff;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.hooks;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.nls;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revwalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.storage.pack;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport.http;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.treewalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.treewalk.filter;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util.io;version="[5.11.1,5.12.0)"
+ org.eclipse.jgit.annotations;version="[5.12.0,5.13.0)";resolution:=optional,
+ org.eclipse.jgit.api.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.attributes;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.diff;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.hooks;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.nls;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revwalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.storage.pack;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport.http;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.treewalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.treewalk.filter;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util.io;version="[5.12.0,5.13.0)"
diff --git a/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF
index bd0b06a..1540c2b 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: 5.11.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.lfs;version="5.11.1.qualifier";roots="."
+Bundle-Version: 5.12.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.lfs;version="5.12.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.lfs/pom.xml b/org.eclipse.jgit.lfs/pom.xml
index 1308ed8..1295bf8 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 40598bb..e5ef30a 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="5.11.1.qualifier"
+      version="5.12.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 414fc48..3fa237c 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 ac452c2..bd4c49f 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="5.11.1.qualifier"
+      version="5.12.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.jgit" version="5.11.1" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="5.12.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 b6d2a41..6269334 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 b4cbd8f..5de91d5 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="5.11.1.qualifier"
+      version="5.12.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.jgit" version="5.11.1" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="5.12.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 0969e76..aa08757 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml
index a245a4a..15ba0ff 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="5.11.1.qualifier"
+      version="5.12.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="5.11.1" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="5.12.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 7520348..2434a94 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 fd0425d..2b1738d 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="5.11.1.qualifier"
+      version="5.12.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="5.11.1" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="5.12.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 4603675..3c536f7 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml
index a17381e..0941cc6 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="5.11.1.qualifier"
+      version="5.12.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="5.11.1" match="equivalent"/>
-      <import feature="org.eclipse.jgit.lfs" version="5.11.1" match="equivalent"/>
-      <import feature="org.eclipse.jgit.ssh.apache" version="5.11.1" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="5.12.0" match="equivalent"/>
+      <import feature="org.eclipse.jgit.lfs" version="5.12.0" match="equivalent"/>
+      <import feature="org.eclipse.jgit.ssh.apache" version="5.12.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 44a8465..924cebd 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 f6b9c39..c12f4d9 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.repository</artifactId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml
index 90826b2..017d4f2 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="5.11.1.qualifier"
+      version="5.12.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="5.11.1" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="5.12.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 715a747..cd47a06 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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>5.11.1-SNAPSHOT</version>
+      <version>5.12.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 45ef4aa..2386f7b 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="5.11.1.qualifier"
+      version="5.12.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.jgit" version="5.11.1" match="equivalent"/>
+      <import feature="org.eclipse.jgit" version="5.12.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 0626dfa..ea12537 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 539984e..15cbc15 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="5.11.1.qualifier"
+      version="5.12.0.qualifier"
       provider-name="%providerName">
 
    <description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.jgit" version="5.11.1" match="equivalent"/>
+      <import plugin="org.eclipse.jgit" version="5.12.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 1e637ee..f1d1786 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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
index 508de9c..0d297e3 100644
--- 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
@@ -2,4 +2,4 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: JGit Target Platform Bundle
 Bundle-SymbolicName: org.eclipse.jgit.target
-Bundle-Version: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.target
index 715986b..cb6dbeb 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.target
@@ -1,28 +1,28 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.10" sequenceNumber="1615333029">
+<target name="jgit-4.10" sequenceNumber="1619186290">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.client" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.client.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.36.v20210114"/>
-      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.36.v20210114/"/>
+      <unit id="org.eclipse.jetty.client" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.client.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.40.v20210413"/>
+      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.40.v20210413/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.google.gson" version="2.8.6.v20201231-1626"/>
@@ -86,7 +86,7 @@
       <unit id="org.slf4j.binding.log4j12.source" version="1.7.30.v20201108-2042"/>
       <unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
       <unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20210223232630/repository"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20210406213021/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.osgi" version="0.0.0"/>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.tpd
index ed443a6..55a0950 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.tpd
@@ -1,7 +1,7 @@
 target "jgit-4.10" with source configurePhase
 
 include "projects/jetty-9.4.x.tpd"
-include "orbit/R20210223232630-2021-03.tpd"
+include "orbit/S20210406213021.tpd"
 
 location "https://download.eclipse.org/releases/2018-12/" {
 	org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.target
index 1926712..21a6e1f 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.target
@@ -1,28 +1,28 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.11" sequenceNumber="1615333055">
+<target name="jgit-4.11" sequenceNumber="1619186290">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.client" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.client.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.36.v20210114"/>
-      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.36.v20210114/"/>
+      <unit id="org.eclipse.jetty.client" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.client.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.40.v20210413"/>
+      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.40.v20210413/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.google.gson" version="2.8.6.v20201231-1626"/>
@@ -86,7 +86,7 @@
       <unit id="org.slf4j.binding.log4j12.source" version="1.7.30.v20201108-2042"/>
       <unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
       <unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20210223232630/repository"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20210406213021/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.osgi" version="0.0.0"/>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.tpd
index 013d621..12b0f75 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.tpd
@@ -1,7 +1,7 @@
 target "jgit-4.11" with source configurePhase
 
 include "projects/jetty-9.4.x.tpd"
-include "orbit/R20210223232630-2021-03.tpd"
+include "orbit/S20210406213021.tpd"
 
 location "https://download.eclipse.org/releases/2019-03/" {
 	org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12.target
index 4449dc3..79cf33d 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12.target
@@ -1,28 +1,28 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.12" sequenceNumber="1615333029">
+<target name="jgit-4.12" sequenceNumber="1619186290">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.client" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.client.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.36.v20210114"/>
-      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.36.v20210114/"/>
+      <unit id="org.eclipse.jetty.client" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.client.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.40.v20210413"/>
+      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.40.v20210413/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.google.gson" version="2.8.6.v20201231-1626"/>
@@ -86,7 +86,7 @@
       <unit id="org.slf4j.binding.log4j12.source" version="1.7.30.v20201108-2042"/>
       <unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
       <unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20210223232630/repository"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20210406213021/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.osgi" version="0.0.0"/>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12.tpd
index 99008ab..6fc7443 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12.tpd
@@ -1,7 +1,7 @@
 target "jgit-4.12" with source configurePhase
 
 include "projects/jetty-9.4.x.tpd"
-include "orbit/R20210223232630-2021-03.tpd"
+include "orbit/S20210406213021.tpd"
 
 location "https://download.eclipse.org/releases/2019-06/" {
 	org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.13.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.13.target
index 01a10e7..bc2e3d3 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.13.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.13.target
@@ -1,28 +1,28 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.13" sequenceNumber="1615333029">
+<target name="jgit-4.13" sequenceNumber="1619186290">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.client" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.client.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.36.v20210114"/>
-      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.36.v20210114/"/>
+      <unit id="org.eclipse.jetty.client" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.client.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.40.v20210413"/>
+      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.40.v20210413/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.google.gson" version="2.8.6.v20201231-1626"/>
@@ -86,7 +86,7 @@
       <unit id="org.slf4j.binding.log4j12.source" version="1.7.30.v20201108-2042"/>
       <unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
       <unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20210223232630/repository"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20210406213021/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.osgi" version="0.0.0"/>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.13.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.13.tpd
index d0db92c..5dbcbb4 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.13.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.13.tpd
@@ -1,7 +1,7 @@
 target "jgit-4.13" with source configurePhase
 
 include "projects/jetty-9.4.x.tpd"
-include "orbit/R20210223232630-2021-03.tpd"
+include "orbit/S20210406213021.tpd"
 
 location "https://download.eclipse.org/releases/2019-09/" {
 	org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.14.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.14.target
index b56f9a1..23591b1 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.14.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.14.target
@@ -1,28 +1,28 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.14" sequenceNumber="1615333029">
+<target name="jgit-4.14" sequenceNumber="1619186289">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.client" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.client.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.36.v20210114"/>
-      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.36.v20210114/"/>
+      <unit id="org.eclipse.jetty.client" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.client.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.40.v20210413"/>
+      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.40.v20210413/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.google.gson" version="2.8.6.v20201231-1626"/>
@@ -86,7 +86,7 @@
       <unit id="org.slf4j.binding.log4j12.source" version="1.7.30.v20201108-2042"/>
       <unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
       <unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20210223232630/repository"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20210406213021/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.osgi" version="0.0.0"/>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.14.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.14.tpd
index e0a730e..3da7ed4 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.14.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.14.tpd
@@ -1,7 +1,7 @@
 target "jgit-4.14" with source configurePhase
 
 include "projects/jetty-9.4.x.tpd"
-include "orbit/R20210223232630-2021-03.tpd"
+include "orbit/S20210406213021.tpd"
 
 location "https://download.eclipse.org/releases/2019-12/201912181000/" {
 	org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.15.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.15.target
index f3820a7..1a11dff 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.15.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.15.target
@@ -1,28 +1,28 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.15" sequenceNumber="1615333029">
+<target name="jgit-4.15" sequenceNumber="1619186289">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.client" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.client.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.36.v20210114"/>
-      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.36.v20210114/"/>
+      <unit id="org.eclipse.jetty.client" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.client.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.40.v20210413"/>
+      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.40.v20210413/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.google.gson" version="2.8.6.v20201231-1626"/>
@@ -86,7 +86,7 @@
       <unit id="org.slf4j.binding.log4j12.source" version="1.7.30.v20201108-2042"/>
       <unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
       <unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20210223232630/repository"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20210406213021/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.osgi" version="0.0.0"/>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.15.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.15.tpd
index 773a9a9..49ae4ea 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.15.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.15.tpd
@@ -1,7 +1,7 @@
 target "jgit-4.15" with source configurePhase
 
 include "projects/jetty-9.4.x.tpd"
-include "orbit/R20210223232630-2021-03.tpd"
+include "orbit/S20210406213021.tpd"
 
 location "https://download.eclipse.org/releases/2020-03/202003181000/" {
 	org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.16.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.16.target
index 6a9f582..ae9511a 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.16.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.16.target
@@ -1,28 +1,28 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.16" sequenceNumber="1615333030">
+<target name="jgit-4.16" sequenceNumber="1619186290">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.client" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.client.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.36.v20210114"/>
-      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.36.v20210114/"/>
+      <unit id="org.eclipse.jetty.client" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.client.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.40.v20210413"/>
+      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.40.v20210413/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.google.gson" version="2.8.6.v20201231-1626"/>
@@ -86,7 +86,7 @@
       <unit id="org.slf4j.binding.log4j12.source" version="1.7.30.v20201108-2042"/>
       <unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
       <unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20210223232630/repository"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20210406213021/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.osgi" version="0.0.0"/>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.16.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.16.tpd
index 8b4de8b..4e6a745 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.16.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.16.tpd
@@ -1,7 +1,7 @@
 target "jgit-4.16" with source configurePhase
 
 include "projects/jetty-9.4.x.tpd"
-include "orbit/R20210223232630-2021-03.tpd"
+include "orbit/S20210406213021.tpd"
 
 location "https://download.eclipse.org/releases/2020-06/" {
 	org.eclipse.osgi lazy
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 b7481e0..5578abb 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,28 +1,28 @@
 <?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="1615333030">
+<target name="jgit-4.17" sequenceNumber="1619186290">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.client" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.client.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.36.v20210114"/>
-      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.36.v20210114/"/>
+      <unit id="org.eclipse.jetty.client" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.client.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.40.v20210413"/>
+      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.40.v20210413/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.google.gson" version="2.8.6.v20201231-1626"/>
@@ -86,7 +86,7 @@
       <unit id="org.slf4j.binding.log4j12.source" version="1.7.30.v20201108-2042"/>
       <unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
       <unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20210223232630/repository"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20210406213021/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.osgi" version="0.0.0"/>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.tpd
index b2585be..cad8a5c 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.tpd
@@ -1,7 +1,7 @@
 target "jgit-4.17" with source configurePhase
 
 include "projects/jetty-9.4.x.tpd"
-include "orbit/R20210223232630-2021-03.tpd"
+include "orbit/S20210406213021.tpd"
 
 location "https://download.eclipse.org/releases/2020-09/" {
 	org.eclipse.osgi lazy
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 6d851a2..42bfa0c 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,28 +1,28 @@
 <?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="1615333029">
+<target name="jgit-4.18" sequenceNumber="1619186290">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.client" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.client.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.36.v20210114"/>
-      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.36.v20210114/"/>
+      <unit id="org.eclipse.jetty.client" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.client.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.40.v20210413"/>
+      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.40.v20210413/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.google.gson" version="2.8.6.v20201231-1626"/>
@@ -86,7 +86,7 @@
       <unit id="org.slf4j.binding.log4j12.source" version="1.7.30.v20201108-2042"/>
       <unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
       <unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20210223232630/repository"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20210406213021/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.osgi" version="0.0.0"/>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.18.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.18.tpd
index 6d16256..6f0b0c3 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.18.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.18.tpd
@@ -1,7 +1,7 @@
 target "jgit-4.18" with source configurePhase
 
 include "projects/jetty-9.4.x.tpd"
-include "orbit/R20210223232630-2021-03.tpd"
+include "orbit/S20210406213021.tpd"
 
 location "https://download.eclipse.org/releases/2020-12/" {
 	org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19-staging.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.target
similarity index 80%
copy from org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19-staging.target
copy to org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.target
index 1a0505d..16af400 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19-staging.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.target
@@ -1,28 +1,28 @@
 <?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="1615333029">
+<target name="jgit-4.19-staging" sequenceNumber="1619186288">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.client" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.client.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.36.v20210114"/>
-      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.36.v20210114/"/>
+      <unit id="org.eclipse.jetty.client" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.client.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.40.v20210413"/>
+      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.40.v20210413/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.google.gson" version="2.8.6.v20201231-1626"/>
@@ -86,7 +86,7 @@
       <unit id="org.slf4j.binding.log4j12.source" version="1.7.30.v20201108-2042"/>
       <unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
       <unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20210223232630/repository"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20210406213021/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.osgi" version="0.0.0"/>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19-staging.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.tpd
similarity index 79%
rename from org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19-staging.tpd
rename to org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.tpd
index 7ed5377..6809f05 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19-staging.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.tpd
@@ -1,7 +1,7 @@
 target "jgit-4.19-staging" with source configurePhase
 
 include "projects/jetty-9.4.x.tpd"
-include "orbit/R20210223232630-2021-03.tpd"
+include "orbit/S20210406213021.tpd"
 
 location "https://download.eclipse.org/staging/2021-03/" {
 	org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19-staging.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20-staging.target
similarity index 80%
rename from org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19-staging.target
rename to org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20-staging.target
index 1a0505d..28471a3 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19-staging.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20-staging.target
@@ -1,28 +1,28 @@
 <?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="1615333029">
+<target name="jgit-4.20-staging" sequenceNumber="1619186291">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.client" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.client.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.36.v20210114"/>
-      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.36.v20210114/"/>
+      <unit id="org.eclipse.jetty.client" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.client.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.40.v20210413"/>
+      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.40.v20210413/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.google.gson" version="2.8.6.v20201231-1626"/>
@@ -86,11 +86,11 @@
       <unit id="org.slf4j.binding.log4j12.source" version="1.7.30.v20201108-2042"/>
       <unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
       <unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20210223232630/repository"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20210406213021/repository"/>
     </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/2021-03/"/>
+      <repository location="https://download.eclipse.org/staging/2021-06/"/>
     </location>
   </locations>
 </target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20-staging.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20-staging.tpd
new file mode 100644
index 0000000..e7d4f25
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20-staging.tpd
@@ -0,0 +1,8 @@
+target "jgit-4.20-staging" with source configurePhase
+
+include "projects/jetty-9.4.x.tpd"
+include "orbit/S20210406213021.tpd"
+
+location "https://download.eclipse.org/staging/2021-06/" {
+	org.eclipse.osgi lazy
+}
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.target
index 249be4c..8aa7d08 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.target
@@ -1,28 +1,28 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.6" sequenceNumber="1615333044">
+<target name="jgit-4.6" sequenceNumber="1619186309">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.client" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.client.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.36.v20210114"/>
-      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.36.v20210114/"/>
+      <unit id="org.eclipse.jetty.client" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.client.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.40.v20210413"/>
+      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.40.v20210413/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.google.gson" version="2.8.6.v20201231-1626"/>
@@ -86,7 +86,7 @@
       <unit id="org.slf4j.binding.log4j12.source" version="1.7.30.v20201108-2042"/>
       <unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
       <unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20210223232630/repository"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20210406213021/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.osgi" version="0.0.0"/>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.tpd
index 6e7cd8b..4128209 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.tpd
@@ -1,7 +1,7 @@
 target "jgit-4.6" with source configurePhase
 
 include "projects/jetty-9.4.x.tpd"
-include "orbit/R20210223232630-2021-03.tpd"
+include "orbit/S20210406213021.tpd"
 
 location "https://download.eclipse.org/releases/neon/" {
 	org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.target
index 72c44d7..178640a 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.target
@@ -1,28 +1,28 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.7" sequenceNumber="1615333034">
+<target name="jgit-4.7" sequenceNumber="1619186297">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.client" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.client.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.36.v20210114"/>
-      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.36.v20210114/"/>
+      <unit id="org.eclipse.jetty.client" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.client.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.40.v20210413"/>
+      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.40.v20210413/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.google.gson" version="2.8.6.v20201231-1626"/>
@@ -86,7 +86,7 @@
       <unit id="org.slf4j.binding.log4j12.source" version="1.7.30.v20201108-2042"/>
       <unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
       <unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20210223232630/repository"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20210406213021/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.osgi" version="0.0.0"/>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.tpd
index 5a58b00..68c6b7b 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.tpd
@@ -1,7 +1,7 @@
 target "jgit-4.7" with source configurePhase
 
 include "projects/jetty-9.4.x.tpd"
-include "orbit/R20210223232630-2021-03.tpd"
+include "orbit/S20210406213021.tpd"
 
 location "https://download.eclipse.org/releases/oxygen/" {
 	org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.target
index 10e3dea..e5d0829 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.target
@@ -1,28 +1,28 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.8" sequenceNumber="1615333030">
+<target name="jgit-4.8" sequenceNumber="1619186290">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.client" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.client.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.36.v20210114"/>
-      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.36.v20210114/"/>
+      <unit id="org.eclipse.jetty.client" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.client.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.40.v20210413"/>
+      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.40.v20210413/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.google.gson" version="2.8.6.v20201231-1626"/>
@@ -86,7 +86,7 @@
       <unit id="org.slf4j.binding.log4j12.source" version="1.7.30.v20201108-2042"/>
       <unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
       <unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20210223232630/repository"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20210406213021/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.osgi" version="0.0.0"/>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.tpd
index 3114877..f7ac2c0 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.tpd
@@ -1,7 +1,7 @@
 target "jgit-4.8" with source configurePhase
 
 include "projects/jetty-9.4.x.tpd"
-include "orbit/R20210223232630-2021-03.tpd"
+include "orbit/S20210406213021.tpd"
 
 location "https://download.eclipse.org/releases/photon/" {
 	org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.target
index 55b3c60..46c2644 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.target
@@ -1,28 +1,28 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.9" sequenceNumber="1615333029">
+<target name="jgit-4.9" sequenceNumber="1619186290">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
-      <unit id="org.eclipse.jetty.client" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.client.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.continuation.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.http.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.io.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.security.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.server.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.servlet.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.source" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax" version="9.4.36.v20210114"/>
-      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.36.v20210114"/>
-      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.36.v20210114/"/>
+      <unit id="org.eclipse.jetty.client" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.client.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.continuation.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.http.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.io.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.security.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.server.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.servlet.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.source" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax" version="9.4.40.v20210413"/>
+      <unit id="org.eclipse.jetty.util.ajax.source" version="9.4.40.v20210413"/>
+      <repository id="jetty-9.4.36" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.40.v20210413/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.google.gson" version="2.8.6.v20201231-1626"/>
@@ -86,7 +86,7 @@
       <unit id="org.slf4j.binding.log4j12.source" version="1.7.30.v20201108-2042"/>
       <unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
       <unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
-      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20210223232630/repository"/>
+      <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20210406213021/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.osgi" version="0.0.0"/>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.tpd
index 132a0b0..c77376a 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.tpd
@@ -1,7 +1,7 @@
 target "jgit-4.9" with source configurePhase
 
 include "projects/jetty-9.4.x.tpd"
-include "orbit/R20210223232630-2021-03.tpd"
+include "orbit/S20210406213021.tpd"
 
 location "https://download.eclipse.org/releases/2018-09/" {
 	org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/S20210406213021.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/S20210406213021.tpd
new file mode 100644
index 0000000..45d0fd1
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/S20210406213021.tpd
@@ -0,0 +1,66 @@
+target "S20210406213021" with source configurePhase
+// see https://download.eclipse.org/tools/orbit/downloads/
+
+location "https://download.eclipse.org/tools/orbit/downloads/drops/S20210406213021/repository" {
+	com.google.gson [2.8.6.v20201231-1626,2.8.6.v20201231-1626]
+	com.google.gson.source [2.8.6.v20201231-1626,2.8.6.v20201231-1626]
+	com.jcraft.jsch [0.1.55.v20190404-1902,0.1.55.v20190404-1902]
+	com.jcraft.jsch.source [0.1.55.v20190404-1902,0.1.55.v20190404-1902]
+	com.jcraft.jzlib [1.1.1.v201205102305,1.1.1.v201205102305]
+	com.jcraft.jzlib.source [1.1.1.v201205102305,1.1.1.v201205102305]
+	javaewah [1.1.7.v20200107-0831,1.1.7.v20200107-0831]
+	javaewah.source [1.1.7.v20200107-0831,1.1.7.v20200107-0831]
+	javax.servlet [3.1.0.v201410161800,3.1.0.v201410161800]
+	javax.servlet.source [3.1.0.v201410161800,3.1.0.v201410161800]
+	net.bytebuddy.byte-buddy [1.9.0.v20181107-1410,1.9.0.v20181107-1410]
+	net.bytebuddy.byte-buddy-agent [1.9.0.v20181106-1534,1.9.0.v20181106-1534]
+	net.bytebuddy.byte-buddy-agent.source [1.9.0.v20181106-1534,1.9.0.v20181106-1534]
+	net.bytebuddy.byte-buddy.source [1.9.0.v20181107-1410,1.9.0.v20181107-1410]
+	net.i2p.crypto.eddsa [0.3.0.v20181102-1323,0.3.0.v20181102-1323]
+	net.i2p.crypto.eddsa.source [0.3.0.v20181102-1323,0.3.0.v20181102-1323]
+	org.apache.ant [1.10.9.v20201106-1946,1.10.9.v20201106-1946]
+	org.apache.ant.source [1.10.9.v20201106-1946,1.10.9.v20201106-1946]
+	org.apache.commons.codec [1.14.0.v20200818-1422,1.14.0.v20200818-1422]
+	org.apache.commons.codec.source [1.14.0.v20200818-1422,1.14.0.v20200818-1422]
+	org.apache.commons.compress [1.19.0.v20200106-2343,1.19.0.v20200106-2343]
+	org.apache.commons.compress.source [1.19.0.v20200106-2343,1.19.0.v20200106-2343]
+	org.apache.commons.logging [1.2.0.v20180409-1502,1.2.0.v20180409-1502]
+	org.apache.commons.logging.source [1.2.0.v20180409-1502,1.2.0.v20180409-1502]
+	org.apache.httpcomponents.httpclient [4.5.13.v20210128-2225,4.5.13.v20210128-2225]
+	org.apache.httpcomponents.httpclient.source [4.5.13.v20210128-2225,4.5.13.v20210128-2225]
+	org.apache.httpcomponents.httpcore [4.4.14.v20210128-2225,4.4.14.v20210128-2225]
+	org.apache.httpcomponents.httpcore.source [4.4.14.v20210128-2225,4.4.14.v20210128-2225]
+	org.apache.log4j [1.2.15.v201012070815,1.2.15.v201012070815]
+	org.apache.log4j.source [1.2.15.v201012070815,1.2.15.v201012070815]
+	org.apache.sshd.osgi [2.6.0.v20210201-2003,2.6.0.v20210201-2003]
+	org.apache.sshd.osgi.source [2.6.0.v20210201-2003,2.6.0.v20210201-2003]
+	org.apache.sshd.sftp [2.6.0.v20210201-2003,2.6.0.v20210201-2003]
+	org.apache.sshd.sftp.source [2.6.0.v20210201-2003,2.6.0.v20210201-2003]
+	org.assertj [3.14.0.v20200120-1926,3.14.0.v20200120-1926]
+	org.assertj.source [3.14.0.v20200120-1926,3.14.0.v20200120-1926]
+	org.bouncycastle.bcpg [1.65.0.v20200527-1955,1.65.0.v20200527-1955]
+	org.bouncycastle.bcpg.source [1.65.0.v20200527-1955,1.65.0.v20200527-1955]
+	org.bouncycastle.bcpkix [1.65.0.v20200527-1955,1.65.0.v20200527-1955]
+	org.bouncycastle.bcpkix.source [1.65.0.v20200527-1955,1.65.0.v20200527-1955]
+	org.bouncycastle.bcprov [1.65.1.v20200529-1514,1.65.1.v20200529-1514]
+	org.bouncycastle.bcprov.source [1.65.1.v20200529-1514,1.65.1.v20200529-1514]
+	org.hamcrest [1.1.0.v20090501071000,1.1.0.v20090501071000]
+	org.hamcrest.core [1.3.0.v20180420-1519,1.3.0.v20180420-1519]
+	org.hamcrest.core.source [1.3.0.v20180420-1519,1.3.0.v20180420-1519]
+	org.hamcrest.library [1.3.0.v20180524-2246,1.3.0.v20180524-2246]
+	org.hamcrest.library.source [1.3.0.v20180524-2246,1.3.0.v20180524-2246]
+	org.junit [4.13.0.v20200204-1500,4.13.0.v20200204-1500]
+	org.junit.source [4.13.0.v20200204-1500,4.13.0.v20200204-1500]
+	org.kohsuke.args4j [2.33.0.v20160323-2218,2.33.0.v20160323-2218]
+	org.kohsuke.args4j.source [2.33.0.v20160323-2218,2.33.0.v20160323-2218]
+	org.mockito [2.23.0.v20200310-1642,2.23.0.v20200310-1642]
+	org.mockito.source [2.23.0.v20200310-1642,2.23.0.v20200310-1642]
+	org.objenesis [2.6.0.v20180420-1519,2.6.0.v20180420-1519]
+	org.objenesis.source [2.6.0.v20180420-1519,2.6.0.v20180420-1519]
+	org.slf4j.api [1.7.30.v20200204-2150,1.7.30.v20200204-2150]
+	org.slf4j.api.source [1.7.30.v20200204-2150,1.7.30.v20200204-2150]
+	org.slf4j.binding.log4j12 [1.7.30.v20201108-2042,1.7.30.v20201108-2042]
+	org.slf4j.binding.log4j12.source [1.7.30.v20201108-2042,1.7.30.v20201108-2042]
+	org.tukaani.xz [1.8.0.v20180207-1613,1.8.0.v20180207-1613]
+	org.tukaani.xz.source [1.8.0.v20180207-1613,1.8.0.v20180207-1613]
+}
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml
index 9ed76bd..993f552 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.eclipse.jgit</groupId>
     <artifactId>jgit.tycho.parent</artifactId>
-    <version>5.11.1-SNAPSHOT</version>
+    <version>5.12.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.target</artifactId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/projects/jetty-9.4.x.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/projects/jetty-9.4.x.tpd
index 4eec8aa..0f0b100 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/projects/jetty-9.4.x.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/projects/jetty-9.4.x.tpd
@@ -1,22 +1,22 @@
 target "jetty-9.4.x" with source configurePhase
 
-location jetty-9.4.36 "https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.36.v20210114/" {
-	org.eclipse.jetty.client [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.client.source [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.continuation [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.continuation.source [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.http [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.http.source [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.io [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.io.source [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.security [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.security.source [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.server [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.server.source [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.servlet [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.servlet.source [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.util [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.util.source [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.util.ajax [9.4.36.v20210114,9.4.36.v20210114]
-	org.eclipse.jetty.util.ajax.source [9.4.36.v20210114,9.4.36.v20210114]
+location jetty-9.4.40 "https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.40.v20210413/" {
+	org.eclipse.jetty.client [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.client.source [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.continuation [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.continuation.source [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.http [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.http.source [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.io [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.io.source [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.security [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.security.source [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.server [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.server.source [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.servlet [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.servlet.source [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.util [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.util.source [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.util.ajax [9.4.40.v20210413,9.4.40.v20210413]
+	org.eclipse.jetty.util.ajax.source [9.4.40.v20210413,9.4.40.v20210413]
 }
diff --git a/org.eclipse.jgit.packaging/pom.xml b/org.eclipse.jgit.packaging/pom.xml
index e566098..9e851dd 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>5.11.1-SNAPSHOT</version>
+  <version>5.12.0-SNAPSHOT</version>
   <packaging>pom</packaging>
 
   <name>JGit Tycho Parent</name>
@@ -294,7 +294,7 @@
         <plugin>
           <groupId>org.eclipse.cbi.maven.plugins</groupId>
           <artifactId>eclipse-jarsigner-plugin</artifactId>
-          <version>1.1.7</version>
+          <version>1.3.1</version>
         </plugin>
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
diff --git a/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
index 04f3d59..9e18df9 100644
--- a/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
@@ -3,28 +3,28 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.pgm.test
 Bundle-SymbolicName: org.eclipse.jgit.pgm.test
-Bundle-Version: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: org.eclipse.jgit.api;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.api.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.diff;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.dircache;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.file;version="5.11.1",
- org.eclipse.jgit.junit;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.merge;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.pgm;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.pgm.internal;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.pgm.opt;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revwalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.treewalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util.io;version="[5.11.1,5.12.0)",
+Import-Package: org.eclipse.jgit.api;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.api.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.diff;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.dircache;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.file;version="5.12.0",
+ org.eclipse.jgit.junit;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.merge;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.pgm;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.pgm.internal;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.pgm.opt;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revwalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.treewalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util.io;version="[5.12.0,5.13.0)",
  org.hamcrest.core;bundle-version="[1.1.0,2.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 d5fc1d8..8398d6b 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 5acaed5..fe1b42b 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: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
@@ -14,46 +14,46 @@
  org.eclipse.jetty.servlet;version="[9.4.5,10.0.0)",
  org.eclipse.jetty.util;version="[9.4.5,10.0.0)",
  org.eclipse.jetty.util.component;version="[9.4.5,10.0.0)",
- org.eclipse.jgit.api;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.api.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.archive;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.awtui;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.blame;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.diff;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.dircache;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.gitrepo;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.io;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.pack;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs.server;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs.server.fs;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs.server.s3;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.merge;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.nls;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.notes;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revplot;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revwalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revwalk.filter;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.storage.pack;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport.http.apache;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport.resolver;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport.sshd;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.treewalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.treewalk.filter;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util.io;version="[5.11.1,5.12.0)",
+ org.eclipse.jgit.api;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.api.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.archive;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.awtui;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.blame;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.diff;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.dircache;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.gitrepo;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.io;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs.server;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs.server.fs;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs.server.s3;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.merge;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.nls;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.notes;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revplot;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revwalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revwalk.filter;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.storage.pack;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport.http.apache;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport.resolver;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport.sshd;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.treewalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.treewalk.filter;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util.io;version="[5.12.0,5.13.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="5.11.1";
+Export-Package: org.eclipse.jgit.console;version="5.12.0";
  uses:="org.eclipse.jgit.transport,
   org.eclipse.jgit.util",
- org.eclipse.jgit.pgm;version="5.11.1";
+ org.eclipse.jgit.pgm;version="5.12.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.util.io,
    org.eclipse.jgit.awtui,
@@ -65,14 +65,14 @@
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.api,
    javax.swing",
- org.eclipse.jgit.pgm.debug;version="5.11.1";
+ org.eclipse.jgit.pgm.debug;version="5.12.0";
   uses:="org.eclipse.jgit.util.io,
    org.eclipse.jgit.pgm,
    org.eclipse.jetty.servlet",
- org.eclipse.jgit.pgm.internal;version="5.11.1";
+ org.eclipse.jgit.pgm.internal;version="5.12.0";
   x-friends:="org.eclipse.jgit.pgm.test,
    org.eclipse.jgit.test",
- org.eclipse.jgit.pgm.opt;version="5.11.1";
+ org.eclipse.jgit.pgm.opt;version="5.12.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 017810d..017861c 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: 5.11.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.pgm;version="5.11.1.qualifier";roots="."
+Bundle-Version: 5.12.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.pgm;version="5.12.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.pgm/pom.xml b/org.eclipse.jgit.pgm/pom.xml
index 3d6ad70..4e14858 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.pgm</artifactId>
diff --git a/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties b/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties
index 83846ee..38deab9 100644
--- a/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties
+++ b/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties
@@ -115,6 +115,7 @@
 metaVar_connProp=conn.prop
 metaVar_diffAlg=ALGORITHM
 metaVar_directory=DIRECTORY
+metaVar_extraArgument=ours|theirs
 metaVar_file=FILE
 metaVar_filepattern=filepattern
 metaVar_gitDir=GIT_DIR
@@ -217,6 +218,7 @@
 treeIsRequired=argument tree is required
 tooManyRefsGiven=Too many refs given
 unknownIoErrorStdout=An unknown I/O error occurred on standard output
+unknownExtraArgument=unknown extra argument -X {0} specified
 unknownMergeStrategy=unknown merge strategy {0} specified
 unknownSubcommand=Unknown subcommand: {0}
 unmergedPaths=Unmerged paths:
@@ -226,6 +228,7 @@
 usage_Aggressive=This option will cause gc to more aggressively optimize the repository at the expense of taking much more time
 usage_AlwaysFallback=Show uniquely abbreviated commit object as fallback
 usage_bareClone=Make a bare Git repository. That is, instead of creating [DIRECTORY] and placing the administrative files in [DIRECTORY]/.git, make the [DIRECTORY] itself the $GIT_DIR.
+usage_extraArgument=Pass an extra argument to a merge driver. Currently supported are "-X ours" and "-X theirs".
 usage_mirrorClone=Set up a mirror of the source repository. This implies --bare. Compared to --bare, --mirror not only maps \
 local branches of the source to local branches of the target, it maps all refs (including remote-tracking branches, notes etc.) \
 and sets up a refspec configuration such that all these refs are overwritten by a git remote update in the target repository.
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Merge.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Merge.java
index fdc449e..ca4877f 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Merge.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Merge.java
@@ -24,6 +24,7 @@
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.merge.ContentMergeStrategy;
 import org.eclipse.jgit.merge.MergeStrategy;
 import org.eclipse.jgit.merge.ResolveMerger.MergeFailureReason;
 import org.eclipse.jgit.pgm.internal.CLIText;
@@ -69,6 +70,20 @@
 	@Option(name = "-m", usage = "usage_message")
 	private String message;
 
+	private ContentMergeStrategy contentStrategy = null;
+
+	@Option(name = "--strategy-option", aliases = { "-X" },
+			metaVar = "metaVar_extraArgument", usage = "usage_extraArgument")
+	void extraArg(String name) {
+		if (ContentMergeStrategy.OURS.name().equalsIgnoreCase(name)) {
+			contentStrategy = ContentMergeStrategy.OURS;
+		} else if (ContentMergeStrategy.THEIRS.name().equalsIgnoreCase(name)) {
+			contentStrategy = ContentMergeStrategy.THEIRS;
+		} else {
+			throw die(MessageFormat.format(CLIText.get().unknownExtraArgument, name));
+		}
+	}
+
 	/** {@inheritDoc} */
 	@Override
 	protected void run() {
@@ -96,8 +111,11 @@
 			Ref oldHead = getOldHead();
 			MergeResult result;
 			try (Git git = new Git(db)) {
-				MergeCommand mergeCmd = git.merge().setStrategy(mergeStrategy)
-						.setSquash(squash).setFastForward(ff)
+				MergeCommand mergeCmd = git.merge()
+						.setStrategy(mergeStrategy)
+						.setContentMergeStrategy(contentStrategy)
+						.setSquash(squash)
+						.setFastForward(ff)
 						.setCommit(!noCommit);
 				if (srcRef != null) {
 					mergeCmd.include(srcRef);
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/internal/CLIText.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/internal/CLIText.java
index 991b3ba..8e49a76 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/internal/CLIText.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/internal/CLIText.java
@@ -284,6 +284,7 @@
 	/***/ public String tooManyRefsGiven;
 	/***/ public String treeIsRequired;
 	/***/ public char[] unknownIoErrorStdout;
+	/***/ public String unknownExtraArgument;
 	/***/ public String unknownMergeStrategy;
 	/***/ public String unknownSubcommand;
 	/***/ public String unmergedPaths;
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 b035453..2a11652 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: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
@@ -20,15 +20,15 @@
  org.apache.sshd.core;version="[2.6.0,2.7.0)",
  org.apache.sshd.server;version="[2.6.0,2.7.0)",
  org.apache.sshd.server.forward;version="[2.6.0,2.7.0)",
- org.eclipse.jgit.api;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.api.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.transport.sshd.proxy;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.junit;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.junit.ssh;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport.sshd;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)",
+ org.eclipse.jgit.api;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.api.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.transport.sshd.proxy;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.junit;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.junit.ssh;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport.sshd;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.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 4080c11..adc9bee 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 7343437..39af83d 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: plugin
 Bundle-ActivationPolicy: lazy
-Bundle-Version: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.jgit.internal.transport.sshd;version="5.11.1";x-internal:=true;
+Export-Package: org.eclipse.jgit.internal.transport.sshd;version="5.12.0";x-internal:=true;
   uses:="org.apache.sshd.client,
    org.apache.sshd.client.auth,
    org.apache.sshd.client.auth.keyboard,
@@ -23,9 +23,9 @@
    org.apache.sshd.common.signature,
    org.apache.sshd.common.util.buffer,
    org.eclipse.jgit.transport",
- org.eclipse.jgit.internal.transport.sshd.auth;version="5.11.1";x-internal:=true,
- org.eclipse.jgit.internal.transport.sshd.proxy;version="5.11.1";x-friends:="org.eclipse.jgit.ssh.apache.test",
- org.eclipse.jgit.transport.sshd;version="5.11.1";
+ org.eclipse.jgit.internal.transport.sshd.auth;version="5.12.0";x-internal:=true,
+ org.eclipse.jgit.internal.transport.sshd.proxy;version="5.12.0";x-friends:="org.eclipse.jgit.ssh.apache.test",
+ org.eclipse.jgit.transport.sshd;version="5.12.0";
   uses:="org.eclipse.jgit.transport,
    org.apache.sshd.client.config.hosts,
    org.apache.sshd.common.keyprovider,
@@ -59,6 +59,8 @@
  org.apache.sshd.common.helpers;version="[2.6.0,2.7.0)",
  org.apache.sshd.common.io;version="[2.6.0,2.7.0)",
  org.apache.sshd.common.kex;version="[2.6.0,2.7.0)",
+ org.apache.sshd.common.kex.extension;version="[2.6.0,2.7.0)",
+ org.apache.sshd.common.kex.extension.parser;version="[2.6.0,2.7.0)",
  org.apache.sshd.common.keyprovider;version="[2.6.0,2.7.0)",
  org.apache.sshd.common.mac;version="[2.6.0,2.7.0)",
  org.apache.sshd.common.random;version="[2.6.0,2.7.0)",
@@ -78,12 +80,12 @@
  org.apache.sshd.sftp;version="[2.6.0,2.7.0)",
  org.apache.sshd.sftp.client;version="[2.6.0,2.7.0)",
  org.apache.sshd.sftp.common;version="[2.6.0,2.7.0)",
- org.eclipse.jgit.annotations;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.fnmatch;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.nls;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)",
+ org.eclipse.jgit.annotations;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.fnmatch;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.nls;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.0)",
  org.slf4j;version="[1.7.0,2.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 ee8d386..cd7f30c 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: 5.11.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache;version="5.11.1.qualifier";roots="."
+Bundle-Version: 5.12.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache;version="5.12.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.apache/pom.xml b/org.eclipse.jgit.ssh.apache/pom.xml
index a8c98ee..c53dcac 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ssh.apache</artifactId>
diff --git a/org.eclipse.jgit.ssh.apache/resources/org/eclipse/jgit/internal/transport/sshd/SshdText.properties b/org.eclipse.jgit.ssh.apache/resources/org/eclipse/jgit/internal/transport/sshd/SshdText.properties
index 16b5738..5bc0867 100644
--- a/org.eclipse.jgit.ssh.apache/resources/org/eclipse/jgit/internal/transport/sshd/SshdText.properties
+++ b/org.eclipse.jgit.ssh.apache/resources/org/eclipse/jgit/internal/transport/sshd/SshdText.properties
@@ -24,7 +24,6 @@
 keyEncryptedRetry=Encrypted key ''{0}'' could not be decrypted. Enter the passphrase again.
 keyLoadFailed=Could not load key ''{0}''
 knownHostsCouldNotUpdate=Could not update known hosts file {0}
-knownHostsFileLockedRead=Could not read known hosts file (locked) {0}
 knownHostsFileLockedUpdate=Could not update known hosts file (locked) {0}
 knownHostsFileReadFailed=Failed to read known hosts file {0}
 knownHostsInvalidLine=Known hosts file {0} contains invalid line {1}
@@ -76,6 +75,9 @@
 proxySocksUnexpectedMessage=Unexpected message received from SOCKS5 proxy {0}; client state {1}: {2}
 proxySocksUnexpectedVersion=Expected SOCKS version 5, got {0}
 proxySocksUsernameTooLong=User name for proxy {0} must be at most 255 bytes long, is {1} bytes: {2}
+pubkeyAuthWrongCommand=Public key authentication received unknown SSH command {0} from {1} ({2})
+pubkeyAuthWrongKey=Public key authentication received wrong key; sent {0}, got back {1} from {2} ({3})
+pubkeyAuthWrongSignatureAlgorithm=Public key authentication requested signature type {0} but got back {1} from {2} ({3})
 serverIdNotReceived=No server identification received within {0} bytes
 serverIdTooLong=Server identification is longer than 255 characters (including line ending): {0}
 serverIdWithNul=Server identification contains a NUL character: {0}
diff --git a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitKexExtensionHandler.java b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitKexExtensionHandler.java
new file mode 100644
index 0000000..9446aaa
--- /dev/null
+++ b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitKexExtensionHandler.java
@@ -0,0 +1,163 @@
+/*
+ * Copyright (C) 2021 Thomas Wolf <thomas.wolf@paranor.ch> and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.internal.transport.sshd;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.apache.sshd.common.AttributeRepository.AttributeKey;
+import org.apache.sshd.common.NamedFactory;
+import org.apache.sshd.common.kex.KexProposalOption;
+import org.apache.sshd.common.kex.extension.KexExtensionHandler;
+import org.apache.sshd.common.kex.extension.KexExtensions;
+import org.apache.sshd.common.kex.extension.parser.ServerSignatureAlgorithms;
+import org.apache.sshd.common.session.Session;
+import org.apache.sshd.common.signature.Signature;
+import org.apache.sshd.common.util.logging.AbstractLoggingBean;
+import org.eclipse.jgit.util.StringUtils;
+
+/**
+ * Do not use the DefaultClientKexExtensionHandler from sshd; it doesn't work
+ * properly because of misconceptions. See SSHD-1141.
+ *
+ * @see <a href="https://issues.apache.org/jira/browse/SSHD-1141">SSHD-1141</a>
+ */
+public class JGitKexExtensionHandler extends AbstractLoggingBean
+		implements KexExtensionHandler {
+
+	/** Singleton instance. */
+	public static final JGitKexExtensionHandler INSTANCE = new JGitKexExtensionHandler();
+
+	/**
+	 * Session {@link AttributeKey} used to store whether the extension
+	 * indicator was already sent.
+	 */
+	private static final AttributeKey<Boolean> CLIENT_PROPOSAL_MADE = new AttributeKey<>();
+
+	/**
+	 * Session {@link AttributeKey} storing the algorithms announced by the
+	 * server as known.
+	 */
+	public static final AttributeKey<Set<String>> SERVER_ALGORITHMS = new AttributeKey<>();
+
+	private JGitKexExtensionHandler() {
+		// No public instantiation for singleton
+	}
+
+	@Override
+	public boolean isKexExtensionsAvailable(Session session,
+			AvailabilityPhase phase) throws IOException {
+		return !AvailabilityPhase.PREKEX.equals(phase);
+	}
+
+	@Override
+	public void handleKexInitProposal(Session session, boolean initiator,
+			Map<KexProposalOption, String> proposal) throws IOException {
+		// If it's the very first time, we may add the marker telling the server
+		// that we are ready to handle SSH_MSG_EXT_INFO
+		if (session == null || session.isServerSession() || !initiator) {
+			return;
+		}
+		if (session.getAttribute(CLIENT_PROPOSAL_MADE) != null) {
+			return;
+		}
+		String kexAlgorithms = proposal.get(KexProposalOption.SERVERKEYS);
+		if (StringUtils.isEmptyOrNull(kexAlgorithms)) {
+			return;
+		}
+		List<String> algorithms = new ArrayList<>();
+		// We're a client. We mustn't send the server extension, and we should
+		// send the client extension only once.
+		for (String algo : kexAlgorithms.split(",")) { //$NON-NLS-1$
+			if (KexExtensions.CLIENT_KEX_EXTENSION.equalsIgnoreCase(algo)
+					|| KexExtensions.SERVER_KEX_EXTENSION
+							.equalsIgnoreCase(algo)) {
+				continue;
+			}
+			algorithms.add(algo);
+		}
+		// Tell the server that we want to receive SSH2_MSG_EXT_INFO
+		algorithms.add(KexExtensions.CLIENT_KEX_EXTENSION);
+		if (log.isDebugEnabled()) {
+			log.debug(
+					"handleKexInitProposal({}): proposing HostKeyAlgorithms {}", //$NON-NLS-1$
+					session, algorithms);
+		}
+		proposal.put(KexProposalOption.SERVERKEYS,
+				String.join(",", algorithms)); //$NON-NLS-1$
+		session.setAttribute(CLIENT_PROPOSAL_MADE, Boolean.TRUE);
+	}
+
+	@Override
+	public boolean handleKexExtensionRequest(Session session, int index,
+			int count, String name, byte[] data) throws IOException {
+		if (ServerSignatureAlgorithms.NAME.equals(name)) {
+			handleServerSignatureAlgorithms(session,
+					ServerSignatureAlgorithms.INSTANCE.parseExtension(data));
+		}
+		return true;
+	}
+
+	/**
+	 * Perform updates after a server-sig-algs extension has been received.
+	 *
+	 * @param session
+	 *            the message was received for
+	 * @param serverAlgorithms
+	 *            signature algorithm names announced by the server
+	 */
+	protected void handleServerSignatureAlgorithms(Session session,
+			Collection<String> serverAlgorithms) {
+		if (log.isDebugEnabled()) {
+			log.debug("handleServerSignatureAlgorithms({}): {}", session, //$NON-NLS-1$
+					serverAlgorithms);
+		}
+		// Client determines order; server says what it supports. Re-order
+		// such that supported ones are at the front, in client order,
+		// followed by unsupported ones, also in client order.
+		if (serverAlgorithms != null && !serverAlgorithms.isEmpty()) {
+			List<NamedFactory<Signature>> clientAlgorithms = new ArrayList<>(
+					session.getSignatureFactories());
+			if (log.isDebugEnabled()) {
+				log.debug(
+						"handleServerSignatureAlgorithms({}): PubkeyAcceptedAlgorithms before: {}", //$NON-NLS-1$
+						session, clientAlgorithms);
+			}
+			List<NamedFactory<Signature>> unknown = new ArrayList<>();
+			Set<String> known = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
+			known.addAll(serverAlgorithms);
+			for (Iterator<NamedFactory<Signature>> iter = clientAlgorithms
+					.iterator(); iter.hasNext();) {
+				NamedFactory<Signature> algo = iter.next();
+				if (!known.contains(algo.getName())) {
+					unknown.add(algo);
+					iter.remove();
+				}
+			}
+			// Re-add the unknown ones at the end. Per RFC 8308, some
+			// servers may not announce _all_ their supported algorithms,
+			// and a client may use unknown algorithms.
+			clientAlgorithms.addAll(unknown);
+			if (log.isDebugEnabled()) {
+				log.debug(
+						"handleServerSignatureAlgorithms({}): PubkeyAcceptedAlgorithms after: {}", //$NON-NLS-1$
+						session, clientAlgorithms);
+			}
+			session.setAttribute(SERVER_ALGORITHMS, known);
+			session.setSignatureFactories(clientAlgorithms);
+		}
+	}
+}
diff --git a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitPublicKeyAuthentication.java b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitPublicKeyAuthentication.java
index 297b456..6755094 100644
--- a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitPublicKeyAuthentication.java
+++ b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitPublicKeyAuthentication.java
@@ -11,6 +11,9 @@
 
 import java.io.IOException;
 import java.security.PublicKey;
+import java.security.spec.InvalidKeySpecException;
+import java.text.MessageFormat;
+import java.util.Deque;
 import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
@@ -19,6 +22,7 @@
 import org.apache.sshd.client.auth.pubkey.UserAuthPublicKey;
 import org.apache.sshd.client.session.ClientSession;
 import org.apache.sshd.common.NamedFactory;
+import org.apache.sshd.common.NamedResource;
 import org.apache.sshd.common.RuntimeSshException;
 import org.apache.sshd.common.SshConstants;
 import org.apache.sshd.common.config.keys.KeyUtils;
@@ -37,7 +41,9 @@
  */
 public class JGitPublicKeyAuthentication extends UserAuthPublicKey {
 
-	private final List<String> algorithms = new LinkedList<>();
+	private final Deque<String> currentAlgorithms = new LinkedList<>();
+
+	private String chosenAlgorithm;
 
 	JGitPublicKeyAuthentication(List<NamedFactory<Signature>> factories) {
 		super(factories);
@@ -47,11 +53,25 @@
 	protected boolean sendAuthDataRequest(ClientSession session, String service)
 			throws Exception {
 		if (current == null) {
-			algorithms.clear();
+			currentAlgorithms.clear();
+			chosenAlgorithm = null;
 		}
 		String currentAlgorithm = null;
-		if (current != null && !algorithms.isEmpty()) {
-			currentAlgorithm = algorithms.remove(0);
+		if (current != null && !currentAlgorithms.isEmpty()) {
+			currentAlgorithm = currentAlgorithms.poll();
+			if (chosenAlgorithm != null) {
+				Set<String> knownServerAlgorithms = session.getAttribute(
+						JGitKexExtensionHandler.SERVER_ALGORITHMS);
+				if (knownServerAlgorithms != null
+						&& knownServerAlgorithms.contains(chosenAlgorithm)) {
+					// We've tried key 'current' with 'chosenAlgorithm', but it
+					// failed. However, the server had told us it supported
+					// 'chosenAlgorithm'. Thus it makes no sense to continue
+					// with this key and other signature algorithms. Skip to the
+					// next key, if any.
+					currentAlgorithm = null;
+				}
+			}
 		}
 		if (currentAlgorithm == null) {
 			try {
@@ -61,14 +81,13 @@
 								"sendAuthDataRequest({})[{}] no more keys to send", //$NON-NLS-1$
 								session, service);
 					}
+					current = null;
 					return false;
 				}
 				current = keys.next();
-				algorithms.clear();
+				currentAlgorithms.clear();
+				chosenAlgorithm = null;
 			} catch (Error e) { // Copied from superclass
-				warn("sendAuthDataRequest({})[{}] failed ({}) to get next key: {}", //$NON-NLS-1$
-						session, service, e.getClass().getSimpleName(),
-						e.getMessage(), e);
 				throw new RuntimeSshException(e);
 			}
 		}
@@ -76,9 +95,6 @@
 		try {
 			key = current.getPublicKey();
 		} catch (Error e) { // Copied from superclass
-			warn("sendAuthDataRequest({})[{}] failed ({}) to retrieve public key: {}", //$NON-NLS-1$
-					session, service, e.getClass().getSimpleName(),
-					e.getMessage(), e);
 			throw new RuntimeSshException(e);
 		}
 		if (currentAlgorithm == null) {
@@ -94,15 +110,21 @@
 				existingFactories = getSignatureFactories();
 			}
 			if (existingFactories != null) {
+				if (log.isDebugEnabled()) {
+					log.debug(
+							"sendAuthDataRequest({})[{}] selecting from PubKeyAcceptedAlgorithms {}", //$NON-NLS-1$
+							session, service,
+							NamedResource.getNames(existingFactories));
+				}
 				// Select the factories by name and in order
 				existingFactories.forEach(f -> {
 					if (aliases.contains(f.getName())) {
-						algorithms.add(f.getName());
+						currentAlgorithms.add(f.getName());
 					}
 				});
 			}
-			currentAlgorithm = algorithms.isEmpty() ? keyType
-					: algorithms.remove(0);
+			currentAlgorithm = currentAlgorithms.isEmpty() ? keyType
+					: currentAlgorithms.poll();
 		}
 		String name = getName();
 		if (log.isDebugEnabled()) {
@@ -112,6 +134,7 @@
 					KeyUtils.getFingerPrint(key));
 		}
 
+		chosenAlgorithm = currentAlgorithm;
 		Buffer buffer = session
 				.createBuffer(SshConstants.SSH_MSG_USERAUTH_REQUEST);
 		buffer.putString(session.getUsername());
@@ -125,9 +148,77 @@
 	}
 
 	@Override
+	protected boolean processAuthDataRequest(ClientSession session,
+			String service, Buffer buffer) throws Exception {
+		String name = getName();
+		int cmd = buffer.getUByte();
+		if (cmd != SshConstants.SSH_MSG_USERAUTH_PK_OK) {
+			throw new IllegalStateException(MessageFormat.format(
+					SshdText.get().pubkeyAuthWrongCommand,
+					SshConstants.getCommandMessageName(cmd),
+					session.getConnectAddress(), session.getServerVersion()));
+		}
+		PublicKey key;
+		try {
+			key = current.getPublicKey();
+		} catch (Error e) { // Copied from superclass
+			throw new RuntimeSshException(e);
+		}
+		String rspKeyAlgorithm = buffer.getString();
+		PublicKey rspKey = buffer.getPublicKey();
+		if (log.isDebugEnabled()) {
+			log.debug(
+					"processAuthDataRequest({})[{}][{}] SSH_MSG_USERAUTH_PK_OK type={}, fingerprint={}", //$NON-NLS-1$
+					session, service, name, rspKeyAlgorithm,
+					KeyUtils.getFingerPrint(rspKey));
+		}
+		if (!KeyUtils.compareKeys(rspKey, key)) {
+			throw new InvalidKeySpecException(MessageFormat.format(
+					SshdText.get().pubkeyAuthWrongKey,
+					KeyUtils.getFingerPrint(key),
+					KeyUtils.getFingerPrint(rspKey),
+					session.getConnectAddress(), session.getServerVersion()));
+		}
+		if (!chosenAlgorithm.equalsIgnoreCase(rspKeyAlgorithm)) {
+			// 'algo' SHOULD be the same as 'chosenAlgorithm', which is the one
+			// we sent above. See https://tools.ietf.org/html/rfc4252#page-9 .
+			//
+			// However, at least Github (SSH-2.0-babeld-383743ad) servers seem
+			// to return the key type, not the algorithm name.
+			//
+			// So we don't check but just log the inconsistency. We sign using
+			// 'chosenAlgorithm' in any case, so we don't really care what the
+			// server says here.
+			log.warn(MessageFormat.format(
+					SshdText.get().pubkeyAuthWrongSignatureAlgorithm,
+					chosenAlgorithm, rspKeyAlgorithm, session.getConnectAddress(),
+					session.getServerVersion()));
+		}
+		String username = session.getUsername();
+		Buffer out = session
+				.createBuffer(SshConstants.SSH_MSG_USERAUTH_REQUEST);
+		out.putString(username);
+		out.putString(service);
+		out.putString(name);
+		out.putBoolean(true);
+		out.putString(chosenAlgorithm);
+		out.putPublicKey(key);
+		if (log.isDebugEnabled()) {
+			log.debug(
+					"processAuthDataRequest({})[{}][{}]: signing with algorithm {}", //$NON-NLS-1$
+					session, service, name, chosenAlgorithm);
+		}
+		appendSignature(session, service, name, username, chosenAlgorithm, key,
+				out);
+		session.writePacket(out);
+		return true;
+	}
+
+	@Override
 	protected void releaseKeys() throws IOException {
-		algorithms.clear();
+		currentAlgorithms.clear();
 		current = null;
+		chosenAlgorithm = null;
 		super.releaseKeys();
 	}
 }
diff --git a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/OpenSshServerKeyDatabase.java b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/OpenSshServerKeyDatabase.java
index 47e09b7..1a530b7 100644
--- a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/OpenSshServerKeyDatabase.java
+++ b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/OpenSshServerKeyDatabase.java
@@ -21,6 +21,7 @@
 import java.net.SocketAddress;
 import java.nio.file.Files;
 import java.nio.file.InvalidPathException;
+import java.nio.file.NoSuchFileException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.security.GeneralSecurityException;
@@ -561,29 +562,17 @@
 		@Override
 		public List<HostEntryPair> get() {
 			Path path = getPath();
-			try {
-				if (checkReloadRequired()) {
-					if (!Files.exists(path)) {
-						// Has disappeared.
-						resetReloadAttributes();
-						return Collections.emptyList();
+			synchronized (this) {
+				try {
+					if (checkReloadRequired()) {
+						entries = reload(getPath());
 					}
-					LockFile lock = new LockFile(path.toFile());
-					if (lock.lock()) {
-						try {
-							entries = reload(getPath());
-						} finally {
-							lock.unlock();
-						}
-					} else {
-						LOG.warn(format(SshdText.get().knownHostsFileLockedRead,
-								path));
-					}
+				} catch (IOException e) {
+					LOG.warn(format(SshdText.get().knownHostsFileReadFailed,
+							path));
 				}
-			} catch (IOException e) {
-				LOG.warn(format(SshdText.get().knownHostsFileReadFailed, path));
+				return Collections.unmodifiableList(entries);
 			}
-			return Collections.unmodifiableList(entries);
 		}
 
 		private List<HostEntryPair> reload(Path path) throws IOException {
@@ -616,7 +605,7 @@
 					}
 				}
 				return newEntries;
-			} catch (FileNotFoundException e) {
+			} catch (FileNotFoundException | NoSuchFileException e) {
 				resetReloadAttributes();
 				return Collections.emptyList();
 			}
diff --git a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/SshdText.java b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/SshdText.java
index 4c4ff59..73c2288 100644
--- a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/SshdText.java
+++ b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/SshdText.java
@@ -44,7 +44,6 @@
 	/***/ public String keyEncryptedRetry;
 	/***/ public String keyLoadFailed;
 	/***/ public String knownHostsCouldNotUpdate;
-	/***/ public String knownHostsFileLockedRead;
 	/***/ public String knownHostsFileLockedUpdate;
 	/***/ public String knownHostsFileReadFailed;
 	/***/ public String knownHostsInvalidLine;
@@ -88,6 +87,9 @@
 	/***/ public String proxySocksUnexpectedMessage;
 	/***/ public String proxySocksUnexpectedVersion;
 	/***/ public String proxySocksUsernameTooLong;
+	/***/ public String pubkeyAuthWrongCommand;
+	/***/ public String pubkeyAuthWrongKey;
+	/***/ public String pubkeyAuthWrongSignatureAlgorithm;
 	/***/ public String serverIdNotReceived;
 	/***/ public String serverIdTooLong;
 	/***/ public String serverIdWithNul;
diff --git a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/transport/sshd/SshdSessionFactory.java b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/transport/sshd/SshdSessionFactory.java
index cad959c..2d7e0c7 100644
--- a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/transport/sshd/SshdSessionFactory.java
+++ b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/transport/sshd/SshdSessionFactory.java
@@ -47,6 +47,7 @@
 import org.eclipse.jgit.internal.transport.sshd.AuthenticationCanceledException;
 import org.eclipse.jgit.internal.transport.sshd.CachingKeyPairProvider;
 import org.eclipse.jgit.internal.transport.sshd.GssApiWithMicAuthFactory;
+import org.eclipse.jgit.internal.transport.sshd.JGitKexExtensionHandler;
 import org.eclipse.jgit.internal.transport.sshd.JGitPasswordAuthFactory;
 import org.eclipse.jgit.internal.transport.sshd.JGitPublicKeyAuthFactory;
 import org.eclipse.jgit.internal.transport.sshd.JGitServerKeyVerifier;
@@ -216,6 +217,7 @@
 						new JGitUserInteraction(credentialsProvider));
 				client.setUserAuthFactories(getUserAuthFactories());
 				client.setKeyIdentityProvider(defaultKeysProvider);
+				client.setKexExtensionHandler(JGitKexExtensionHandler.INSTANCE);
 				// JGit-specific things:
 				JGitSshClient jgitClient = (JGitSshClient) client;
 				jgitClient.setKeyCache(getKeyCache());
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 cef1558b..c2d3423 100644
--- a/org.eclipse.jgit.ssh.jsch.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.jsch.test/META-INF/MANIFEST.MF
@@ -3,17 +3,17 @@
 Bundle-Name: %Bundle-Name
 Automatic-Module-Name: org.eclipse.jgit.ssh.jsch.test
 Bundle-SymbolicName: org.eclipse.jgit.ssh.jsch.test
-Bundle-Version: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: com.jcraft.jsch;version="[0.1.54,0.2.0)",
- org.eclipse.jgit.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.junit;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.junit.ssh;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)",
+ org.eclipse.jgit.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.junit;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.junit.ssh;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.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 9d99b73..781d903 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ssh.jsch.test</artifactId>
diff --git a/org.eclipse.jgit.ssh.jsch.test/tst/org/eclipse/jgit/transport/OpenSshConfigTest.java b/org.eclipse.jgit.ssh.jsch.test/tst/org/eclipse/jgit/transport/OpenSshConfigTest.java
index 4c7e99e..4be2271 100644
--- a/org.eclipse.jgit.ssh.jsch.test/tst/org/eclipse/jgit/transport/OpenSshConfigTest.java
+++ b/org.eclipse.jgit.ssh.jsch.test/tst/org/eclipse/jgit/transport/OpenSshConfigTest.java
@@ -58,6 +58,7 @@
 		FileUtils.mkdir(configFile.getParentFile());
 
 		mockSystemReader.setProperty(Constants.OS_USER_NAME_KEY, "jex_junit");
+		mockSystemReader.setProperty("TST_VAR", "TEST");
 		osc = new OpenSshConfig(home, configFile);
 	}
 
@@ -497,4 +498,23 @@
 		assertEquals("^ssh-rsa",
 				c.getValue(SshConstants.PUBKEY_ACCEPTED_ALGORITHMS));
 	}
+
+	@Test
+	public void testEnVarSubstitution() throws Exception {
+		config("Host orcz\nIdentityFile /tmp/${TST_VAR}\n"
+				+ "CertificateFile /tmp/${}/foo\nUser ${TST_VAR}\nIdentityAgent /tmp/${TST_VAR/bar");
+		Host h = osc.lookup("orcz");
+		assertNotNull(h);
+		Config c = h.getConfig();
+		assertEquals("/tmp/TEST",
+				c.getValue(SshConstants.IDENTITY_FILE));
+		// No variable name
+		assertEquals("/tmp/${}/foo", c.getValue(SshConstants.CERTIFICATE_FILE));
+		// User doesn't get env var substitution:
+		assertEquals("${TST_VAR}", c.getValue(SshConstants.USER));
+		assertEquals("${TST_VAR}", h.getUser());
+		// Unterminated:
+		assertEquals("/tmp/${TST_VAR/bar",
+				c.getValue(SshConstants.IDENTITY_AGENT));
+	}
 }
diff --git a/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF b/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF
index 3bb7ffc..a23e3d8 100644
--- a/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF
@@ -3,24 +3,24 @@
 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="[5.11.1,5.12.0)"
+Fragment-Host: org.eclipse.jgit;bundle-version="[5.12.0,5.13.0)"
 Bundle-Vendor: %Bundle-Vendor
 Bundle-Localization: plugin
 Bundle-ActivationPolicy: lazy
-Bundle-Version: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.jgit.internal.transport.jsch;version="5.11.1";x-friends:="org.eclipse.egit.core",
- org.eclipse.jgit.transport;version="5.11.1";
+Export-Package: org.eclipse.jgit.internal.transport.jsch;version="5.12.0";x-friends:="org.eclipse.egit.core",
+ org.eclipse.jgit.transport;version="5.12.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.internal.transport.ssh,
    org.eclipse.jgit.util,
    com.jcraft.jsch"
 Import-Package: com.jcraft.jsch;version="[0.1.37,0.2.0)",
- org.eclipse.jgit.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.nls;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util.io;version="[5.11.1,5.12.0)",
+ org.eclipse.jgit.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.nls;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util.io;version="[5.12.0,5.13.0)",
  org.slf4j;version="[1.7.0,2.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 82d9734..37f2096 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: 5.11.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.jsch;version="5.11.1.qualifier";roots="."
+Bundle-Version: 5.12.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.ssh.jsch;version="5.12.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.jsch/pom.xml b/org.eclipse.jgit.ssh.jsch/pom.xml
index 7afb0c2..ea34818 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.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 ca82ab8..4800cfc 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: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Localization: plugin
 Bundle-Vendor: %Bundle-Vendor
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
@@ -16,59 +16,59 @@
  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="[5.11.1,5.12.0)",
- org.eclipse.jgit.api;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.api.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.archive;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.attributes;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.awtui;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.blame;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.diff;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.dircache;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.events;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.fnmatch;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.gitrepo;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.hooks;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.ignore;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.ignore.internal;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.fsck;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.revwalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.io;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.pack;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.transport.connectivity;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.transport.http;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.internal.transport.parser;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.junit;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.junit.time;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lfs;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib.internal;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.logging;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.merge;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.nls;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.notes;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.patch;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.pgm;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.pgm.internal;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revplot;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revwalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revwalk.filter;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.storage.file;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.storage.pack;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.submodule;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport.http;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport.resolver;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.treewalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.treewalk.filter;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util.io;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util.sha1;version="[5.11.1,5.12.0)",
+ org.eclipse.jgit.annotations;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.api;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.api.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.archive;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.attributes;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.awtui;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.blame;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.diff;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.dircache;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.events;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.fnmatch;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.gitrepo;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.hooks;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.ignore;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.ignore.internal;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.fsck;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.revwalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.io;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.transport.connectivity;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.transport.http;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.internal.transport.parser;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.junit;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.junit.time;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lfs;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib.internal;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.logging;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.merge;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.nls;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.notes;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.patch;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.pgm;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.pgm.internal;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revplot;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revwalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revwalk.filter;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.storage.file;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.storage.pack;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.submodule;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport.http;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport.resolver;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.treewalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.treewalk.filter;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util.io;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util.sha1;version="[5.12.0,5.13.0)",
  org.junit;version="[4.13,5.0.0)",
  org.junit.experimental.theories;version="[4.13,5.0.0)",
  org.junit.function;version="[4.13.0,5.0.0)",
diff --git a/org.eclipse.jgit.test/pom.xml b/org.eclipse.jgit.test/pom.xml
index 6ff1e21..5339873 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.test</artifactId>
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CherryPickCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CherryPickCommandTest.java
index 9dd129c..f4f0ecd 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CherryPickCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CherryPickCommandTest.java
@@ -34,6 +34,8 @@
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.ReflogReader;
 import org.eclipse.jgit.lib.RepositoryState;
+import org.eclipse.jgit.merge.ContentMergeStrategy;
+import org.eclipse.jgit.merge.MergeStrategy;
 import org.eclipse.jgit.merge.ResolveMerger.MergeFailureReason;
 import org.eclipse.jgit.revwalk.RevCommit;
 import org.junit.Test;
@@ -193,7 +195,7 @@
 	}
 
 	@Test
-	public void testCherryPickConflictResolutionNoCOmmit() throws Exception {
+	public void testCherryPickConflictResolutionNoCommit() throws Exception {
 		Git git = new Git(db);
 		RevCommit sideCommit = prepareCherryPick(git);
 
@@ -280,6 +282,70 @@
 	}
 
 	@Test
+	public void testCherryPickOurs() throws Exception {
+		try (Git git = new Git(db)) {
+			RevCommit sideCommit = prepareCherryPick(git);
+
+			CherryPickResult result = git.cherryPick()
+					.include(sideCommit.getId())
+					.setStrategy(MergeStrategy.OURS)
+					.call();
+			assertEquals(CherryPickStatus.OK, result.getStatus());
+
+			String expected = "a(master)";
+			checkFile(new File(db.getWorkTree(), "a"), expected);
+		}
+	}
+
+	@Test
+	public void testCherryPickTheirs() throws Exception {
+		try (Git git = new Git(db)) {
+			RevCommit sideCommit = prepareCherryPick(git);
+
+			CherryPickResult result = git.cherryPick()
+					.include(sideCommit.getId())
+					.setStrategy(MergeStrategy.THEIRS)
+					.call();
+			assertEquals(CherryPickStatus.OK, result.getStatus());
+
+			String expected = "a(side)";
+			checkFile(new File(db.getWorkTree(), "a"), expected);
+		}
+	}
+
+	@Test
+	public void testCherryPickXours() throws Exception {
+		try (Git git = new Git(db)) {
+			RevCommit sideCommit = prepareCherryPickStrategyOption(git);
+
+			CherryPickResult result = git.cherryPick()
+					.include(sideCommit.getId())
+					.setContentMergeStrategy(ContentMergeStrategy.OURS)
+					.call();
+			assertEquals(CherryPickStatus.OK, result.getStatus());
+
+			String expected = "a\nmaster\nc\nd\n";
+			checkFile(new File(db.getWorkTree(), "a"), expected);
+		}
+	}
+
+	@Test
+	public void testCherryPickXtheirs() throws Exception {
+		try (Git git = new Git(db)) {
+			RevCommit sideCommit = prepareCherryPickStrategyOption(git);
+
+			CherryPickResult result = git.cherryPick()
+					.include(sideCommit.getId())
+					.setContentMergeStrategy(ContentMergeStrategy.THEIRS)
+					.call();
+			assertEquals(CherryPickStatus.OK, result.getStatus());
+
+			String expected = "a\nside\nc\nd\n";
+			checkFile(new File(db.getWorkTree(), "a"), expected);
+		}
+	}
+
+	@Test
 	public void testCherryPickConflictMarkers() throws Exception {
 		try (Git git = new Git(db)) {
 			RevCommit sideCommit = prepareCherryPick(git);
@@ -384,6 +450,31 @@
 		return sideCommit;
 	}
 
+	private RevCommit prepareCherryPickStrategyOption(Git git)
+			throws Exception {
+		// create, add and commit file a
+		writeTrashFile("a", "a\nb\nc\n");
+		git.add().addFilepattern("a").call();
+		RevCommit firstMasterCommit = git.commit().setMessage("first master")
+				.call();
+
+		// create and checkout side branch
+		createBranch(firstMasterCommit, "refs/heads/side");
+		checkoutBranch("refs/heads/side");
+		// modify, add and commit file a
+		writeTrashFile("a", "a\nside\nc\nd\n");
+		git.add().addFilepattern("a").call();
+		RevCommit sideCommit = git.commit().setMessage("side").call();
+
+		// checkout master branch
+		checkoutBranch("refs/heads/master");
+		// modify, add and commit file a
+		writeTrashFile("a", "a\nmaster\nc\n");
+		git.add().addFilepattern("a").call();
+		git.commit().setMessage("second master").call();
+		return sideCommit;
+	}
+
 	private void doCherryPickAndCheckResult(final Git git,
 			final RevCommit sideCommit, final MergeFailureReason reason)
 			throws Exception {
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java
index 8747c85..bc4e940 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java
@@ -14,6 +14,7 @@
 import static org.eclipse.jgit.lib.Constants.R_HEADS;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -25,6 +26,7 @@
 
 import org.eclipse.jgit.api.MergeCommand.FastForwardMode;
 import org.eclipse.jgit.api.MergeResult.MergeStatus;
+import org.eclipse.jgit.api.ResetCommand.ResetType;
 import org.eclipse.jgit.api.errors.InvalidMergeHeadsException;
 import org.eclipse.jgit.junit.RepositoryTestCase;
 import org.eclipse.jgit.junit.TestRepository;
@@ -34,6 +36,7 @@
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.lib.RepositoryState;
 import org.eclipse.jgit.lib.Sets;
+import org.eclipse.jgit.merge.ContentMergeStrategy;
 import org.eclipse.jgit.merge.MergeStrategy;
 import org.eclipse.jgit.merge.ResolveMerger.MergeFailureReason;
 import org.eclipse.jgit.revwalk.RevCommit;
@@ -306,6 +309,200 @@
 	}
 
 	@Test
+	public void testContentMergeXtheirs() throws Exception {
+		try (Git git = new Git(db)) {
+			writeTrashFile("a", "1\na\n3\n");
+			writeTrashFile("b", "1\nb\n3\n");
+			writeTrashFile("c/c/c", "1\nc\n3\n");
+			git.add().addFilepattern("a").addFilepattern("b")
+					.addFilepattern("c/c/c").call();
+			RevCommit initialCommit = git.commit().setMessage("initial").call();
+
+			createBranch(initialCommit, "refs/heads/side");
+			checkoutBranch("refs/heads/side");
+
+			writeTrashFile("a", "1\na(side)\n3\n4\n");
+			writeTrashFile("b", "1\nb(side)\n3\n4\n");
+			git.add().addFilepattern("a").addFilepattern("b").call();
+			RevCommit secondCommit = git.commit().setMessage("side").call();
+
+			assertEquals("1\nb(side)\n3\n4\n",
+					read(new File(db.getWorkTree(), "b")));
+			checkoutBranch("refs/heads/master");
+			assertEquals("1\nb\n3\n", read(new File(db.getWorkTree(), "b")));
+
+			writeTrashFile("a", "1\na(main)\n3\n");
+			writeTrashFile("c/c/c", "1\nc(main)\n3\n");
+			git.add().addFilepattern("a").addFilepattern("c/c/c").call();
+			git.commit().setMessage("main").call();
+
+			MergeResult result = git.merge().include(secondCommit.getId())
+					.setStrategy(MergeStrategy.RESOLVE)
+					.setContentMergeStrategy(ContentMergeStrategy.THEIRS)
+					.call();
+			assertEquals(MergeStatus.MERGED, result.getMergeStatus());
+
+			assertEquals("1\na(side)\n3\n4\n",
+					read(new File(db.getWorkTree(), "a")));
+			assertEquals("1\nb(side)\n3\n4\n",
+					read(new File(db.getWorkTree(), "b")));
+			assertEquals("1\nc(main)\n3\n",
+					read(new File(db.getWorkTree(), "c/c/c")));
+
+			assertNull(result.getConflicts());
+
+			assertEquals(RepositoryState.SAFE, db.getRepositoryState());
+		}
+	}
+
+	@Test
+	public void testContentMergeXours() throws Exception {
+		try (Git git = new Git(db)) {
+			writeTrashFile("a", "1\na\n3\n");
+			writeTrashFile("b", "1\nb\n3\n");
+			writeTrashFile("c/c/c", "1\nc\n3\n");
+			git.add().addFilepattern("a").addFilepattern("b")
+					.addFilepattern("c/c/c").call();
+			RevCommit initialCommit = git.commit().setMessage("initial").call();
+
+			createBranch(initialCommit, "refs/heads/side");
+			checkoutBranch("refs/heads/side");
+
+			writeTrashFile("a", "1\na(side)\n3\n4\n");
+			writeTrashFile("b", "1\nb(side)\n3\n4\n");
+			git.add().addFilepattern("a").addFilepattern("b").call();
+			RevCommit secondCommit = git.commit().setMessage("side").call();
+
+			assertEquals("1\nb(side)\n3\n4\n",
+					read(new File(db.getWorkTree(), "b")));
+			checkoutBranch("refs/heads/master");
+			assertEquals("1\nb\n3\n", read(new File(db.getWorkTree(), "b")));
+
+			writeTrashFile("a", "1\na(main)\n3\n");
+			writeTrashFile("c/c/c", "1\nc(main)\n3\n");
+			git.add().addFilepattern("a").addFilepattern("c/c/c").call();
+			git.commit().setMessage("main").call();
+
+			MergeResult result = git.merge().include(secondCommit.getId())
+					.setStrategy(MergeStrategy.RESOLVE)
+					.setContentMergeStrategy(ContentMergeStrategy.OURS).call();
+			assertEquals(MergeStatus.MERGED, result.getMergeStatus());
+
+			assertEquals("1\na(main)\n3\n4\n",
+					read(new File(db.getWorkTree(), "a")));
+			assertEquals("1\nb(side)\n3\n4\n",
+					read(new File(db.getWorkTree(), "b")));
+			assertEquals("1\nc(main)\n3\n",
+					read(new File(db.getWorkTree(), "c/c/c")));
+
+			assertNull(result.getConflicts());
+
+			assertEquals(RepositoryState.SAFE, db.getRepositoryState());
+		}
+	}
+
+	@Test
+	public void testBinaryContentMerge() throws Exception {
+		try (Git git = new Git(db)) {
+			writeTrashFile(".gitattributes", "a binary");
+			writeTrashFile("a", "initial");
+			git.add().addFilepattern(".").call();
+			RevCommit initialCommit = git.commit().setMessage("initial").call();
+
+			createBranch(initialCommit, "refs/heads/side");
+			checkoutBranch("refs/heads/side");
+
+			writeTrashFile("a", "side");
+			git.add().addFilepattern("a").call();
+			RevCommit secondCommit = git.commit().setMessage("side").call();
+
+			checkoutBranch("refs/heads/master");
+
+			writeTrashFile("a", "main");
+			git.add().addFilepattern("a").call();
+			git.commit().setMessage("main").call();
+
+			MergeResult result = git.merge().include(secondCommit.getId())
+					.setStrategy(MergeStrategy.RESOLVE).call();
+			assertEquals(MergeStatus.CONFLICTING, result.getMergeStatus());
+
+			assertEquals("main", read(new File(db.getWorkTree(), "a")));
+
+			// Hmmm... there doesn't seem to be a way to figure out which files
+			// had a binary conflict from a MergeResult...
+
+			assertEquals(RepositoryState.MERGING, db.getRepositoryState());
+		}
+	}
+
+	@Test
+	public void testBinaryContentMergeXtheirs() throws Exception {
+		try (Git git = new Git(db)) {
+			writeTrashFile(".gitattributes", "a binary");
+			writeTrashFile("a", "initial");
+			git.add().addFilepattern(".").call();
+			RevCommit initialCommit = git.commit().setMessage("initial").call();
+
+			createBranch(initialCommit, "refs/heads/side");
+			checkoutBranch("refs/heads/side");
+
+			writeTrashFile("a", "side");
+			git.add().addFilepattern("a").call();
+			RevCommit secondCommit = git.commit().setMessage("side").call();
+
+			checkoutBranch("refs/heads/master");
+
+			writeTrashFile("a", "main");
+			git.add().addFilepattern("a").call();
+			git.commit().setMessage("main").call();
+
+			MergeResult result = git.merge().include(secondCommit.getId())
+					.setStrategy(MergeStrategy.RESOLVE)
+					.setContentMergeStrategy(ContentMergeStrategy.THEIRS)
+					.call();
+			assertEquals(MergeStatus.MERGED, result.getMergeStatus());
+
+			assertEquals("side", read(new File(db.getWorkTree(), "a")));
+
+			assertNull(result.getConflicts());
+			assertEquals(RepositoryState.SAFE, db.getRepositoryState());
+		}
+	}
+
+	@Test
+	public void testBinaryContentMergeXours() throws Exception {
+		try (Git git = new Git(db)) {
+			writeTrashFile(".gitattributes", "a binary");
+			writeTrashFile("a", "initial");
+			git.add().addFilepattern(".").call();
+			RevCommit initialCommit = git.commit().setMessage("initial").call();
+
+			createBranch(initialCommit, "refs/heads/side");
+			checkoutBranch("refs/heads/side");
+
+			writeTrashFile("a", "side");
+			git.add().addFilepattern("a").call();
+			RevCommit secondCommit = git.commit().setMessage("side").call();
+
+			checkoutBranch("refs/heads/master");
+
+			writeTrashFile("a", "main");
+			git.add().addFilepattern("a").call();
+			git.commit().setMessage("main").call();
+
+			MergeResult result = git.merge().include(secondCommit.getId())
+					.setStrategy(MergeStrategy.RESOLVE)
+					.setContentMergeStrategy(ContentMergeStrategy.OURS).call();
+			assertEquals(MergeStatus.MERGED, result.getMergeStatus());
+
+			assertEquals("main", read(new File(db.getWorkTree(), "a")));
+
+			assertNull(result.getConflicts());
+			assertEquals(RepositoryState.SAFE, db.getRepositoryState());
+		}
+	}
+
+	@Test
 	public void testMergeTag() throws Exception {
 		try (Git git = new Git(db)) {
 			writeTrashFile("a", "a");
@@ -790,17 +987,96 @@
 			// delete a on master to generate conflict
 			checkoutBranch("refs/heads/master");
 			git.rm().addFilepattern("a").call();
+			RevCommit thirdCommit = git.commit().setMessage("main").call();
+
+			for (ContentMergeStrategy contentStrategy : ContentMergeStrategy
+					.values()) {
+				// merge side with master
+				MergeResult result = git.merge().include(secondCommit.getId())
+						.setStrategy(MergeStrategy.RESOLVE)
+						.setContentMergeStrategy(contentStrategy)
+						.call();
+				assertEquals("merge -X " + contentStrategy.name(),
+						MergeStatus.CONFLICTING, result.getMergeStatus());
+
+				// result should be 'a' conflicting with workspace content from
+				// side
+				assertTrue("merge -X " + contentStrategy.name(),
+						new File(db.getWorkTree(), "a").exists());
+				assertEquals("merge -X " + contentStrategy.name(),
+						"1\na(side)\n3\n",
+						read(new File(db.getWorkTree(), "a")));
+				assertEquals("merge -X " + contentStrategy.name(), "1\nb\n3\n",
+						read(new File(db.getWorkTree(), "b")));
+				git.reset().setMode(ResetType.HARD).setRef(thirdCommit.name())
+						.call();
+			}
+		}
+	}
+
+	@Test
+	public void testDeletionOnMasterTheirs() throws Exception {
+		try (Git git = new Git(db)) {
+			writeTrashFile("a", "1\na\n3\n");
+			writeTrashFile("b", "1\nb\n3\n");
+			git.add().addFilepattern("a").addFilepattern("b").call();
+			RevCommit initialCommit = git.commit().setMessage("initial").call();
+
+			// create side branch and modify "a"
+			createBranch(initialCommit, "refs/heads/side");
+			checkoutBranch("refs/heads/side");
+			writeTrashFile("a", "1\na(side)\n3\n");
+			git.add().addFilepattern("a").call();
+			RevCommit secondCommit = git.commit().setMessage("side").call();
+
+			// delete a on master to generate conflict
+			checkoutBranch("refs/heads/master");
+			git.rm().addFilepattern("a").call();
 			git.commit().setMessage("main").call();
 
 			// merge side with master
 			MergeResult result = git.merge().include(secondCommit.getId())
-					.setStrategy(MergeStrategy.RESOLVE).call();
-			assertEquals(MergeStatus.CONFLICTING, result.getMergeStatus());
+					.setStrategy(MergeStrategy.THEIRS)
+					.call();
+			assertEquals(MergeStatus.MERGED, result.getMergeStatus());
 
-			// result should be 'a' conflicting with workspace content from side
+			// result should be 'a'
 			assertTrue(new File(db.getWorkTree(), "a").exists());
-			assertEquals("1\na(side)\n3\n", read(new File(db.getWorkTree(), "a")));
+			assertEquals("1\na(side)\n3\n",
+					read(new File(db.getWorkTree(), "a")));
 			assertEquals("1\nb\n3\n", read(new File(db.getWorkTree(), "b")));
+			assertTrue(git.status().call().isClean());
+		}
+	}
+
+	@Test
+	public void testDeletionOnMasterOurs() throws Exception {
+		try (Git git = new Git(db)) {
+			writeTrashFile("a", "1\na\n3\n");
+			writeTrashFile("b", "1\nb\n3\n");
+			git.add().addFilepattern("a").addFilepattern("b").call();
+			RevCommit initialCommit = git.commit().setMessage("initial").call();
+
+			// create side branch and modify "a"
+			createBranch(initialCommit, "refs/heads/side");
+			checkoutBranch("refs/heads/side");
+			writeTrashFile("a", "1\na(side)\n3\n");
+			git.add().addFilepattern("a").call();
+			RevCommit secondCommit = git.commit().setMessage("side").call();
+
+			// delete a on master to generate conflict
+			checkoutBranch("refs/heads/master");
+			git.rm().addFilepattern("a").call();
+			git.commit().setMessage("main").call();
+
+			// merge side with master
+			MergeResult result = git.merge().include(secondCommit.getId())
+					.setStrategy(MergeStrategy.OURS).call();
+			assertEquals(MergeStatus.MERGED, result.getMergeStatus());
+
+			assertFalse(new File(db.getWorkTree(), "a").exists());
+			assertEquals("1\nb\n3\n", read(new File(db.getWorkTree(), "b")));
+			assertTrue(git.status().call().isClean());
 		}
 	}
 
@@ -822,19 +1098,99 @@
 			checkoutBranch("refs/heads/master");
 			writeTrashFile("a", "1\na(main)\n3\n");
 			git.add().addFilepattern("a").call();
+			RevCommit thirdCommit = git.commit().setMessage("main").call();
+
+			for (ContentMergeStrategy contentStrategy : ContentMergeStrategy
+					.values()) {
+				// merge side with master
+				MergeResult result = git.merge().include(secondCommit.getId())
+						.setStrategy(MergeStrategy.RESOLVE)
+						.setContentMergeStrategy(contentStrategy)
+						.call();
+				assertEquals("merge -X " + contentStrategy.name(),
+						MergeStatus.CONFLICTING, result.getMergeStatus());
+
+				assertTrue("merge -X " + contentStrategy.name(),
+						new File(db.getWorkTree(), "a").exists());
+				assertEquals("merge -X " + contentStrategy.name(),
+						"1\na(main)\n3\n",
+						read(new File(db.getWorkTree(), "a")));
+				assertEquals("merge -X " + contentStrategy.name(), "1\nb\n3\n",
+						read(new File(db.getWorkTree(), "b")));
+
+				assertNotNull("merge -X " + contentStrategy.name(),
+						result.getConflicts());
+				assertEquals("merge -X " + contentStrategy.name(), 1,
+						result.getConflicts().size());
+				assertEquals("merge -X " + contentStrategy.name(), 3,
+						result.getConflicts().get("a")[0].length);
+				git.reset().setMode(ResetType.HARD).setRef(thirdCommit.name())
+						.call();
+			}
+		}
+	}
+
+	@Test
+	public void testDeletionOnSideTheirs() throws Exception {
+		try (Git git = new Git(db)) {
+			writeTrashFile("a", "1\na\n3\n");
+			writeTrashFile("b", "1\nb\n3\n");
+			git.add().addFilepattern("a").addFilepattern("b").call();
+			RevCommit initialCommit = git.commit().setMessage("initial").call();
+
+			// create side branch and delete "a"
+			createBranch(initialCommit, "refs/heads/side");
+			checkoutBranch("refs/heads/side");
+			git.rm().addFilepattern("a").call();
+			RevCommit secondCommit = git.commit().setMessage("side").call();
+
+			// update a on master to generate conflict
+			checkoutBranch("refs/heads/master");
+			writeTrashFile("a", "1\na(main)\n3\n");
+			git.add().addFilepattern("a").call();
 			git.commit().setMessage("main").call();
 
 			// merge side with master
 			MergeResult result = git.merge().include(secondCommit.getId())
-					.setStrategy(MergeStrategy.RESOLVE).call();
-			assertEquals(MergeStatus.CONFLICTING, result.getMergeStatus());
+					.setStrategy(MergeStrategy.THEIRS).call();
+			assertEquals(MergeStatus.MERGED, result.getMergeStatus());
+
+			assertFalse(new File(db.getWorkTree(), "a").exists());
+			assertEquals("1\nb\n3\n", read(new File(db.getWorkTree(), "b")));
+			assertTrue(git.status().call().isClean());
+		}
+	}
+
+	@Test
+	public void testDeletionOnSideOurs() throws Exception {
+		try (Git git = new Git(db)) {
+			writeTrashFile("a", "1\na\n3\n");
+			writeTrashFile("b", "1\nb\n3\n");
+			git.add().addFilepattern("a").addFilepattern("b").call();
+			RevCommit initialCommit = git.commit().setMessage("initial").call();
+
+			// create side branch and delete "a"
+			createBranch(initialCommit, "refs/heads/side");
+			checkoutBranch("refs/heads/side");
+			git.rm().addFilepattern("a").call();
+			RevCommit secondCommit = git.commit().setMessage("side").call();
+
+			// update a on master to generate conflict
+			checkoutBranch("refs/heads/master");
+			writeTrashFile("a", "1\na(main)\n3\n");
+			git.add().addFilepattern("a").call();
+			git.commit().setMessage("main").call();
+
+			// merge side with master
+			MergeResult result = git.merge().include(secondCommit.getId())
+					.setStrategy(MergeStrategy.OURS).call();
+			assertEquals(MergeStatus.MERGED, result.getMergeStatus());
 
 			assertTrue(new File(db.getWorkTree(), "a").exists());
-			assertEquals("1\na(main)\n3\n", read(new File(db.getWorkTree(), "a")));
+			assertEquals("1\na(main)\n3\n",
+					read(new File(db.getWorkTree(), "a")));
 			assertEquals("1\nb\n3\n", read(new File(db.getWorkTree(), "b")));
-
-			assertEquals(1, result.getConflicts().size());
-			assertEquals(3, result.getConflicts().get("a")[0].length);
+			assertTrue(git.status().call().isClean());
 		}
 	}
 
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java
index e4af44e..9af77aa 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java
@@ -34,6 +34,8 @@
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.lib.RepositoryState;
 import org.eclipse.jgit.lib.StoredConfig;
+import org.eclipse.jgit.merge.ContentMergeStrategy;
+import org.eclipse.jgit.merge.MergeStrategy;
 import org.eclipse.jgit.revwalk.RevCommit;
 import org.eclipse.jgit.revwalk.RevSort;
 import org.eclipse.jgit.revwalk.RevWalk;
@@ -154,6 +156,75 @@
 	}
 
 	@Test
+	public void testPullConflictTheirs() throws Exception {
+		PullResult res = target.pull().call();
+		// nothing to update since we don't have different data yet
+		assertTrue(res.getFetchResult().getTrackingRefUpdates().isEmpty());
+		assertTrue(res.getMergeResult().getMergeStatus()
+				.equals(MergeStatus.ALREADY_UP_TO_DATE));
+
+		assertFileContentsEqual(targetFile, "Hello world");
+
+		// change the source file
+		writeToFile(sourceFile, "Source change");
+		source.add().addFilepattern("SomeFile.txt").call();
+		source.commit().setMessage("Source change in remote").call();
+
+		// change the target file
+		writeToFile(targetFile, "Target change");
+		target.add().addFilepattern("SomeFile.txt").call();
+		target.commit().setMessage("Target change in local").call();
+
+		res = target.pull().setStrategy(MergeStrategy.THEIRS).call();
+
+		assertTrue(res.isSuccessful());
+		assertFileContentsEqual(targetFile, "Source change");
+		assertEquals(RepositoryState.SAFE,
+				target.getRepository().getRepositoryState());
+		assertTrue(target.status().call().isClean());
+	}
+
+	@Test
+	public void testPullConflictXtheirs() throws Exception {
+		PullResult res = target.pull().call();
+		// nothing to update since we don't have different data yet
+		assertTrue(res.getFetchResult().getTrackingRefUpdates().isEmpty());
+		assertTrue(res.getMergeResult().getMergeStatus()
+				.equals(MergeStatus.ALREADY_UP_TO_DATE));
+
+		assertFileContentsEqual(targetFile, "Hello world");
+
+		// change the source file
+		writeToFile(sourceFile, "a\nHello\nb\n");
+		source.add().addFilepattern("SomeFile.txt").call();
+		source.commit().setMessage("Multi-line change in remote").call();
+
+		// Pull again
+		res = target.pull().call();
+		assertTrue(res.isSuccessful());
+		assertFileContentsEqual(targetFile, "a\nHello\nb\n");
+
+		// change the source file
+		writeToFile(sourceFile, "a\nSource change\nb\n");
+		source.add().addFilepattern("SomeFile.txt").call();
+		source.commit().setMessage("Source change in remote").call();
+
+		// change the target file
+		writeToFile(targetFile, "a\nTarget change\nb\nc\n");
+		target.add().addFilepattern("SomeFile.txt").call();
+		target.commit().setMessage("Target change in local").call();
+
+		res = target.pull().setContentMergeStrategy(ContentMergeStrategy.THEIRS)
+				.call();
+
+		assertTrue(res.isSuccessful());
+		assertFileContentsEqual(targetFile, "a\nSource change\nb\nc\n");
+		assertEquals(RepositoryState.SAFE,
+				target.getRepository().getRepositoryState());
+		assertTrue(target.status().call().isClean());
+	}
+
+	@Test
 	public void testPullWithUntrackedStash() throws Exception {
 		target.pull().call();
 
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RevertCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RevertCommandTest.java
index 57c8991..cfa8486 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RevertCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RevertCommandTest.java
@@ -253,7 +253,7 @@
 	}
 
 	@Test
-	public void testRevertkConflictReset() throws Exception {
+	public void testRevertConflictReset() throws Exception {
 		try (Git git = new Git(db)) {
 			RevCommit sideCommit = prepareRevert(git);
 
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/StashApplyCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/StashApplyCommandTest.java
index f109cbf..49b31b1 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/StashApplyCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/StashApplyCommandTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012, GitHub Inc. and others
+ * Copyright (C) 2012, 2021 GitHub Inc. and others
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Distribution License v. 1.0 which is available at
@@ -28,6 +28,8 @@
 import org.eclipse.jgit.junit.RepositoryTestCase;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.merge.ContentMergeStrategy;
+import org.eclipse.jgit.merge.MergeStrategy;
 import org.eclipse.jgit.revwalk.RevCommit;
 import org.eclipse.jgit.util.FileUtils;
 import org.junit.After;
@@ -427,6 +429,135 @@
 	}
 
 	@Test
+	public void stashedContentMergeXtheirs() throws Exception {
+		writeTrashFile(PATH, "content\nmore content\n");
+		git.add().addFilepattern(PATH).call();
+		git.commit().setMessage("more content").call();
+
+		writeTrashFile(PATH, "content\nhead change\nmore content\n");
+		git.add().addFilepattern(PATH).call();
+		git.commit().setMessage("even content").call();
+
+		writeTrashFile(PATH, "content\nstashed change\nmore content\n");
+
+		RevCommit stashed = git.stashCreate().call();
+		assertNotNull(stashed);
+		assertEquals("content\nhead change\nmore content\n",
+				read(committedFile));
+		assertTrue(git.status().call().isClean());
+		recorder.assertEvent(new String[] { PATH }, ChangeRecorder.EMPTY);
+
+		writeTrashFile(PATH, "content\nmore content\ncommitted change\n");
+		git.add().addFilepattern(PATH).call();
+		git.commit().setMessage("committed change").call();
+		recorder.assertNoEvent();
+
+		git.stashApply().setContentMergeStrategy(ContentMergeStrategy.THEIRS)
+				.call();
+		recorder.assertEvent(new String[] { PATH }, ChangeRecorder.EMPTY);
+		Status status = new StatusCommand(db).call();
+		assertEquals('[' + PATH + ']', status.getModified().toString());
+		assertEquals(
+				"content\nstashed change\nmore content\ncommitted change\n",
+				read(PATH));
+	}
+
+	@Test
+	public void stashedContentMergeXours() throws Exception {
+		writeTrashFile(PATH, "content\nmore content\n");
+		git.add().addFilepattern(PATH).call();
+		git.commit().setMessage("more content").call();
+
+		writeTrashFile(PATH, "content\nhead change\nmore content\n");
+		git.add().addFilepattern(PATH).call();
+		git.commit().setMessage("even content").call();
+
+		writeTrashFile(PATH, "content\nstashed change\nmore content\n");
+
+		RevCommit stashed = git.stashCreate().call();
+		assertNotNull(stashed);
+		assertEquals("content\nhead change\nmore content\n",
+				read(committedFile));
+		assertTrue(git.status().call().isClean());
+		recorder.assertEvent(new String[] { PATH }, ChangeRecorder.EMPTY);
+
+		writeTrashFile(PATH,
+				"content\nnew head\nmore content\ncommitted change\n");
+		git.add().addFilepattern(PATH).call();
+		git.commit().setMessage("committed change").call();
+		recorder.assertNoEvent();
+
+		git.stashApply().setContentMergeStrategy(ContentMergeStrategy.OURS)
+				.call();
+		recorder.assertEvent(new String[] { PATH }, ChangeRecorder.EMPTY);
+		assertTrue(git.status().call().isClean());
+		assertEquals("content\nnew head\nmore content\ncommitted change\n",
+				read(PATH));
+	}
+
+	@Test
+	public void stashedContentMergeTheirs() throws Exception {
+		writeTrashFile(PATH, "content\nmore content\n");
+		git.add().addFilepattern(PATH).call();
+		git.commit().setMessage("more content").call();
+
+		writeTrashFile(PATH, "content\nhead change\nmore content\n");
+		git.add().addFilepattern(PATH).call();
+		git.commit().setMessage("even content").call();
+
+		writeTrashFile(PATH, "content\nstashed change\nmore content\n");
+
+		RevCommit stashed = git.stashCreate().call();
+		assertNotNull(stashed);
+		assertEquals("content\nhead change\nmore content\n",
+				read(committedFile));
+		assertTrue(git.status().call().isClean());
+		recorder.assertEvent(new String[] { PATH }, ChangeRecorder.EMPTY);
+
+		writeTrashFile(PATH, "content\nmore content\ncommitted change\n");
+		git.add().addFilepattern(PATH).call();
+		git.commit().setMessage("committed change").call();
+		recorder.assertNoEvent();
+
+		git.stashApply().setStrategy(MergeStrategy.THEIRS).call();
+		recorder.assertEvent(new String[] { PATH }, ChangeRecorder.EMPTY);
+		Status status = new StatusCommand(db).call();
+		assertEquals('[' + PATH + ']', status.getModified().toString());
+		assertEquals("content\nstashed change\nmore content\n", read(PATH));
+	}
+
+	@Test
+	public void stashedContentMergeOurs() throws Exception {
+		writeTrashFile(PATH, "content\nmore content\n");
+		git.add().addFilepattern(PATH).call();
+		git.commit().setMessage("more content").call();
+
+		writeTrashFile(PATH, "content\nhead change\nmore content\n");
+		git.add().addFilepattern(PATH).call();
+		git.commit().setMessage("even content").call();
+
+		writeTrashFile(PATH, "content\nstashed change\nmore content\n");
+
+		RevCommit stashed = git.stashCreate().call();
+		assertNotNull(stashed);
+		assertEquals("content\nhead change\nmore content\n",
+				read(committedFile));
+		assertTrue(git.status().call().isClean());
+		recorder.assertEvent(new String[] { PATH }, ChangeRecorder.EMPTY);
+
+		writeTrashFile(PATH, "content\nmore content\ncommitted change\n");
+		git.add().addFilepattern(PATH).call();
+		git.commit().setMessage("committed change").call();
+		recorder.assertNoEvent();
+
+		// Doesn't make any sense... should be a no-op
+		git.stashApply().setStrategy(MergeStrategy.OURS).call();
+		recorder.assertNoEvent();
+		assertTrue(git.status().call().isClean());
+		assertEquals("content\nmore content\ncommitted change\n", read(PATH));
+	}
+
+	@Test
 	public void stashedApplyOnOtherBranch() throws Exception {
 		writeTrashFile(PATH, "content\nmore content\n");
 		git.add().addFilepattern(PATH).call();
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/diff/RenameDetectorTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/diff/RenameDetectorTest.java
index 6203fed..2ea3cd7 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/diff/RenameDetectorTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/diff/RenameDetectorTest.java
@@ -543,6 +543,43 @@
 	}
 
 	@Test
+	public void testExactRename_LargeFile() throws Exception {
+		ObjectId aId = blob("blah\nblah\nfoo"); // size = 14
+
+		DiffEntry a = DiffEntry.add(PATH_A, aId);
+		DiffEntry b = DiffEntry.delete(PATH_Q, aId);
+
+		rd.add(a);
+		rd.add(b);
+
+		// Exact renames are identified for large files
+		rd.setBigFileThreshold(10);
+		List<DiffEntry> entries = rd.compute();
+		assertEquals(1, entries.size());
+		assertRename(b, a, 100, entries.get(0));
+	}
+
+	@Test
+	public void testInexactRename_LargeFile() throws Exception {
+		ObjectId aId = blob("blah\nblah\nfoo"); // size = 14
+		ObjectId bId = blob("bla\nblah\nfoo"); // size = 13
+
+		DiffEntry a = DiffEntry.add(PATH_A, aId);
+		DiffEntry b = DiffEntry.delete(PATH_Q, bId);
+
+		rd.add(a);
+		rd.add(b);
+
+		rd.setBigFileThreshold(10);
+
+		// Inexact renames are not detected for large files
+		List<DiffEntry> entries = rd.compute();
+		assertEquals(2, entries.size());
+		assertAdd(PATH_A, aId, FileMode.REGULAR_FILE, entries.get(0));
+		assertDelete(PATH_Q, bId, FileMode.REGULAR_FILE, entries.get(1));
+	}
+
+	@Test
 	public void testSetRenameScore_IllegalArgs() throws Exception {
 		try {
 			rd.setRenameScore(-1);
@@ -634,4 +671,15 @@
 		assertEquals(AbbreviatedObjectId.fromObjectId(newId), add.newId);
 		assertEquals(newMode, add.newMode);
 	}
+
+	private static void assertDelete(String oldName, ObjectId oldId,
+			FileMode oldMode, DiffEntry delete) {
+		assertEquals(DiffEntry.DEV_NULL, delete.newPath);
+		assertEquals(DiffEntry.A_ZERO, delete.newId);
+		assertEquals(FileMode.MISSING, delete.newMode);
+		assertEquals(ChangeType.DELETE, delete.changeType);
+		assertEquals(oldName, delete.oldPath);
+		assertEquals(AbbreviatedObjectId.fromObjectId(oldId), delete.oldId);
+		assertEquals(oldMode, delete.oldMode);
+	}
 }
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/MergerTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/MergerTest.java
index eecf25b..6cbb4a8 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/MergerTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/MergerTest.java
@@ -1648,6 +1648,82 @@
 				indexState(CONTENT));
 	}
 
+	/**
+	 * Merging two commits when files have equal content, but conflicting file mode
+	 * in the virtual ancestor.
+	 *
+	 * <p>
+	 * This test has the same set up as
+	 * {@code checkFileDirMergeConflictInVirtualAncestor_NoConflictInChildren}, only
+	 * with the mode conflict in A1 and A2.
+	 */
+	@Theory
+	public void checkModeMergeConflictInVirtualAncestor(MergeStrategy strategy) throws Exception {
+		if (!strategy.equals(MergeStrategy.RECURSIVE)) {
+			return;
+		}
+
+		Git git = Git.wrap(db);
+
+		// master
+		writeTrashFile("c", "initial file");
+		git.add().addFilepattern("c").call();
+		RevCommit commitI = git.commit().setMessage("Initial commit").call();
+
+		File a = writeTrashFile("a", "content in Ancestor");
+		git.add().addFilepattern("a").call();
+		RevCommit commitA1 = git.commit().setMessage("Ancestor 1").call();
+
+		a = writeTrashFile("a", "content in Child 1 (commited on master)");
+		git.add().addFilepattern("a").call();
+		// commit C1M
+		git.commit().setMessage("Child 1 on master").call();
+
+		git.checkout().setCreateBranch(true).setStartPoint(commitI).setName("branch-to-merge").call();
+		// "a" becomes executable in A2
+		a = writeTrashFile("a", "content in Ancestor");
+		a.setExecutable(true);
+		git.add().addFilepattern("a").call();
+		RevCommit commitA2 = git.commit().setMessage("Ancestor 2").call();
+
+		// second branch
+		git.checkout().setCreateBranch(true).setStartPoint(commitA1).setName("second-branch").call();
+		a = writeTrashFile("a", "content in Child 2 (commited on second-branch)");
+		git.add().addFilepattern("a").call();
+		// commit C2S
+		git.commit().setMessage("Child 2 on second-branch").call();
+
+		// Merge branch-to-merge into second-branch
+		MergeResult mergeResult = git.merge().include(commitA2).setStrategy(strategy).call();
+		assertEquals(mergeResult.getNewHead(), null);
+		assertEquals(mergeResult.getMergeStatus(), MergeStatus.CONFLICTING);
+		// Resolve the conflict manually, merge "a" as non-executable
+		a = writeTrashFile("a", "merge conflict resolution");
+		a.setExecutable(false);
+		git.add().addFilepattern("a").call();
+		RevCommit commitC3S = git.commit().setMessage("Child 3 on second bug - resolve merge conflict").call();
+
+		// Merge branch-to-merge into master
+		git.checkout().setName("master").call();
+		mergeResult = git.merge().include(commitA2).setStrategy(strategy).call();
+		assertEquals(mergeResult.getNewHead(), null);
+		assertEquals(mergeResult.getMergeStatus(), MergeStatus.CONFLICTING);
+
+		// Resolve the conflict manually - merge "a" as non-executable
+		a = writeTrashFile("a", "merge conflict resolution");
+		a.setExecutable(false);
+		git.add().addFilepattern("a").call();
+		// commit C4M
+		git.commit().setMessage("Child 4 on master - resolve merge conflict").call();
+
+		// Merge C4M (second-branch) into master (C3S)
+		// Conflict in virtual base should be here, but there are no conflicts in
+		// children
+		mergeResult = git.merge().include(commitC3S).call();
+		assertEquals(mergeResult.getMergeStatus(), MergeStatus.MERGED);
+
+	}
+
 	private void writeSubmodule(String path, ObjectId commit)
 			throws IOException, ConfigInvalidException {
 		addSubmoduleToIndex(path, commit);
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkMergedIntoTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkMergedIntoTest.java
index 2c21eb6..2f16aa4 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkMergedIntoTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkMergedIntoTest.java
@@ -11,6 +11,9 @@
 
 import static org.junit.Assert.assertTrue;
 
+import java.util.List;
+import java.util.stream.Collectors;
+import org.eclipse.jgit.lib.Ref;
 import org.junit.Test;
 
 public class RevWalkMergedIntoTest extends RevWalkTestCase {
@@ -44,4 +47,82 @@
 		final RevCommit t = commit(n, o);
 		assertTrue(rw.isMergedInto(b, t));
 	}
+
+	@Test
+	public void testGetMergedInto() throws Exception {
+		/*
+		 *          i
+		 *         / \
+		 *        A   o
+		 *       / \   \
+		 *      o1  o2  E
+		 *     / \ / \
+		 *    B   C   D
+		 */
+		String b = "refs/heads/b";
+		String c = "refs/heads/c";
+		String d = "refs/heads/d";
+		String e = "refs/heads/e";
+		final RevCommit i = commit();
+		final RevCommit a = commit(i);
+		final RevCommit o1 = commit(a);
+		final RevCommit o2 = commit(a);
+		createBranch(commit(o1), b);
+		createBranch(commit(o1, o2), c);
+		createBranch(commit(o2), d);
+		createBranch(commit(commit(i)), e);
+
+		List<String>  modifiedResult = rw.getMergedInto(a, getRefs())
+				.stream().map(Ref::getName).collect(Collectors.toList());
+
+		assertTrue(modifiedResult.size() == 3);
+		assertTrue(modifiedResult.contains(b));
+		assertTrue(modifiedResult.contains(c));
+		assertTrue(modifiedResult.contains(d));
+	}
+
+	@Test
+	public void testIsMergedIntoAny() throws Exception {
+		/*
+		 *          i
+		 *         / \
+		 *        A   o
+		 *       /     \
+		 *      o       C
+		 *     /
+		 *    B
+		 */
+		String b = "refs/heads/b";
+		String c = "refs/heads/c";
+		final RevCommit i = commit();
+		final RevCommit a = commit(i);
+		createBranch(commit(commit(a)), b);
+		createBranch(commit(commit(i)), c);
+
+		assertTrue( rw.isMergedIntoAny(a, getRefs()));
+	}
+
+	@Test
+	public void testIsMergedIntoAll() throws Exception {
+		/*
+		 *
+		 *        A
+		 *       / \
+		 *      o1  o2
+		 *     / \ / \
+		 *    B   C   D
+		 */
+
+		String b = "refs/heads/b";
+		String c = "refs/heads/c";
+		String d = "refs/heads/c";
+		final RevCommit a = commit();
+		final RevCommit o1 = commit(a);
+		final RevCommit o2 = commit(a);
+		createBranch(commit(o1), b);
+		createBranch(commit(o1, o2), c);
+		createBranch(commit(o2), d);
+
+		assertTrue(rw.isMergedIntoAll(a, getRefs()));
+	}
 }
diff --git a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF
index 5f5cf27..824a446 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: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.jgit.awtui;version="5.11.1"
-Import-Package: org.eclipse.jgit.errors;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.lib;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.nls;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revplot;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.revwalk;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.transport;version="[5.11.1,5.12.0)",
- org.eclipse.jgit.util;version="[5.11.1,5.12.0)"
+Export-Package: org.eclipse.jgit.awtui;version="5.12.0"
+Import-Package: org.eclipse.jgit.errors;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.lib;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.nls;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revplot;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.revwalk;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.transport;version="[5.12.0,5.13.0)",
+ org.eclipse.jgit.util;version="[5.12.0,5.13.0)"
diff --git a/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF
index 0cd6d11..0a53526 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: 5.11.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ui;version="5.11.1.qualifier";roots="."
+Bundle-Version: 5.12.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.ui;version="5.12.0.qualifier";roots="."
diff --git a/org.eclipse.jgit.ui/pom.xml b/org.eclipse.jgit.ui/pom.xml
index 913d173..ca8a663 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit.ui</artifactId>
diff --git a/org.eclipse.jgit/.settings/.api_filters b/org.eclipse.jgit/.settings/.api_filters
deleted file mode 100644
index d389ac5..0000000
--- a/org.eclipse.jgit/.settings/.api_filters
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.jgit" version="2">
-    <resource path="src/org/eclipse/jgit/lib/ConfigConstants.java" type="org.eclipse.jgit.lib.ConfigConstants">
-        <filter id="338755678">
-            <message_arguments>
-                <message_argument value="org.eclipse.jgit.lib.ConfigConstants"/>
-                <message_argument value="CONFIG_REFSTORAGE_REFTREE"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jgit/revwalk/ObjectWalk.java" type="org.eclipse.jgit.revwalk.ObjectWalk">
-        <filter id="421654647">
-            <message_arguments>
-                <message_argument value="org.eclipse.jgit.revwalk.ObjectWalk"/>
-                <message_argument value="createObjectReachabilityChecker()"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jgit/revwalk/RevWalk.java" type="org.eclipse.jgit.revwalk.RevWalk">
-        <filter id="421654647">
-            <message_arguments>
-                <message_argument value="org.eclipse.jgit.revwalk.RevWalk"/>
-                <message_argument value="createReachabilityChecker()"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jgit/util/FS.java" type="org.eclipse.jgit.util.FS">
-        <filter id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.jgit.util.FS"/>
-                <message_argument value="internalRunHookIfPresent(Repository, String, String[], PrintStream, PrintStream, String)"/>
-            </message_arguments>
-        </filter>
-        <filter id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.jgit.util.FS"/>
-                <message_argument value="runHookIfPresent(Repository, String, String[], PrintStream, PrintStream, String)"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jgit/util/FS_POSIX.java" type="org.eclipse.jgit.util.FS_POSIX">
-        <filter id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.jgit.util.FS_POSIX"/>
-                <message_argument value="runHookIfPresent(Repository, String, String[], PrintStream, PrintStream, String)"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jgit/util/FS_Win32_Cygwin.java" type="org.eclipse.jgit.util.FS_Win32_Cygwin">
-        <filter id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.jgit.util.FS_Win32_Cygwin"/>
-                <message_argument value="runHookIfPresent(Repository, String, String[], PrintStream, PrintStream, String)"/>
-            </message_arguments>
-        </filter>
-    </resource>
-</component>
diff --git a/org.eclipse.jgit/META-INF/MANIFEST.MF b/org.eclipse.jgit/META-INF/MANIFEST.MF
index 158e880..7d07696 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: 5.11.1.qualifier
+Bundle-Version: 5.12.0.qualifier
 Bundle-Localization: plugin
 Bundle-Vendor: %Bundle-Vendor
 Eclipse-ExtensibleAPI: true
-Export-Package: org.eclipse.jgit.annotations;version="5.11.1",
- org.eclipse.jgit.api;version="5.11.1";
+Export-Package: org.eclipse.jgit.annotations;version="5.12.0",
+ org.eclipse.jgit.api;version="5.12.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="5.11.1";
+ org.eclipse.jgit.api.errors;version="5.12.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.errors",
- org.eclipse.jgit.attributes;version="5.11.1";
+ org.eclipse.jgit.attributes;version="5.12.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.treewalk",
- org.eclipse.jgit.blame;version="5.11.1";
+ org.eclipse.jgit.blame;version="5.12.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.treewalk.filter,
    org.eclipse.jgit.diff",
- org.eclipse.jgit.diff;version="5.11.1";
+ org.eclipse.jgit.diff;version="5.12.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.attributes,
    org.eclipse.jgit.revwalk,
@@ -42,44 +42,44 @@
    org.eclipse.jgit.treewalk.filter,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.util",
- org.eclipse.jgit.dircache;version="5.11.1";
+ org.eclipse.jgit.dircache;version="5.12.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="5.11.1";
+ org.eclipse.jgit.errors;version="5.12.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="5.11.1";
+ org.eclipse.jgit.events;version="5.12.0";
   uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.fnmatch;version="5.11.1",
- org.eclipse.jgit.gitrepo;version="5.11.1";
+ org.eclipse.jgit.fnmatch;version="5.12.0",
+ org.eclipse.jgit.gitrepo;version="5.12.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="5.11.1";x-internal:=true,
- org.eclipse.jgit.hooks;version="5.11.1";uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.ignore;version="5.11.1",
- org.eclipse.jgit.ignore.internal;version="5.11.1";
+ org.eclipse.jgit.gitrepo.internal;version="5.12.0";x-internal:=true,
+ org.eclipse.jgit.hooks;version="5.12.0";uses:="org.eclipse.jgit.lib",
+ org.eclipse.jgit.ignore;version="5.12.0",
+ org.eclipse.jgit.ignore.internal;version="5.12.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal;version="5.11.1";
+ org.eclipse.jgit.internal;version="5.12.0";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.http.test",
- org.eclipse.jgit.internal.fsck;version="5.11.1";
+ org.eclipse.jgit.internal.fsck;version="5.12.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.revwalk;version="5.11.1";
+ org.eclipse.jgit.internal.revwalk;version="5.12.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.dfs;version="5.11.1";
+ org.eclipse.jgit.internal.storage.dfs;version="5.12.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="5.11.1";
+ org.eclipse.jgit.internal.storage.file;version="5.12.0";
   x-friends:="org.eclipse.jgit.test,
    org.eclipse.jgit.junit,
    org.eclipse.jgit.junit.http,
@@ -88,31 +88,31 @@
    org.eclipse.jgit.pgm,
    org.eclipse.jgit.pgm.test,
    org.eclipse.jgit.ssh.apache",
- org.eclipse.jgit.internal.storage.io;version="5.11.1";
+ org.eclipse.jgit.internal.storage.io;version="5.12.0";
   x-friends:="org.eclipse.jgit.junit,
    org.eclipse.jgit.test,
    org.eclipse.jgit.pgm",
- org.eclipse.jgit.internal.storage.pack;version="5.11.1";
+ org.eclipse.jgit.internal.storage.pack;version="5.12.0";
   x-friends:="org.eclipse.jgit.junit,
    org.eclipse.jgit.test,
    org.eclipse.jgit.pgm",
- org.eclipse.jgit.internal.storage.reftable;version="5.11.1";
+ org.eclipse.jgit.internal.storage.reftable;version="5.12.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="5.11.1";x-internal:=true,
- org.eclipse.jgit.internal.transport.connectivity;version="5.11.1";
+ org.eclipse.jgit.internal.submodule;version="5.12.0";x-internal:=true,
+ org.eclipse.jgit.internal.transport.connectivity;version="5.12.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.http;version="5.11.1";
+ org.eclipse.jgit.internal.transport.http;version="5.12.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.parser;version="5.11.1";
+ org.eclipse.jgit.internal.transport.parser;version="5.12.0";
   x-friends:="org.eclipse.jgit.http.server,
    org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.ssh;version="5.11.1";
+ org.eclipse.jgit.internal.transport.ssh;version="5.12.0";
   x-friends:="org.eclipse.jgit.ssh.apache,
    org.eclipse.jgit.ssh.jsch",
- org.eclipse.jgit.lib;version="5.11.1";
+ org.eclipse.jgit.lib;version="5.12.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.util.sha1,
    org.eclipse.jgit.dircache,
@@ -126,10 +126,10 @@
    org.eclipse.jgit.util,
    org.eclipse.jgit.submodule,
    org.eclipse.jgit.util.time",
- org.eclipse.jgit.lib.internal;version="5.11.1";
+ org.eclipse.jgit.lib.internal;version="5.12.0";
   x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.logging;version="5.11.1",
- org.eclipse.jgit.merge;version="5.11.1";
+ org.eclipse.jgit.logging;version="5.12.0",
+ org.eclipse.jgit.merge;version="5.12.0";
   uses:="org.eclipse.jgit.dircache,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
@@ -138,40 +138,40 @@
    org.eclipse.jgit.util,
    org.eclipse.jgit.api,
    org.eclipse.jgit.attributes",
- org.eclipse.jgit.nls;version="5.11.1",
- org.eclipse.jgit.notes;version="5.11.1";
+ org.eclipse.jgit.nls;version="5.12.0",
+ org.eclipse.jgit.notes;version="5.12.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk,
    org.eclipse.jgit.treewalk,
    org.eclipse.jgit.merge",
- org.eclipse.jgit.patch;version="5.11.1";
+ org.eclipse.jgit.patch;version="5.12.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.diff",
- org.eclipse.jgit.revplot;version="5.11.1";
+ org.eclipse.jgit.revplot;version="5.12.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.revwalk",
- org.eclipse.jgit.revwalk;version="5.11.1";
+ org.eclipse.jgit.revwalk;version="5.12.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="5.11.1";
+ org.eclipse.jgit.revwalk.filter;version="5.12.0";
   uses:="org.eclipse.jgit.revwalk,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.util",
- org.eclipse.jgit.storage.file;version="5.11.1";
+ org.eclipse.jgit.storage.file;version="5.12.0";
   uses:="org.eclipse.jgit.lib,
    org.eclipse.jgit.util",
- org.eclipse.jgit.storage.pack;version="5.11.1";
+ org.eclipse.jgit.storage.pack;version="5.12.0";
   uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.submodule;version="5.11.1";
+ org.eclipse.jgit.submodule;version="5.12.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="5.11.1";
+ org.eclipse.jgit.transport;version="5.12.0";
   uses:="javax.crypto,
    org.eclipse.jgit.util.io,
    org.eclipse.jgit.lib,
@@ -184,21 +184,21 @@
    org.eclipse.jgit.transport.resolver,
    org.eclipse.jgit.storage.pack,
    org.eclipse.jgit.errors",
- org.eclipse.jgit.transport.http;version="5.11.1";
+ org.eclipse.jgit.transport.http;version="5.12.0";
   uses:="javax.net.ssl",
- org.eclipse.jgit.transport.resolver;version="5.11.1";
+ org.eclipse.jgit.transport.resolver;version="5.12.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.lib",
- org.eclipse.jgit.treewalk;version="5.11.1";
+ org.eclipse.jgit.treewalk;version="5.12.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="5.11.1";
+ org.eclipse.jgit.treewalk.filter;version="5.12.0";
   uses:="org.eclipse.jgit.treewalk",
- org.eclipse.jgit.util;version="5.11.1";
+ org.eclipse.jgit.util;version="5.12.0";
   uses:="org.eclipse.jgit.transport,
    org.eclipse.jgit.hooks,
    org.eclipse.jgit.revwalk,
@@ -211,12 +211,12 @@
    org.eclipse.jgit.treewalk,
    javax.net.ssl,
    org.eclipse.jgit.util.time",
- org.eclipse.jgit.util.io;version="5.11.1";
+ org.eclipse.jgit.util.io;version="5.12.0";
   uses:="org.eclipse.jgit.attributes,
    org.eclipse.jgit.lib,
    org.eclipse.jgit.treewalk",
- org.eclipse.jgit.util.sha1;version="5.11.1",
- org.eclipse.jgit.util.time;version="5.11.1"
+ org.eclipse.jgit.util.sha1;version="5.12.0",
+ org.eclipse.jgit.util.time;version="5.12.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: com.googlecode.javaewah;version="[1.1.6,2.0.0)",
  javax.crypto,
diff --git a/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF
index 21c59de..0591651 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: 5.11.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit;version="5.11.1.qualifier";roots="."
+Bundle-Version: 5.12.0.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit;version="5.12.0.qualifier";roots="."
diff --git a/org.eclipse.jgit/pom.xml b/org.eclipse.jgit/pom.xml
index 0c38492..f947327 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>5.11.1-SNAPSHOT</version>
+    <version>5.12.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>org.eclipse.jgit</artifactId>
diff --git a/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties b/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
index 16fe12fa..2fa8713 100644
--- a/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
+++ b/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
@@ -139,6 +139,7 @@
 connectionFailed=connection failed
 connectionTimeOut=Connection time out: {0}
 contextMustBeNonNegative=context must be >= 0
+cookieFilePathRelative=git config http.cookieFile contains a relative path, should be absolute: {0}
 corruptionDetectedReReadingAt=Corruption detected re-reading at {0}
 corruptObjectBadDate=bad date
 corruptObjectBadEmail=bad email
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java
index 5d0154c..7922f9e 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010, Christian Halstrick <christian.halstrick@sap.com> and others
+ * Copyright (C) 2010, 2021 Christian Halstrick <christian.halstrick@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
@@ -13,6 +13,7 @@
 import java.text.MessageFormat;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 
 import org.eclipse.jgit.api.errors.ConcurrentRefUpdateException;
 import org.eclipse.jgit.api.errors.GitAPIException;
@@ -35,9 +36,12 @@
 import org.eclipse.jgit.lib.Ref;
 import org.eclipse.jgit.lib.Ref.Storage;
 import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.merge.ContentMergeStrategy;
 import org.eclipse.jgit.merge.MergeMessageFormatter;
 import org.eclipse.jgit.merge.MergeStrategy;
+import org.eclipse.jgit.merge.Merger;
 import org.eclipse.jgit.merge.ResolveMerger;
+import org.eclipse.jgit.merge.ResolveMerger.MergeFailureReason;
 import org.eclipse.jgit.revwalk.RevCommit;
 import org.eclipse.jgit.revwalk.RevWalk;
 import org.eclipse.jgit.treewalk.FileTreeIterator;
@@ -61,6 +65,8 @@
 
 	private MergeStrategy strategy = MergeStrategy.RECURSIVE;
 
+	private ContentMergeStrategy contentStrategy;
+
 	private Integer mainlineParentNumber;
 
 	private boolean noCommit = false;
@@ -121,16 +127,30 @@
 				String cherryPickName = srcCommit.getId().abbreviate(7).name()
 						+ " " + srcCommit.getShortMessage(); //$NON-NLS-1$
 
-				ResolveMerger merger = (ResolveMerger) strategy.newMerger(repo);
-				merger.setWorkingTreeIterator(new FileTreeIterator(repo));
-				merger.setBase(srcParent.getTree());
-				merger.setCommitNames(new String[] { "BASE", ourName, //$NON-NLS-1$
-						cherryPickName });
-				if (merger.merge(newHead, srcCommit)) {
-					if (!merger.getModifiedFiles().isEmpty()) {
+				Merger merger = strategy.newMerger(repo);
+				merger.setProgressMonitor(monitor);
+				boolean noProblems;
+				Map<String, MergeFailureReason> failingPaths = null;
+				List<String> unmergedPaths = null;
+				if (merger instanceof ResolveMerger) {
+					ResolveMerger resolveMerger = (ResolveMerger) merger;
+					resolveMerger.setContentMergeStrategy(contentStrategy);
+					resolveMerger.setCommitNames(
+							new String[] { "BASE", ourName, cherryPickName }); //$NON-NLS-1$
+					resolveMerger
+							.setWorkingTreeIterator(new FileTreeIterator(repo));
+					resolveMerger.setBase(srcParent.getTree());
+					noProblems = merger.merge(newHead, srcCommit);
+					failingPaths = resolveMerger.getFailingPaths();
+					unmergedPaths = resolveMerger.getUnmergedPaths();
+					if (!resolveMerger.getModifiedFiles().isEmpty()) {
 						repo.fireEvent(new WorkingTreeModifiedEvent(
-								merger.getModifiedFiles(), null));
+								resolveMerger.getModifiedFiles(), null));
 					}
+				} else {
+					noProblems = merger.merge(newHead, srcCommit);
+				}
+				if (noProblems) {
 					if (AnyObjectId.isEqual(newHead.getTree().getId(),
 							merger.getResultTreeId())) {
 						continue;
@@ -153,24 +173,26 @@
 					}
 					cherryPickedRefs.add(src);
 				} else {
-					if (merger.failed()) {
-						return new CherryPickResult(merger.getFailingPaths());
+					if (failingPaths != null && !failingPaths.isEmpty()) {
+						return new CherryPickResult(failingPaths);
 					}
 
 					// there are merge conflicts
 
-					String message = new MergeMessageFormatter()
+					String message;
+					if (unmergedPaths != null) {
+						message = new MergeMessageFormatter()
 							.formatWithConflicts(srcCommit.getFullMessage(),
-									merger.getUnmergedPaths());
+										unmergedPaths);
+					} else {
+						message = srcCommit.getFullMessage();
+					}
 
 					if (!noCommit) {
 						repo.writeCherryPickHead(srcCommit.getId());
 					}
 					repo.writeMergeCommitMsg(message);
 
-					repo.fireEvent(new WorkingTreeModifiedEvent(
-							merger.getModifiedFiles(), null));
-
 					return CherryPickResult.CONFLICT;
 				}
 			}
@@ -291,6 +313,22 @@
 	}
 
 	/**
+	 * Sets the content merge strategy to use if the
+	 * {@link #setStrategy(MergeStrategy) merge strategy} is "resolve" or
+	 * "recursive".
+	 *
+	 * @param strategy
+	 *            the {@link ContentMergeStrategy} to be used
+	 * @return {@code this}
+	 * @since 5.12
+	 */
+	public CherryPickCommand setContentMergeStrategy(
+			ContentMergeStrategy strategy) {
+		this.contentStrategy = strategy;
+		return this;
+	}
+
+	/**
 	 * Set the (1-based) parent number to diff against
 	 *
 	 * @param mainlineParentNumber
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/MergeCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/MergeCommand.java
index d88f4ec..c611f91 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/MergeCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/MergeCommand.java
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 2010, Christian Halstrick <christian.halstrick@sap.com>
- * Copyright (C) 2010-2014, Stefan Lay <stefan.lay@sap.com>
- * Copyright (C) 2016, Laurent Delaigue <laurent.delaigue@obeo.fr> and others
+ * Copyright (C) 2010, 2014, Stefan Lay <stefan.lay@sap.com>
+ * Copyright (C) 2016, 2021 Laurent Delaigue <laurent.delaigue@obeo.fr> 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
@@ -45,6 +45,7 @@
 import org.eclipse.jgit.lib.RefUpdate;
 import org.eclipse.jgit.lib.RefUpdate.Result;
 import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.merge.ContentMergeStrategy;
 import org.eclipse.jgit.merge.MergeConfig;
 import org.eclipse.jgit.merge.MergeMessageFormatter;
 import org.eclipse.jgit.merge.MergeStrategy;
@@ -71,6 +72,8 @@
 
 	private MergeStrategy mergeStrategy = MergeStrategy.RECURSIVE;
 
+	private ContentMergeStrategy contentStrategy;
+
 	private List<Ref> commits = new LinkedList<>();
 
 	private Boolean squash;
@@ -320,6 +323,7 @@
 				List<String> unmergedPaths = null;
 				if (merger instanceof ResolveMerger) {
 					ResolveMerger resolveMerger = (ResolveMerger) merger;
+					resolveMerger.setContentMergeStrategy(contentStrategy);
 					resolveMerger.setCommitNames(new String[] {
 							"BASE", "HEAD", ref.getName() }); //$NON-NLS-1$ //$NON-NLS-2$
 					resolveMerger.setWorkingTreeIterator(new FileTreeIterator(repo));
@@ -473,6 +477,22 @@
 	}
 
 	/**
+	 * Sets the content merge strategy to use if the
+	 * {@link #setStrategy(MergeStrategy) merge strategy} is "resolve" or
+	 * "recursive".
+	 *
+	 * @param strategy
+	 *            the {@link ContentMergeStrategy} to be used
+	 * @return {@code this}
+	 * @since 5.12
+	 */
+	public MergeCommand setContentMergeStrategy(ContentMergeStrategy strategy) {
+		checkCallable();
+		this.contentStrategy = strategy;
+		return this;
+	}
+
+	/**
 	 * Reference to a commit to be merged with the current head
 	 *
 	 * @param aCommit
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java
index 4492508..281ecfd 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 2010, Christian Halstrick <christian.halstrick@sap.com>
  * Copyright (C) 2010, Mathias Kinzler <mathias.kinzler@sap.com>
- * Copyright (C) 2016, Laurent Delaigue <laurent.delaigue@obeo.fr> and others
+ * Copyright (C) 2016, 2021 Laurent Delaigue <laurent.delaigue@obeo.fr> 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
@@ -43,6 +43,7 @@
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.lib.RepositoryState;
 import org.eclipse.jgit.lib.SubmoduleConfig.FetchRecurseSubmodulesMode;
+import org.eclipse.jgit.merge.ContentMergeStrategy;
 import org.eclipse.jgit.merge.MergeStrategy;
 import org.eclipse.jgit.revwalk.RevCommit;
 import org.eclipse.jgit.revwalk.RevWalk;
@@ -69,6 +70,8 @@
 
 	private MergeStrategy strategy = MergeStrategy.RECURSIVE;
 
+	private ContentMergeStrategy contentStrategy;
+
 	private TagOpt tagOption;
 
 	private FastForwardMode fastForwardMode;
@@ -275,8 +278,7 @@
 					JGitText.get().pullTaskName));
 
 		// we check the updates to see which of the updated branches
-		// corresponds
-		// to the remote branch name
+		// corresponds to the remote branch name
 		AnyObjectId commitToMerge;
 		if (isRemote) {
 			Ref r = null;
@@ -354,8 +356,11 @@
 			}
 			RebaseCommand rebase = new RebaseCommand(repo);
 			RebaseResult rebaseRes = rebase.setUpstream(commitToMerge)
-					.setUpstreamName(upstreamName).setProgressMonitor(monitor)
-					.setOperation(Operation.BEGIN).setStrategy(strategy)
+					.setProgressMonitor(monitor)
+					.setUpstreamName(upstreamName)
+					.setOperation(Operation.BEGIN)
+					.setStrategy(strategy)
+					.setContentMergeStrategy(contentStrategy)
 					.setPreserveMerges(
 							pullRebaseMode == BranchRebaseMode.PRESERVE)
 					.call();
@@ -363,7 +368,9 @@
 		} else {
 			MergeCommand merge = new MergeCommand(repo);
 			MergeResult mergeRes = merge.include(upstreamName, commitToMerge)
-					.setStrategy(strategy).setProgressMonitor(monitor)
+					.setProgressMonitor(monitor)
+					.setStrategy(strategy)
+					.setContentMergeStrategy(contentStrategy)
 					.setFastForward(getFastForwardMode()).call();
 			monitor.update(1);
 			result = new PullResult(fetchRes, remote, mergeRes);
@@ -442,6 +449,21 @@
 	}
 
 	/**
+	 * Sets the content merge strategy to use if the
+	 * {@link #setStrategy(MergeStrategy) merge strategy} is "resolve" or
+	 * "recursive".
+	 *
+	 * @param strategy
+	 *            the {@link ContentMergeStrategy} to be used
+	 * @return {@code this}
+	 * @since 5.12
+	 */
+	public PullCommand setContentMergeStrategy(ContentMergeStrategy strategy) {
+		this.contentStrategy = strategy;
+		return this;
+	}
+
+	/**
 	 * Set the specification of annotated tag behavior during fetch
 	 *
 	 * @param tagOpt
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java
index 836175d..a26ffc2 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2010, 2013 Mathias Kinzler <mathias.kinzler@sap.com>
- * Copyright (C) 2016, Laurent Delaigue <laurent.delaigue@obeo.fr> and others
+ * Copyright (C) 2016, 2021 Laurent Delaigue <laurent.delaigue@obeo.fr> 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
@@ -65,6 +65,7 @@
 import org.eclipse.jgit.lib.RefUpdate;
 import org.eclipse.jgit.lib.RefUpdate.Result;
 import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.merge.ContentMergeStrategy;
 import org.eclipse.jgit.merge.MergeStrategy;
 import org.eclipse.jgit.revwalk.RevCommit;
 import org.eclipse.jgit.revwalk.RevSort;
@@ -212,6 +213,8 @@
 
 	private MergeStrategy strategy = MergeStrategy.RECURSIVE;
 
+	private ContentMergeStrategy contentStrategy;
+
 	private boolean preserveMerges = false;
 
 	/**
@@ -501,8 +504,11 @@
 			String ourCommitName = getOurCommitName();
 			try (Git git = new Git(repo)) {
 				CherryPickResult cherryPickResult = git.cherryPick()
-					.include(commitToPick).setOurCommitName(ourCommitName)
-					.setReflogPrefix(REFLOG_PREFIX).setStrategy(strategy)
+					.include(commitToPick)
+					.setOurCommitName(ourCommitName)
+					.setReflogPrefix(REFLOG_PREFIX)
+					.setStrategy(strategy)
+					.setContentMergeStrategy(contentStrategy)
 					.call();
 				switch (cherryPickResult.getStatus()) {
 				case FAILED:
@@ -556,7 +562,8 @@
 							.include(commitToPick)
 							.setOurCommitName(ourCommitName)
 							.setReflogPrefix(REFLOG_PREFIX)
-							.setStrategy(strategy);
+							.setStrategy(strategy)
+							.setContentMergeStrategy(contentStrategy);
 					if (isMerge) {
 						pickCommand.setMainlineParentNumber(1);
 						// We write a MERGE_HEAD and later commit explicitly
@@ -592,6 +599,8 @@
 					MergeCommand merge = git.merge()
 							.setFastForward(MergeCommand.FastForwardMode.NO_FF)
 							.setProgressMonitor(monitor)
+							.setStrategy(strategy)
+							.setContentMergeStrategy(contentStrategy)
 							.setCommit(false);
 					for (int i = 1; i < commitToPick.getParentCount(); i++)
 						merge.include(newParents.get(i));
@@ -1137,7 +1146,7 @@
 	}
 
 	private List<RevCommit> calculatePickList(RevCommit headCommit)
-			throws GitAPIException, NoHeadException, IOException {
+			throws IOException {
 		List<RevCommit> cherryPickList = new ArrayList<>();
 		try (RevWalk r = new RevWalk(repo)) {
 			r.sort(RevSort.TOPO_KEEP_BRANCH_TOGETHER, true);
@@ -1587,6 +1596,21 @@
 	}
 
 	/**
+	 * Sets the content merge strategy to use if the
+	 * {@link #setStrategy(MergeStrategy) merge strategy} is "resolve" or
+	 * "recursive".
+	 *
+	 * @param strategy
+	 *            the {@link ContentMergeStrategy} to be used
+	 * @return {@code this}
+	 * @since 5.12
+	 */
+	public RebaseCommand setContentMergeStrategy(ContentMergeStrategy strategy) {
+		this.contentStrategy = strategy;
+		return this;
+	}
+
+	/**
 	 * Whether to preserve merges during rebase
 	 *
 	 * @param preserve
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/StashApplyCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/StashApplyCommand.java
index 56b3992..1004d3e 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/StashApplyCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/StashApplyCommand.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012, 2017 GitHub Inc. and others
+ * Copyright (C) 2012, 2021 GitHub Inc. 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
@@ -38,7 +38,9 @@
 import org.eclipse.jgit.lib.ObjectReader;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.lib.RepositoryState;
+import org.eclipse.jgit.merge.ContentMergeStrategy;
 import org.eclipse.jgit.merge.MergeStrategy;
+import org.eclipse.jgit.merge.Merger;
 import org.eclipse.jgit.merge.ResolveMerger;
 import org.eclipse.jgit.revwalk.RevCommit;
 import org.eclipse.jgit.revwalk.RevTree;
@@ -71,6 +73,8 @@
 
 	private MergeStrategy strategy = MergeStrategy.RECURSIVE;
 
+	private ContentMergeStrategy contentStrategy;
+
 	/**
 	 * Create command to apply the changes of a stashed commit
 	 *
@@ -166,16 +170,25 @@
 			if (restoreUntracked && stashCommit.getParentCount() == 3)
 				untrackedCommit = revWalk.parseCommit(stashCommit.getParent(2));
 
-			ResolveMerger merger = (ResolveMerger) strategy.newMerger(repo);
-			merger.setCommitNames(new String[] { "stashed HEAD", "HEAD", //$NON-NLS-1$ //$NON-NLS-2$
-					"stash" }); //$NON-NLS-1$
-			merger.setBase(stashHeadCommit);
-			merger.setWorkingTreeIterator(new FileTreeIterator(repo));
-			boolean mergeSucceeded = merger.merge(headCommit, stashCommit);
-			List<String> modifiedByMerge = merger.getModifiedFiles();
-			if (!modifiedByMerge.isEmpty()) {
-				repo.fireEvent(
-						new WorkingTreeModifiedEvent(modifiedByMerge, null));
+			Merger merger = strategy.newMerger(repo);
+			boolean mergeSucceeded;
+			if (merger instanceof ResolveMerger) {
+				ResolveMerger resolveMerger = (ResolveMerger) merger;
+				resolveMerger
+						.setCommitNames(new String[] { "stashed HEAD", "HEAD", //$NON-NLS-1$ //$NON-NLS-2$
+								"stash" }); //$NON-NLS-1$
+				resolveMerger.setBase(stashHeadCommit);
+				resolveMerger
+						.setWorkingTreeIterator(new FileTreeIterator(repo));
+				resolveMerger.setContentMergeStrategy(contentStrategy);
+				mergeSucceeded = resolveMerger.merge(headCommit, stashCommit);
+				List<String> modifiedByMerge = resolveMerger.getModifiedFiles();
+				if (!modifiedByMerge.isEmpty()) {
+					repo.fireEvent(new WorkingTreeModifiedEvent(modifiedByMerge,
+							null));
+				}
+			} else {
+				mergeSucceeded = merger.merge(headCommit, stashCommit);
 			}
 			if (mergeSucceeded) {
 				DirCache dc = repo.lockDirCache();
@@ -184,11 +197,14 @@
 				dco.setFailOnConflict(true);
 				dco.checkout(); // Ignoring failed deletes....
 				if (restoreIndex) {
-					ResolveMerger ixMerger = (ResolveMerger) strategy
-							.newMerger(repo, true);
-					ixMerger.setCommitNames(new String[] { "stashed HEAD", //$NON-NLS-1$
-							"HEAD", "stashed index" }); //$NON-NLS-1$//$NON-NLS-2$
-					ixMerger.setBase(stashHeadCommit);
+					Merger ixMerger = strategy.newMerger(repo, true);
+					if (ixMerger instanceof ResolveMerger) {
+						ResolveMerger resolveMerger = (ResolveMerger) ixMerger;
+						resolveMerger.setCommitNames(new String[] { "stashed HEAD", //$NON-NLS-1$
+								"HEAD", "stashed index" }); //$NON-NLS-1$//$NON-NLS-2$
+						resolveMerger.setBase(stashHeadCommit);
+						resolveMerger.setContentMergeStrategy(contentStrategy);
+					}
 					boolean ok = ixMerger.merge(headCommit, stashIndexCommit);
 					if (ok) {
 						resetIndex(revWalk
@@ -200,16 +216,20 @@
 				}
 
 				if (untrackedCommit != null) {
-					ResolveMerger untrackedMerger = (ResolveMerger) strategy
-							.newMerger(repo, true);
-					untrackedMerger.setCommitNames(new String[] {
-							"null", "HEAD", "untracked files" }); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
-					// There is no common base for HEAD & untracked files
-					// because the commit for untracked files has no parent. If
-					// we use stashHeadCommit as common base (as in the other
-					// merges) we potentially report conflicts for files
-					// which are not even member of untracked files commit
-					untrackedMerger.setBase(null);
+					Merger untrackedMerger = strategy.newMerger(repo, true);
+					if (untrackedMerger instanceof ResolveMerger) {
+						ResolveMerger resolveMerger = (ResolveMerger) untrackedMerger;
+						resolveMerger.setCommitNames(new String[] { "null", "HEAD", //$NON-NLS-1$//$NON-NLS-2$
+								"untracked files" }); //$NON-NLS-1$
+						// There is no common base for HEAD & untracked files
+						// because the commit for untracked files has no parent.
+						// If we use stashHeadCommit as common base (as in the
+						// other merges) we potentially report conflicts for
+						// files which are not even member of untracked files
+						// commit.
+						resolveMerger.setBase(null);
+						resolveMerger.setContentMergeStrategy(contentStrategy);
+					}
 					boolean ok = untrackedMerger.merge(headCommit,
 							untrackedCommit);
 					if (ok) {
@@ -279,6 +299,23 @@
 	}
 
 	/**
+	 * Sets the content merge strategy to use if the
+	 * {@link #setStrategy(MergeStrategy) merge strategy} is "resolve" or
+	 * "recursive".
+	 *
+	 * @param strategy
+	 *            the {@link ContentMergeStrategy} to be used
+	 * @return {@code this}
+	 * @since 5.12
+	 */
+	public StashApplyCommand setContentMergeStrategy(
+			ContentMergeStrategy strategy) {
+		checkCallable();
+		this.contentStrategy = strategy;
+		return this;
+	}
+
+	/**
 	 * Whether the command should restore untracked files
 	 *
 	 * @param applyUntracked
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/diff/RenameDetector.java b/org.eclipse.jgit/src/org/eclipse/jgit/diff/RenameDetector.java
index 80e1b18..75784c2 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/diff/RenameDetector.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/diff/RenameDetector.java
@@ -12,6 +12,7 @@
 
 import static org.eclipse.jgit.diff.DiffEntry.Side.NEW;
 import static org.eclipse.jgit.diff.DiffEntry.Side.OLD;
+import static org.eclipse.jgit.storage.pack.PackConfig.DEFAULT_BIG_FILE_THRESHOLD;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -97,6 +98,12 @@
 	/** Limit in the number of files to consider for renames. */
 	private int renameLimit;
 
+	/**
+	 * File size threshold (in bytes) for detecting renames. Files larger
+	 * than this size will not be processed for renames.
+	 */
+	private int bigFileThreshold = DEFAULT_BIG_FILE_THRESHOLD;
+
 	/** Set if the number of adds or deletes was over the limit. */
 	private boolean overRenameLimit;
 
@@ -209,6 +216,26 @@
 	}
 
 	/**
+	 * Get file size threshold for detecting renames. Files larger
+	 * than this size will not be processed for rename detection.
+	 *
+	 * @return threshold in bytes of the file size.
+	 * @since 5.12
+	 */
+	public int getBigFileThreshold() { return bigFileThreshold; }
+
+	/**
+	 * Set the file size threshold for detecting renames. Files larger than this
+	 * threshold will be skipped during rename detection computation.
+	 *
+	 * @param threshold file size threshold in bytes.
+	 * @since 5.12
+	 */
+	public void setBigFileThreshold(int threshold) {
+		this.bigFileThreshold = threshold;
+	}
+
+	/**
 	 * Check if the detector is over the rename limit.
 	 * <p>
 	 * This method can be invoked either before or after {@code getEntries} has
@@ -493,6 +520,7 @@
 
 			d = new SimilarityRenameDetector(reader, deleted, added);
 			d.setRenameScore(getRenameScore());
+			d.setBigFileThreshold(getBigFileThreshold());
 			d.compute(pm);
 			overRenameLimit |= d.isTableOverflow();
 			deleted = d.getLeftOverSources();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/diff/SimilarityRenameDetector.java b/org.eclipse.jgit/src/org/eclipse/jgit/diff/SimilarityRenameDetector.java
index 74a11a0..082f31d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/diff/SimilarityRenameDetector.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/diff/SimilarityRenameDetector.java
@@ -12,6 +12,7 @@
 
 import static org.eclipse.jgit.diff.DiffEntry.Side.NEW;
 import static org.eclipse.jgit.diff.DiffEntry.Side.OLD;
+import static org.eclipse.jgit.storage.pack.PackConfig.DEFAULT_BIG_FILE_THRESHOLD;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -80,6 +81,12 @@
 	/** Score a pair must exceed to be considered a rename. */
 	private int renameScore = 60;
 
+	/**
+	 * File size threshold (in bytes) for detecting renames. Files larger
+	 * than this size will not be processed for renames.
+	 */
+	private int bigFileThreshold = DEFAULT_BIG_FILE_THRESHOLD;
+
 	/** Set if any {@link SimilarityIndex.TableFullException} occurs. */
 	private boolean tableOverflow;
 
@@ -96,6 +103,10 @@
 		renameScore = score;
 	}
 
+	void setBigFileThreshold(int threshold) {
+		bigFileThreshold = threshold;
+	}
+
 	void compute(ProgressMonitor pm) throws IOException, CancelledException {
 		if (pm == null)
 			pm = NullProgressMonitor.INSTANCE;
@@ -253,6 +264,11 @@
 					continue;
 				}
 
+				if (max > bigFileThreshold) {
+					pm.update(1);
+					continue;
+				}
+
 				if (s == null) {
 					try {
 						s = hash(OLD, srcEnt);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java
index ba88aea..ab9fc5c 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java
@@ -167,6 +167,7 @@
 	/***/ public String connectionFailed;
 	/***/ public String connectionTimeOut;
 	/***/ public String contextMustBeNonNegative;
+	/***/ public String cookieFilePathRelative;
 	/***/ public String corruptionDetectedReReadingAt;
 	/***/ public String corruptObjectBadDate;
 	/***/ public String corruptObjectBadEmail;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/transport/ssh/OpenSshConfigFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/transport/ssh/OpenSshConfigFile.java
index c514270..de6a346 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/transport/ssh/OpenSshConfigFile.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/transport/ssh/OpenSshConfigFile.java
@@ -708,10 +708,10 @@
 		}
 
 		private List<String> substitute(List<String> values, String allowed,
-				Replacer r) {
+				Replacer r, boolean withEnv) {
 			List<String> result = new ArrayList<>(values.size());
 			for (String value : values) {
-				result.add(r.substitute(value, allowed));
+				result.add(r.substitute(value, allowed, withEnv));
 			}
 			return result;
 		}
@@ -743,7 +743,7 @@
 				if (hostName == null || hostName.isEmpty()) {
 					options.put(SshConstants.HOST_NAME, originalHostName);
 				} else {
-					hostName = r.substitute(hostName, "h"); //$NON-NLS-1$
+					hostName = r.substitute(hostName, "h", false); //$NON-NLS-1$
 					options.put(SshConstants.HOST_NAME, hostName);
 					r.update('h', hostName);
 				}
@@ -752,13 +752,13 @@
 				List<String> values = multiOptions
 						.get(SshConstants.IDENTITY_FILE);
 				if (values != null) {
-					values = substitute(values, "dhlru", r); //$NON-NLS-1$
+					values = substitute(values, "dhlru", r, true); //$NON-NLS-1$
 					values = replaceTilde(values, home);
 					multiOptions.put(SshConstants.IDENTITY_FILE, values);
 				}
 				values = multiOptions.get(SshConstants.CERTIFICATE_FILE);
 				if (values != null) {
-					values = substitute(values, "dhlru", r); //$NON-NLS-1$
+					values = substitute(values, "dhlru", r, true); //$NON-NLS-1$
 					values = replaceTilde(values, home);
 					multiOptions.put(SshConstants.CERTIFICATE_FILE, values);
 				}
@@ -775,29 +775,29 @@
 				// HOSTNAME already done above
 				String value = options.get(SshConstants.IDENTITY_AGENT);
 				if (value != null) {
-					value = r.substitute(value, "dhlru"); //$NON-NLS-1$
+					value = r.substitute(value, "dhlru", true); //$NON-NLS-1$
 					value = toFile(value, home).getPath();
 					options.put(SshConstants.IDENTITY_AGENT, value);
 				}
 				value = options.get(SshConstants.CONTROL_PATH);
 				if (value != null) {
-					value = r.substitute(value, "ChLlnpru"); //$NON-NLS-1$
+					value = r.substitute(value, "ChLlnpru", true); //$NON-NLS-1$
 					value = toFile(value, home).getPath();
 					options.put(SshConstants.CONTROL_PATH, value);
 				}
 				value = options.get(SshConstants.LOCAL_COMMAND);
 				if (value != null) {
-					value = r.substitute(value, "CdhlnprTu"); //$NON-NLS-1$
+					value = r.substitute(value, "CdhlnprTu", false); //$NON-NLS-1$
 					options.put(SshConstants.LOCAL_COMMAND, value);
 				}
 				value = options.get(SshConstants.REMOTE_COMMAND);
 				if (value != null) {
-					value = r.substitute(value, "Cdhlnpru"); //$NON-NLS-1$
+					value = r.substitute(value, "Cdhlnpru", false); //$NON-NLS-1$
 					options.put(SshConstants.REMOTE_COMMAND, value);
 				}
 				value = options.get(SshConstants.PROXY_COMMAND);
 				if (value != null) {
-					value = r.substitute(value, "hpr"); //$NON-NLS-1$
+					value = r.substitute(value, "hpr", false); //$NON-NLS-1$
 					options.put(SshConstants.PROXY_COMMAND, value);
 				}
 			}
@@ -871,7 +871,7 @@
 			replacements.put(Character.valueOf('r'), user == null ? "" : user); //$NON-NLS-1$
 			replacements.put(Character.valueOf('u'), localUserName);
 			replacements.put(Character.valueOf('C'),
-					substitute("%l%h%p%r", "hlpr")); //$NON-NLS-1$ //$NON-NLS-2$
+					substitute("%l%h%p%r", "hlpr", false)); //$NON-NLS-1$ //$NON-NLS-2$
 			replacements.put(Character.valueOf('T'), "NONE"); //$NON-NLS-1$
 		}
 
@@ -879,36 +879,63 @@
 			replacements.put(Character.valueOf(key), value);
 			if ("lhpr".indexOf(key) >= 0) { //$NON-NLS-1$
 				replacements.put(Character.valueOf('C'),
-						substitute("%l%h%p%r", "hlpr")); //$NON-NLS-1$ //$NON-NLS-2$
+						substitute("%l%h%p%r", "hlpr", false)); //$NON-NLS-1$ //$NON-NLS-2$
 			}
 		}
 
-		public String substitute(String input, String allowed) {
+		public String substitute(String input, String allowed,
+				boolean withEnv) {
 			if (input == null || input.length() <= 1
-					|| input.indexOf('%') < 0) {
+					|| input.indexOf('%') < 0
+							&& (!withEnv || input.indexOf("${") < 0)) { //$NON-NLS-1$
 				return input;
 			}
 			StringBuilder builder = new StringBuilder();
 			int start = 0;
 			int length = input.length();
 			while (start < length) {
-				int percent = input.indexOf('%', start);
-				if (percent < 0 || percent + 1 >= length) {
-					builder.append(input.substring(start));
+				char ch = input.charAt(start);
+				switch (ch) {
+				case '%':
+					if (start + 1 >= length) {
+						break;
+					}
+					String replacement = null;
+					ch = input.charAt(start + 1);
+					if (ch == '%' || allowed.indexOf(ch) >= 0) {
+						replacement = replacements.get(Character.valueOf(ch));
+					}
+					if (replacement == null) {
+						builder.append('%').append(ch);
+					} else {
+						builder.append(replacement);
+					}
+					start += 2;
+					continue;
+				case '$':
+					if (!withEnv || start + 2 >= length) {
+						break;
+					}
+					ch = input.charAt(start + 1);
+					if (ch == '{') {
+						int close = input.indexOf('}', start + 2);
+						if (close > start + 2) {
+							String variable = SystemReader.getInstance()
+									.getenv(input.substring(start + 2, close));
+							if (!StringUtils.isEmptyOrNull(variable)) {
+								builder.append(variable);
+							}
+							start = close + 1;
+							continue;
+						}
+					}
+					ch = '$';
+					break;
+				default:
 					break;
 				}
-				String replacement = null;
-				char ch = input.charAt(percent + 1);
-				if (ch == '%' || allowed.indexOf(ch) >= 0) {
-					replacement = replacements.get(Character.valueOf(ch));
-				}
-				if (replacement == null) {
-					builder.append(input.substring(start, percent + 2));
-				} else {
-					builder.append(input.substring(start, percent))
-							.append(replacement);
-				}
-				start = percent + 2;
+				builder.append(ch);
+				start++;
 			}
 			return builder.toString();
 		}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/merge/ContentMergeStrategy.java b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ContentMergeStrategy.java
new file mode 100644
index 0000000..6d56864
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ContentMergeStrategy.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2021, Thomas Wolf <thomas.wolf@paranor.ch> 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.merge;
+
+/**
+ * How to handle content conflicts.
+ *
+ * @since 5.12
+ */
+public enum ContentMergeStrategy {
+
+	/** Produce a conflict. */
+	CONFLICT,
+
+	/** Resolve the conflict hunk using the ours version. */
+	OURS,
+
+	/** Resolve the conflict hunk using the theirs version. */
+	THEIRS
+}
\ No newline at end of file
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java b/org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java
index 27141c1..8060735 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java
@@ -14,6 +14,7 @@
 import java.util.Iterator;
 import java.util.List;
 
+import org.eclipse.jgit.annotations.NonNull;
 import org.eclipse.jgit.diff.DiffAlgorithm;
 import org.eclipse.jgit.diff.Edit;
 import org.eclipse.jgit.diff.EditList;
@@ -28,8 +29,12 @@
  * diff algorithm.
  */
 public final class MergeAlgorithm {
+
 	private final DiffAlgorithm diffAlg;
 
+	@NonNull
+	private ContentMergeStrategy strategy = ContentMergeStrategy.CONFLICT;
+
 	/**
 	 * Creates a new MergeAlgorithm which uses
 	 * {@link org.eclipse.jgit.diff.HistogramDiff} as diff algorithm
@@ -48,6 +53,30 @@
 		this.diffAlg = diff;
 	}
 
+	/**
+	 * Retrieves the {@link ContentMergeStrategy}.
+	 *
+	 * @return the {@link ContentMergeStrategy} in effect
+	 * @since 5.12
+	 */
+	@NonNull
+	public ContentMergeStrategy getContentMergeStrategy() {
+		return strategy;
+	}
+
+	/**
+	 * Sets the {@link ContentMergeStrategy}.
+	 *
+	 * @param strategy
+	 *            {@link ContentMergeStrategy} to set; if {@code null}, set
+	 *            {@link ContentMergeStrategy#CONFLICT}
+	 * @since 5.12
+	 */
+	public void setContentMergeStrategy(ContentMergeStrategy strategy) {
+		this.strategy = strategy == null ? ContentMergeStrategy.CONFLICT
+				: strategy;
+	}
+
 	// An special edit which acts as a sentinel value by marking the end the
 	// list of edits
 	private static final Edit END_EDIT = new Edit(Integer.MAX_VALUE,
@@ -79,29 +108,54 @@
 			if (theirs.size() != 0) {
 				EditList theirsEdits = diffAlg.diff(cmp, base, theirs);
 				if (!theirsEdits.isEmpty()) {
-					// we deleted, they modified -> Let their complete content
-					// conflict with empty text
-					result.add(1, 0, 0, ConflictState.FIRST_CONFLICTING_RANGE);
-					result.add(2, 0, theirs.size(),
-							ConflictState.NEXT_CONFLICTING_RANGE);
-				} else
+					// we deleted, they modified
+					switch (strategy) {
+					case OURS:
+						result.add(1, 0, 0, ConflictState.NO_CONFLICT);
+						break;
+					case THEIRS:
+						result.add(2, 0, theirs.size(),
+								ConflictState.NO_CONFLICT);
+						break;
+					default:
+						// Let their complete content conflict with empty text
+						result.add(1, 0, 0,
+								ConflictState.FIRST_CONFLICTING_RANGE);
+						result.add(2, 0, theirs.size(),
+								ConflictState.NEXT_CONFLICTING_RANGE);
+						break;
+					}
+				} else {
 					// we deleted, they didn't modify -> Let our deletion win
 					result.add(1, 0, 0, ConflictState.NO_CONFLICT);
-			} else
+				}
+			} else {
 				// we and they deleted -> return a single chunk of nothing
 				result.add(1, 0, 0, ConflictState.NO_CONFLICT);
+			}
 			return result;
 		} else if (theirs.size() == 0) {
 			EditList oursEdits = diffAlg.diff(cmp, base, ours);
 			if (!oursEdits.isEmpty()) {
-				// we modified, they deleted -> Let our complete content
-				// conflict with empty text
-				result.add(1, 0, ours.size(),
-						ConflictState.FIRST_CONFLICTING_RANGE);
-				result.add(2, 0, 0, ConflictState.NEXT_CONFLICTING_RANGE);
-			} else
+				// we modified, they deleted
+				switch (strategy) {
+				case OURS:
+					result.add(1, 0, ours.size(), ConflictState.NO_CONFLICT);
+					break;
+				case THEIRS:
+					result.add(2, 0, 0, ConflictState.NO_CONFLICT);
+					break;
+				default:
+					// Let our complete content conflict with empty text
+					result.add(1, 0, ours.size(),
+							ConflictState.FIRST_CONFLICTING_RANGE);
+					result.add(2, 0, 0, ConflictState.NEXT_CONFLICTING_RANGE);
+					break;
+				}
+			} else {
 				// they deleted, we didn't modify -> Let their deletion win
 				result.add(2, 0, 0, ConflictState.NO_CONFLICT);
+			}
 			return result;
 		}
 
@@ -249,12 +303,26 @@
 
 				// Add the conflict (Only if there is a conflict left to report)
 				if (minBSize > 0 || BSizeDelta != 0) {
-					result.add(1, oursBeginB + commonPrefix, oursEndB
-							- commonSuffix,
-							ConflictState.FIRST_CONFLICTING_RANGE);
-					result.add(2, theirsBeginB + commonPrefix, theirsEndB
-							- commonSuffix,
-							ConflictState.NEXT_CONFLICTING_RANGE);
+					switch (strategy) {
+					case OURS:
+						result.add(1, oursBeginB + commonPrefix,
+								oursEndB - commonSuffix,
+								ConflictState.NO_CONFLICT);
+						break;
+					case THEIRS:
+						result.add(2, theirsBeginB + commonPrefix,
+								theirsEndB - commonSuffix,
+								ConflictState.NO_CONFLICT);
+						break;
+					default:
+						result.add(1, oursBeginB + commonPrefix,
+								oursEndB - commonSuffix,
+								ConflictState.FIRST_CONFLICTING_RANGE);
+						result.add(2, theirsBeginB + commonPrefix,
+								theirsEndB - commonSuffix,
+								ConflictState.NEXT_CONFLICTING_RANGE);
+						break;
+					}
 				}
 
 				// Add the common lines at end of conflict
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
index 4bfb38d..7767662 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
@@ -37,6 +37,7 @@
 import java.util.List;
 import java.util.Map;
 
+import org.eclipse.jgit.annotations.NonNull;
 import org.eclipse.jgit.attributes.Attributes;
 import org.eclipse.jgit.diff.DiffAlgorithm;
 import org.eclipse.jgit.diff.DiffAlgorithm.SupportedAlgorithm;
@@ -268,6 +269,13 @@
 	private int inCoreLimit;
 
 	/**
+	 * The {@link ContentMergeStrategy} to use for "resolve" and "recursive"
+	 * merges.
+	 */
+	@NonNull
+	private ContentMergeStrategy contentStrategy = ContentMergeStrategy.CONFLICT;
+
+	/**
 	 * Keeps {@link CheckoutMetadata} for {@link #checkout()} and
 	 * {@link #cleanUp()}.
 	 */
@@ -344,6 +352,29 @@
 		dircache = DirCache.newInCore();
 	}
 
+	/**
+	 * Retrieves the content merge strategy for content conflicts.
+	 *
+	 * @return the {@link ContentMergeStrategy} in effect
+	 * @since 5.12
+	 */
+	@NonNull
+	public ContentMergeStrategy getContentMergeStrategy() {
+		return contentStrategy;
+	}
+
+	/**
+	 * Sets the content merge strategy for content conflicts.
+	 *
+	 * @param strategy
+	 *            {@link ContentMergeStrategy} to use
+	 * @since 5.12
+	 */
+	public void setContentMergeStrategy(ContentMergeStrategy strategy) {
+		contentStrategy = strategy == null ? ContentMergeStrategy.CONFLICT
+				: strategy;
+	}
+
 	/** {@inheritDoc} */
 	@Override
 	protected boolean mergeImpl() throws IOException {
@@ -644,15 +675,19 @@
 				}
 				return true;
 			}
-			// FileModes are not mergeable. We found a conflict on modes.
-			// For conflicting entries we don't know lastModified and
-			// length.
-			add(tw.getRawPath(), base, DirCacheEntry.STAGE_1, EPOCH, 0);
-			add(tw.getRawPath(), ours, DirCacheEntry.STAGE_2, EPOCH, 0);
-			add(tw.getRawPath(), theirs, DirCacheEntry.STAGE_3, EPOCH, 0);
-			unmergedPaths.add(tw.getPathString());
-			mergeResults.put(tw.getPathString(),
-					new MergeResult<>(Collections.<RawText> emptyList()));
+			if (!ignoreConflicts) {
+				// FileModes are not mergeable. We found a conflict on modes.
+				// For conflicting entries we don't know lastModified and
+				// length.
+				// This path can be skipped on ignoreConflicts, so the caller
+				// could use virtual commit.
+				add(tw.getRawPath(), base, DirCacheEntry.STAGE_1, EPOCH, 0);
+				add(tw.getRawPath(), ours, DirCacheEntry.STAGE_2, EPOCH, 0);
+				add(tw.getRawPath(), theirs, DirCacheEntry.STAGE_3, EPOCH, 0);
+				unmergedPaths.add(tw.getPathString());
+				mergeResults.put(tw.getPathString(),
+						new MergeResult<>(Collections.emptyList()));
+			}
 			return true;
 		}
 
@@ -757,6 +792,19 @@
 				unmergedPaths.add(tw.getPathString());
 				return true;
 			} else if (!attributes.canBeContentMerged()) {
+				// File marked as binary
+				switch (getContentMergeStrategy()) {
+				case OURS:
+					keep(ourDce);
+					return true;
+				case THEIRS:
+					DirCacheEntry theirEntry = add(tw.getRawPath(), theirs,
+							DirCacheEntry.STAGE_0, EPOCH, 0);
+					addToCheckout(tw.getPathString(), theirEntry, attributes);
+					return true;
+				default:
+					break;
+				}
 				add(tw.getRawPath(), base, DirCacheEntry.STAGE_1, EPOCH, 0);
 				add(tw.getRawPath(), ours, DirCacheEntry.STAGE_2, EPOCH, 0);
 				add(tw.getRawPath(), theirs, DirCacheEntry.STAGE_3, EPOCH, 0);
@@ -771,8 +819,26 @@
 				return false;
 			}
 
-			MergeResult<RawText> result = contentMerge(base, ours, theirs,
-					attributes);
+			MergeResult<RawText> result = null;
+			try {
+				result = contentMerge(base, ours, theirs, attributes,
+						getContentMergeStrategy());
+			} catch (BinaryBlobException e) {
+				switch (getContentMergeStrategy()) {
+				case OURS:
+					keep(ourDce);
+					return true;
+				case THEIRS:
+					DirCacheEntry theirEntry = add(tw.getRawPath(), theirs,
+							DirCacheEntry.STAGE_0, EPOCH, 0);
+					addToCheckout(tw.getPathString(), theirEntry, attributes);
+					return true;
+				default:
+					result = new MergeResult<>(Collections.emptyList());
+					result.setContainsConflicts(true);
+					break;
+				}
+			}
 			if (ignoreConflicts) {
 				result.setContainsConflicts(false);
 			}
@@ -799,9 +865,16 @@
 					mergeResults.put(tw.getPathString(), result);
 					unmergedPaths.add(tw.getPathString());
 				} else {
-					MergeResult<RawText> result = contentMerge(base, ours,
-							theirs, attributes);
-
+					// Content merge strategy does not apply to delete-modify
+					// conflicts!
+					MergeResult<RawText> result;
+					try {
+						result = contentMerge(base, ours, theirs, attributes,
+								ContentMergeStrategy.CONFLICT);
+					} catch (BinaryBlobException e) {
+						result = new MergeResult<>(Collections.emptyList());
+						result.setContainsConflicts(true);
+					}
 					if (ignoreConflicts) {
 						// In case a conflict is detected the working tree file
 						// is again filled with new content (containing conflict
@@ -863,32 +936,26 @@
 	 * @param ours
 	 * @param theirs
 	 * @param attributes
+	 * @param strategy
 	 *
 	 * @return the result of the content merge
+	 * @throws BinaryBlobException
+	 *             if any of the blobs looks like a binary blob
 	 * @throws IOException
 	 */
 	private MergeResult<RawText> contentMerge(CanonicalTreeParser base,
 			CanonicalTreeParser ours, CanonicalTreeParser theirs,
-			Attributes attributes)
-			throws IOException {
-		RawText baseText;
-		RawText ourText;
-		RawText theirsText;
-
-		try {
-			baseText = base == null ? RawText.EMPTY_TEXT : getRawText(
-							base.getEntryObjectId(), attributes);
-			ourText = ours == null ? RawText.EMPTY_TEXT : getRawText(
-							ours.getEntryObjectId(), attributes);
-			theirsText = theirs == null ? RawText.EMPTY_TEXT : getRawText(
-							theirs.getEntryObjectId(), attributes);
-		} catch (BinaryBlobException e) {
-			MergeResult<RawText> r = new MergeResult<>(Collections.<RawText>emptyList());
-			r.setContainsConflicts(true);
-			return r;
-		}
-		return (mergeAlgorithm.merge(RawTextComparator.DEFAULT, baseText,
-				ourText, theirsText));
+			Attributes attributes, ContentMergeStrategy strategy)
+			throws BinaryBlobException, IOException {
+		RawText baseText = base == null ? RawText.EMPTY_TEXT
+				: getRawText(base.getEntryObjectId(), attributes);
+		RawText ourText = ours == null ? RawText.EMPTY_TEXT
+				: getRawText(ours.getEntryObjectId(), attributes);
+		RawText theirsText = theirs == null ? RawText.EMPTY_TEXT
+				: getRawText(theirs.getEntryObjectId(), attributes);
+		mergeAlgorithm.setContentMergeStrategy(strategy);
+		return mergeAlgorithm.merge(RawTextComparator.DEFAULT, baseText,
+				ourText, theirsText);
 	}
 
 	private boolean isIndexDirty() {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java
index 631d861..5d5ba12 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java
@@ -32,10 +32,13 @@
 import org.eclipse.jgit.lib.AsyncObjectLoaderQueue;
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.MutableObjectId;
+import org.eclipse.jgit.lib.NullProgressMonitor;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.ObjectIdOwnerMap;
 import org.eclipse.jgit.lib.ObjectLoader;
 import org.eclipse.jgit.lib.ObjectReader;
+import org.eclipse.jgit.lib.ProgressMonitor;
+import org.eclipse.jgit.lib.Ref;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.revwalk.filter.RevFilter;
 import org.eclipse.jgit.treewalk.filter.TreeFilter;
@@ -181,6 +184,12 @@
 
 	boolean shallowCommitsInitialized;
 
+	private enum GetMergedIntoStrategy {
+		RETURN_ON_FIRST_FOUND,
+		RETURN_ON_FIRST_NOT_FOUND,
+		EVALUATE_ALL
+	}
+
 	/**
 	 * Create a new revision walker for a given repository.
 	 *
@@ -425,6 +434,145 @@
 	}
 
 	/**
+	 * Determine the Refs into which a commit is merged.
+	 * <p>
+	 * A commit is merged into a ref if we can find a path of commits that leads
+	 * from that specific ref and ends at <code>commit</code>.
+	 * <p>
+	 *
+	 * @param commit
+	 *            commit the caller thinks is reachable from <code>refs</code>.
+	 * @param refs
+	 *            refs to start iteration from, and which is most likely a
+	 *            descendant (child) of <code>commit</code>.
+	 * @return list of refs that are reachable from <code>commit</code>.
+	 * @throws java.io.IOException
+	 *             a pack file or loose object could not be read.
+	 * @since 5.12
+	 */
+	public List<Ref> getMergedInto(RevCommit commit, Collection<Ref> refs)
+			throws IOException{
+		return getMergedInto(commit, refs, NullProgressMonitor.INSTANCE);
+	}
+
+	/**
+	 * Determine the Refs into which a commit is merged.
+	 * <p>
+	 * A commit is merged into a ref if we can find a path of commits that leads
+	 * from that specific ref and ends at <code>commit</code>.
+	 * <p>
+	 *
+	 * @param commit
+	 *            commit the caller thinks is reachable from <code>refs</code>.
+	 * @param refs
+	 *            refs to start iteration from, and which is most likely a
+	 *            descendant (child) of <code>commit</code>.
+	 * @param monitor
+	 *            the callback for progress and cancellation
+	 * @return list of refs that are reachable from <code>commit</code>.
+	 * @throws java.io.IOException
+	 *             a pack file or loose object could not be read.
+	 * @since 5.12
+	 */
+	public List<Ref> getMergedInto(RevCommit commit, Collection<Ref> refs,
+					ProgressMonitor monitor) throws IOException{
+		return getMergedInto(commit, refs,
+				GetMergedIntoStrategy.EVALUATE_ALL,
+				monitor);
+	}
+
+	/**
+	 * Determine if a <code>commit</code> is merged into any of the given
+	 * <code>refs</code>.
+	 *
+	 * @param commit
+	 *            commit the caller thinks is reachable from <code>refs</code>.
+	 * @param refs
+	 *            refs to start iteration from, and which is most likely a
+	 *            descendant (child) of <code>commit</code>.
+	 * @return true if commit is merged into any of the refs; false otherwise.
+	 * @throws java.io.IOException
+	 *             a pack file or loose object could not be read.
+	 * @since 5.12
+	 */
+	public boolean isMergedIntoAny(RevCommit commit, Collection<Ref> refs)
+			throws IOException {
+		return getMergedInto(commit, refs,
+				GetMergedIntoStrategy.RETURN_ON_FIRST_FOUND,
+				NullProgressMonitor.INSTANCE).size() > 0;
+	}
+
+	/**
+	 * Determine if a <code>commit</code> is merged into all of the given
+	 * <code>refs</code>.
+	 *
+	 * @param commit
+	 *            commit the caller thinks is reachable from <code>refs</code>.
+	 * @param refs
+	 *            refs to start iteration from, and which is most likely a
+	 *            descendant (child) of <code>commit</code>.
+	 * @return true if commit is merged into all of the refs; false otherwise.
+	 * @throws java.io.IOException
+	 *             a pack file or loose object could not be read.
+	 * @since 5.12
+	 */
+	public boolean isMergedIntoAll(RevCommit commit, Collection<Ref> refs)
+			throws IOException {
+		return getMergedInto(commit, refs,
+				GetMergedIntoStrategy.RETURN_ON_FIRST_NOT_FOUND,
+				NullProgressMonitor.INSTANCE).size()
+				== refs.size();
+	}
+
+	private List<Ref> getMergedInto(RevCommit needle, Collection<Ref> haystacks,
+				Enum returnStrategy, ProgressMonitor monitor) throws IOException {
+		List<Ref> result = new ArrayList<>();
+		RevFilter oldRF = filter;
+		TreeFilter oldTF = treeFilter;
+		try {
+			finishDelayedFreeFlags();
+			filter = RevFilter.ALL;
+			treeFilter = TreeFilter.ALL;
+			for (Ref r: haystacks) {
+				if (monitor.isCancelled()) {
+					return result;
+				}
+				monitor.update(1);
+				RevObject o = parseAny(r.getObjectId());
+				if (!(o instanceof RevCommit)) {
+					continue;
+				}
+				RevCommit c = (RevCommit) o;
+				resetRetain(RevFlag.UNINTERESTING);
+				markStart(c);
+				boolean commitFound = false;
+				RevCommit next;
+				while ((next = next()) != null) {
+					if (References.isSameObject(next, needle)) {
+						result.add(r);
+						if (returnStrategy == GetMergedIntoStrategy.RETURN_ON_FIRST_FOUND) {
+							return result;
+						}
+						commitFound = true;
+						break;
+					}
+				}
+				if(!commitFound){
+					markUninteresting(c);
+					if (returnStrategy == GetMergedIntoStrategy.RETURN_ON_FIRST_NOT_FOUND) {
+						return result;
+					}
+				}
+			}
+		} finally {
+			reset(~freeFlags & APP_FLAGS);
+			filter = oldRF;
+			treeFilter = oldTF;
+		}
+		return result;
+	}
+
+	/**
 	 * Pop the next most recent commit.
 	 *
 	 * @return next most recent commit; null if traversal is over.
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalkUtils.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalkUtils.java
index 3feb9c5..e52e916 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalkUtils.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalkUtils.java
@@ -159,15 +159,12 @@
 		// Make sure commit is from the same RevWalk
 		commit = revWalk.parseCommit(commit.getId());
 		revWalk.reset();
-		List<Ref> result = new ArrayList<>();
+		List<Ref> filteredRefs = new ArrayList<>();
 		monitor.beginTask(JGitText.get().searchForReachableBranches,
 				refs.size());
 		final int SKEW = 24*3600; // one day clock skew
 
 		for (Ref ref : refs) {
-			if (monitor.isCancelled())
-				return result;
-			monitor.update(1);
 			RevObject maybehead = revWalk.parseAny(ref.getObjectId());
 			if (!(maybehead instanceof RevCommit))
 				continue;
@@ -179,9 +176,9 @@
 			if (headCommit.getCommitTime() + SKEW < commit.getCommitTime())
 				continue;
 
-			if (revWalk.isMergedInto(commit, headCommit))
-				result.add(ref);
+			filteredRefs.add(ref);
 		}
+		List<Ref> result = revWalk.getMergedInto(commit, filteredRefs, monitor);
 		monitor.endTask();
 		return result;
 	}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java
index 2e5d18d..0710d3f 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java
@@ -35,6 +35,7 @@
 
 import java.io.BufferedInputStream;
 import java.io.BufferedReader;
+import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
@@ -53,8 +54,6 @@
 import java.net.URLDecoder;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.InvalidPathException;
-import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.security.GeneralSecurityException;
 import java.security.cert.CertPathBuilderException;
 import java.security.cert.CertPathValidatorException;
@@ -101,6 +100,7 @@
 import org.eclipse.jgit.transport.http.HttpConnection;
 import org.eclipse.jgit.transport.http.HttpConnectionFactory;
 import org.eclipse.jgit.transport.http.HttpConnectionFactory2;
+import org.eclipse.jgit.util.FS;
 import org.eclipse.jgit.util.HttpSupport;
 import org.eclipse.jgit.util.IO;
 import org.eclipse.jgit.util.RawParseUtils;
@@ -1157,17 +1157,28 @@
 		return new TransportException(uri, why);
 	}
 
-	private static NetscapeCookieFile getCookieFileFromConfig(
+	private NetscapeCookieFile getCookieFileFromConfig(
 			HttpConfig config) {
-		if (!StringUtils.isEmptyOrNull(config.getCookieFile())) {
+		String path = config.getCookieFile();
+		if (!StringUtils.isEmptyOrNull(path)) {
 			try {
-				Path cookieFilePath = Paths.get(config.getCookieFile());
+				FS fs = local != null ? local.getFS() : FS.DETECTED;
+				File f;
+				if (path.startsWith("~/")) { //$NON-NLS-1$
+					f = fs.resolve(fs.userHome(), path.substring(2));
+				} else {
+					f = new File(path);
+					if (!f.isAbsolute()) {
+						f = fs.resolve(null, path);
+						LOG.warn(MessageFormat.format(
+								JGitText.get().cookieFilePathRelative, f));
+					}
+				}
 				return NetscapeCookieFileCache.getInstance(config)
-						.getEntry(cookieFilePath);
+						.getEntry(f.toPath());
 			} catch (InvalidPathException e) {
 				LOG.warn(MessageFormat.format(
-						JGitText.get().couldNotReadCookieFile,
-						config.getCookieFile()), e);
+						JGitText.get().couldNotReadCookieFile, path), e);
 			}
 		}
 		return null;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/UsernamePasswordCredentialsProvider.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/UsernamePasswordCredentialsProvider.java
index 979961f..c0de42c 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/UsernamePasswordCredentialsProvider.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/UsernamePasswordCredentialsProvider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010, Google Inc. and others
+ * Copyright (C) 2010, 2021 Google Inc. and others
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Distribution License v. 1.0 which is available at
@@ -58,14 +58,21 @@
 	@Override
 	public boolean supports(CredentialItem... items) {
 		for (CredentialItem i : items) {
-			if (i instanceof CredentialItem.Username)
+			if (i instanceof CredentialItem.InformationalMessage) {
 				continue;
-
-			else if (i instanceof CredentialItem.Password)
+			}
+			if (i instanceof CredentialItem.Username) {
 				continue;
-
-			else
-				return false;
+			}
+			if (i instanceof CredentialItem.Password) {
+				continue;
+			}
+			if (i instanceof CredentialItem.StringType) {
+				if (i.getPromptText().equals("Password: ")) { //$NON-NLS-1$
+					continue;
+				}
+			}
+			return false;
 		}
 		return true;
 	}
@@ -75,6 +82,9 @@
 	public boolean get(URIish uri, CredentialItem... items)
 			throws UnsupportedCredentialItem {
 		for (CredentialItem i : items) {
+			if (i instanceof CredentialItem.InformationalMessage) {
+				continue;
+			}
 			if (i instanceof CredentialItem.Username) {
 				((CredentialItem.Username) i).setValue(username);
 				continue;
diff --git a/pom.xml b/pom.xml
index 5dfd2a7..3e4d7d4 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>5.11.1-SNAPSHOT</version>
+  <version>5.12.0-SNAPSHOT</version>
 
   <name>JGit - Parent</name>
   <url>${jgit-url}</url>
@@ -151,7 +151,7 @@
     <maven.compiler.target>1.8</maven.compiler.target>
     <bundle-manifest>${project.build.directory}/META-INF/MANIFEST.MF</bundle-manifest>
 
-    <jgit-last-release-version>5.10.0.202012080955-r</jgit-last-release-version>
+    <jgit-last-release-version>5.11.0.202103091610-r</jgit-last-release-version>
     <apache-sshd-version>2.6.0</apache-sshd-version>
     <jsch-version>0.1.55</jsch-version>
     <jzlib-version>1.1.1</jzlib-version>
@@ -162,8 +162,8 @@
     <commons-compress-version>1.19</commons-compress-version>
     <osgi-core-version>4.3.1</osgi-core-version>
     <servlet-api-version>3.1.0</servlet-api-version>
-    <jetty-version>9.4.36.v20210114</jetty-version>
-    <japicmp-version>0.14.4</japicmp-version>
+    <jetty-version>9.4.40.v20210413</jetty-version>
+    <japicmp-version>0.15.3</japicmp-version>
     <httpclient-version>4.5.13</httpclient-version>
     <httpcore-version>4.4.14</httpcore-version>
     <slf4j-version>1.7.30</slf4j-version>
@@ -172,7 +172,7 @@
     <tycho-extras-version>1.7.0</tycho-extras-version>
     <gson-version>2.8.6</gson-version>
     <bouncycastle-version>1.65</bouncycastle-version>
-    <spotbugs-maven-plugin-version>4.2.0</spotbugs-maven-plugin-version>
+    <spotbugs-maven-plugin-version>4.2.2</spotbugs-maven-plugin-version>
     <maven-project-info-reports-plugin-version>3.1.1</maven-project-info-reports-plugin-version>
     <maven-jxr-plugin-version>3.0.0</maven-jxr-plugin-version>
     <maven-surefire-plugin-version>3.0.0-M5</maven-surefire-plugin-version>
@@ -355,7 +355,7 @@
             <dependency><!-- add support for ssh/scp -->
               <groupId>org.apache.maven.wagon</groupId>
               <artifactId>wagon-ssh</artifactId>
-              <version>3.4.2</version>
+              <version>3.4.3</version>
             </dependency>
           </dependencies>
         </plugin>
@@ -397,7 +397,7 @@
         <plugin>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-maven-plugin</artifactId>
-          <version>2.4.1</version>
+          <version>2.4.4</version>
         </plugin>
         <plugin>
           <groupId>org.eclipse.dash</groupId>
@@ -900,7 +900,7 @@
               <dependency>
                 <groupId>org.eclipse.jdt</groupId>
                 <artifactId>ecj</artifactId>
-                <version>3.24.0</version>
+                <version>3.25.0</version>
               </dependency>
             </dependencies>
           </plugin>