Merge branch 'stable-6.5' into stable-6.6
* stable-6.5:
Checkout: better directory handling
Change-Id: I1712191514b8c1b9ea048974376a6765ff7970c7
diff --git a/.bazelrc b/.bazelrc
index e6c3dc6..5e1df62 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -11,10 +11,11 @@
build --tool_java_runtime_version=remotejdk_11
# Builds and executes on RBE using remotejdk_11
-build:remote --java_language_version=11
-build:remote --java_runtime_version=remotejdk_11
-build:remote --tool_java_language_version=11
-build:remote --tool_java_runtime_version=remotejdk_11
+build:remote11 --java_language_version=11
+build:remote11 --java_runtime_version=remotejdk_11
+build:remote11 --tool_java_language_version=11
+build:remote11 --tool_java_runtime_version=remotejdk_11
+build:remote11 --config=remote
# Builds using remote_jdk17, executes using remote_jdk11 or local_jdk
build:java17 --java_language_version=17
@@ -27,6 +28,7 @@
build:remote17 --java_runtime_version=remotejdk_17
build:remote17 --tool_java_language_version=17
build:remote17 --tool_java_runtime_version=remotejdk_17
+build:remote17 --config=remote
test --build_tests_only
test --test_output=errors
diff --git a/.bazelversion b/.bazelversion
index 0062ac9..6abaeb2 100644
--- a/.bazelversion
+++ b/.bazelversion
@@ -1 +1 @@
-5.0.0
+6.2.0
diff --git a/.mailmap b/.mailmap
index f0af49b..7116ebb 100644
--- a/.mailmap
+++ b/.mailmap
@@ -17,3 +17,4 @@
Shawn Pearce <spearce@spearce.org> Shawn Pearce <sop@google.com>
Shawn Pearce <spearce@spearce.org> Shawn O. Pearce <spearce@spearce.org>
Terry Parker <tparker@google.com> tparker <tparker@google.com>
+Thomas Wolf <twolf@apache.org> Thomas Wolf <thomas.wolf@paranor.ch>
diff --git a/Documentation/config-options.md b/Documentation/config-options.md
index 38ce324..36b25c8 100644
--- a/Documentation/config-options.md
+++ b/Documentation/config-options.md
@@ -50,6 +50,12 @@
| `core.trustPackedRefsStat` | `unset` | ⃞ | Whether to trust the file attributes (Java equivalent of stat command on *nix) of the packed-refs file. If `never` JGit will ignore the file attributes of the packed-refs file and always read it. If `always` JGit will trust the file attributes of the packed-refs file and will only read it if a file attribute has changed. `after_open` behaves the same as `always`, except that the packed-refs file is opened and closed before its file attributes are considered. An open/close of the packed-refs file is known to refresh its file attributes, at least on some NFS clients. If `unset`, JGit will use the behavior described in `trustFolderStat`. |
| `core.worktree` | Root directory of the working tree if it is not the parent directory of the `.git` directory | ✅ | The path to the root of the working tree. |
+## __fetch__ options
+
+| option | default | git option | description |
+|---------|---------|------------|-------------|
+| `fetch.useNegotiationTip` | `false` | ✅ | When enabled it restricts the client negotiation on unrelated branches i.e. only send haves for the refs that the client is interested in fetching. |
+
## __gc__ options
| option | default | git option | description |
diff --git a/WORKSPACE b/WORKSPACE
index 8e7b81c..ee4deef 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -74,8 +74,8 @@
maven_jar(
name = "javaewah",
- artifact = "com.googlecode.javaewah:JavaEWAH:1.1.13",
- sha1 = "32cd724a42dc73f99ca08453d11a4bb83e0034c7",
+ artifact = "com.googlecode.javaewah:JavaEWAH:1.2.3",
+ sha1 = "13a27c856e0c8808cee9a64032c58eee11c3adc9",
)
maven_jar(
@@ -90,36 +90,36 @@
sha1 = "51cf043c87253c9f58b539c9f7e44c8894223850",
)
-SSHD_VERS = "2.9.2"
+SSHD_VERS = "2.10.0"
maven_jar(
name = "sshd-osgi",
artifact = "org.apache.sshd:sshd-osgi:" + SSHD_VERS,
- sha1 = "bac0415734519b2fe433fea196017acf7ed32660",
+ sha1 = "03677ac1da780b7bdb682da50b762d79ea0d940d",
)
maven_jar(
name = "sshd-sftp",
artifact = "org.apache.sshd:sshd-sftp:" + SSHD_VERS,
- sha1 = "7f9089c87b3b44f19998252fd3b68637e3322920",
+ sha1 = "88707339ac0693d48df0ec1bafb84c78d792ed08",
)
maven_jar(
name = "jna",
- artifact = "net.java.dev.jna:jna:5.12.1",
- sha1 = "b1e93a735caea94f503e95e6fe79bf9cdc1e985d",
+ artifact = "net.java.dev.jna:jna:5.13.0",
+ sha1 = "1200e7ebeedbe0d10062093f32925a912020e747",
)
maven_jar(
name = "jna-platform",
- artifact = "net.java.dev.jna:jna-platform:5.12.1",
- sha1 = "097406a297c852f4a41e688a176ec675f72e8329",
+ artifact = "net.java.dev.jna:jna-platform:5.13.0",
+ sha1 = "88e9a306715e9379f3122415ef4ae759a352640d",
)
maven_jar(
name = "commons-codec",
- artifact = "commons-codec:commons-codec:1.14",
- sha1 = "3cb1181b2141a7e752f5bdc998b7ef1849f726cf",
+ artifact = "commons-codec:commons-codec:1.15",
+ sha1 = "49d94806b6e3dc933dacbd8acb0fdbab8ebd1e5d",
)
maven_jar(
@@ -130,26 +130,26 @@
maven_jar(
name = "log-api",
- artifact = "org.slf4j:slf4j-api:1.7.30",
- sha1 = "b5a4b6d16ab13e34a88fae84c35cd5d68cac922c",
+ artifact = "org.slf4j:slf4j-api:1.7.36",
+ sha1 = "6c62681a2f655b49963a5983b8b0950a6120ae14",
)
maven_jar(
name = "slf4j-simple",
- artifact = "org.slf4j:slf4j-simple:1.7.30",
- sha1 = "e606eac955f55ecf1d8edcccba04eb8ac98088dd",
+ artifact = "org.slf4j:slf4j-simple:1.7.36",
+ sha1 = "a41f9cfe6faafb2eb83a1c7dd2d0dfd844e2a936",
)
maven_jar(
name = "servlet-api",
- artifact = "javax.servlet:javax.servlet-api:4.0.0",
- sha1 = "60200affc2fe0165136ed3690faf00b66aed581a",
+ artifact = "jakarta.servlet:jakarta.servlet-api:4.0.4",
+ sha1 = "b8a1142e04838fe54194049c6e7a18dae8f9b960",
)
maven_jar(
name = "commons-compress",
- artifact = "org.apache.commons:commons-compress:1.22",
- sha1 = "691a8b4e6cf4248c3bc72c8b719337d5cb7359fa",
+ artifact = "org.apache.commons:commons-compress:1.23.0",
+ sha1 = "4af2060ea9b0c8b74f1854c6cafe4d43cfc161fc",
)
maven_jar(
@@ -184,8 +184,8 @@
maven_jar(
name = "assertj-core",
- artifact = "org.assertj:assertj-core:3.20.2",
- sha1 = "66f1f0ebd6db2b24e4a731979171da16ba919cd5",
+ artifact = "org.assertj:assertj-core:3.24.2",
+ sha1 = "ebbf338e33f893139459ce5df023115971c2786f",
)
BYTE_BUDDY_VERSION = "1.12.18"
@@ -214,83 +214,83 @@
sha1 = "b3add478d4382b78ea20b1671390a858002feb6c",
)
-JETTY_VER = "10.0.13"
+JETTY_VER = "10.0.15"
maven_jar(
name = "jetty-servlet",
artifact = "org.eclipse.jetty:jetty-servlet:" + JETTY_VER,
- sha1 = "a6ee6e48e98377863aa80f41ea979df678b17966",
- src_sha1 = "5a01db2e1bae632879e9b90e845ae946059b46c9",
+ sha1 = "17e21100d9eabae2c0f560ab2c1d5f0edfc4a57b",
+ src_sha1 = "989ecc16914e7c8f9f78715dd97d0c511d77a99f",
)
maven_jar(
name = "jetty-security",
artifact = "org.eclipse.jetty:jetty-security:" + JETTY_VER,
- sha1 = "6d4c88cf068709d9f2499ca417b23f3f835b0c43",
- src_sha1 = "887e7a7c457e149df9c23db89c7d2425c4444ccf",
+ sha1 = "ae9c2fd327090fc749a6656109adf88f84f05854",
+ src_sha1 = "1cae575fc9f3d9271507642606603cca7dc753e8",
)
maven_jar(
name = "jetty-server",
artifact = "org.eclipse.jetty:jetty-server:" + JETTY_VER,
- sha1 = "f472705ebfce7e9a5b6cb8cbb84e73767e35fad7",
- src_sha1 = "2689f8e616282b19f34d43f89800f67490ae65fa",
+ sha1 = "d1e941f30300d64b122d5346f1599ecaa8e270ba",
+ src_sha1 = "7b04c7d3dc702608306935607bf73ac871816010",
)
maven_jar(
name = "jetty-http",
artifact = "org.eclipse.jetty:jetty-http:" + JETTY_VER,
- sha1 = "b3dc7ec1da090106031dd36cb1e2637a7fb6ce1c",
- src_sha1 = "1bbb620e34218584bfdf11542e2b46781437335d",
+ sha1 = "53c4702201c33501bc37a982e5325b5f11084a4e",
+ src_sha1 = "2cf03c695ea19c1af5668f5c97dac59e3027eb55",
)
maven_jar(
name = "jetty-io",
artifact = "org.eclipse.jetty:jetty-io:" + JETTY_VER,
- sha1 = "be9d7f226022b02e174a83d597d088e22e12d365",
- src_sha1 = "48f5b1ce8570a9d560e62c39170e754288a1d290",
+ sha1 = "4481d9593bb89c4da016e49463b0d477faca06dc",
+ src_sha1 = "c9f241cce63ac929d4b8bd859c761ba83f4a3124",
)
maven_jar(
name = "jetty-util",
artifact = "org.eclipse.jetty:jetty-util:" + JETTY_VER,
- sha1 = "35caf3afb3cca22ca4bc36908bf82e6d973c5be4",
- src_sha1 = "9d7c19deb76c0247ad0d25afce6e4c0d681d2af0",
+ sha1 = "eb8901d419e83f2f06809e0cdceaf38b06426f01",
+ src_sha1 = "757ee2bd100c5bd20aebc7e2fdc4ceb99f23b451",
)
maven_jar(
name = "jetty-util-ajax",
artifact = "org.eclipse.jetty:jetty-util-ajax:" + JETTY_VER,
- sha1 = "bc52bc38cb76b5c260ec109661ebcb02393d83a7",
- src_sha1 = "b229198672cfb765ce7571e5e0e855e01170f881",
+ sha1 = "0cde62dd87845dd6c0c7f07db6c901e7d020653b",
+ src_sha1 = "135448f8b3b3b06f7f3312d222992525ae4bdd25",
)
-BOUNCYCASTLE_VER = "1.72"
+BOUNCYCASTLE_VER = "1.73"
maven_jar(
name = "bcpg",
artifact = "org.bouncycastle:bcpg-jdk18on:" + BOUNCYCASTLE_VER,
- sha1 = "1a36a1740d07869161f6f0d01fae8d72dd1d8320",
- src_sha1 = "fe19ed35a28b345d00459de55cd20ad9e1385a4f",
+ sha1 = "2838f8c35e6e716349ce780c9c88271cab32065d",
+ src_sha1 = "3ea8d8e88569024cb37c303384d33f12e8be1ca3",
)
maven_jar(
name = "bcprov",
artifact = "org.bouncycastle:bcprov-jdk18on:" + BOUNCYCASTLE_VER,
- sha1 = "d8dc62c28a3497d29c93fee3e71c00b27dff41b4",
- src_sha1 = "308b5a8a89c29169390210b7b8e2b2534b27ff19",
+ sha1 = "4bd3de48e5153059fe3f80cbcf86ea221795ee55",
+ src_sha1 = "665f03dc0b10ef2fc90a11c28e48c84a3a9a7323",
)
maven_jar(
name = "bcutil",
artifact = "org.bouncycastle:bcutil-jdk18on:" + BOUNCYCASTLE_VER,
- sha1 = "41f19a69ada3b06fa48781120d8bebe1ba955c77",
- src_sha1 = "fc16dc9eb28a2ee6cbe35ecda6ec7e050ddf3cba",
+ sha1 = "073a680acd04b249a6773f49200092cadb670bf0",
+ src_sha1 = "573ebc8e83bc846e815e68e4c624f2d0aef941b9",
)
maven_jar(
name = "bcpkix",
artifact = "org.bouncycastle:bcpkix-jdk18on:" + BOUNCYCASTLE_VER,
- sha1 = "bb3fdb5162ccd5085e8d7e57fada4d8eaa571f5a",
- src_sha1 = "6fa7015a0be76b270e911bf426abf8efd1c5e42d",
+ sha1 = "fd41dae0f564a93888ed5ade426281de94824717",
+ src_sha1 = "e11d418a87536d6f5a9537f7cb1f15a3e5c505e9",
)
diff --git a/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
index 3ed4d95..9659eb2 100644
--- a/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
@@ -5,13 +5,13 @@
Automatic-Module-Name: org.eclipse.jgit.ant.test
Bundle-SymbolicName: org.eclipse.jgit.ant.test
Bundle-Vendor: %Bundle-Vendor
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-11
Import-Package: org.apache.tools.ant,
- org.eclipse.jgit.ant.tasks;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.junit;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)",
+ org.eclipse.jgit.ant.tasks;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.junit;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)",
org.hamcrest.core;version="[1.1.0,3.0.0)",
org.junit;version="[4.13,5.0.0)"
diff --git a/org.eclipse.jgit.ant.test/pom.xml b/org.eclipse.jgit.ant.test/pom.xml
index 61e1b57..bd0c93c 100644
--- a/org.eclipse.jgit.ant.test/pom.xml
+++ b/org.eclipse.jgit.ant.test/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 1cb6aca..93fdd8d 100644
--- a/org.eclipse.jgit.ant/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ant/META-INF/MANIFEST.MF
@@ -3,13 +3,13 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.ant
Bundle-SymbolicName: org.eclipse.jgit.ant
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-11
Import-Package: org.apache.tools.ant,
- org.eclipse.jgit.storage.file;version="[6.5.1,6.6.0)"
+ org.eclipse.jgit.storage.file;version="[6.6.2,6.7.0)"
Bundle-Localization: plugin
Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.ant;version="6.5.1",
- org.eclipse.jgit.ant.tasks;version="6.5.1";
+Export-Package: org.eclipse.jgit.ant;version="6.6.2",
+ org.eclipse.jgit.ant.tasks;version="6.6.2";
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 9dc6f64..b4e80a3 100644
--- a/org.eclipse.jgit.ant/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ant/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
Bundle-Name: org.eclipse.jgit.ant - Sources
Bundle-SymbolicName: org.eclipse.jgit.ant.source
Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.5.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ant;version="6.5.1.qualifier";roots="."
+Bundle-Version: 6.6.2.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.ant;version="6.6.2.qualifier";roots="."
diff --git a/org.eclipse.jgit.ant/pom.xml b/org.eclipse.jgit.ant/pom.xml
index df42c00..5d9d889 100644
--- a/org.eclipse.jgit.ant/pom.xml
+++ b/org.eclipse.jgit.ant/pom.xml
@@ -15,7 +15,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.jgit.ant</artifactId>
diff --git a/org.eclipse.jgit.archive/META-INF/MANIFEST.MF b/org.eclipse.jgit.archive/META-INF/MANIFEST.MF
index 446b1d5..7f72ee2 100644
--- a/org.eclipse.jgit.archive/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.archive/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.archive
Bundle-SymbolicName: org.eclipse.jgit.archive
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-11
@@ -13,17 +13,17 @@
org.apache.commons.compress.compressors.bzip2;version="[1.4,2.0)",
org.apache.commons.compress.compressors.gzip;version="[1.4,2.0)",
org.apache.commons.compress.compressors.xz;version="[1.4,2.0)",
- org.eclipse.jgit.api;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.nls;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revwalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)",
+ org.eclipse.jgit.api;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.nls;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revwalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)",
org.osgi.framework;version="[1.3.0,2.0.0)"
Bundle-ActivationPolicy: lazy
Bundle-Activator: org.eclipse.jgit.archive.FormatActivator
-Export-Package: org.eclipse.jgit.archive;version="6.5.1";
+Export-Package: org.eclipse.jgit.archive;version="6.6.2";
uses:="org.eclipse.jgit.lib,
org.eclipse.jgit.api,
org.apache.commons.compress.archivers,
org.osgi.framework",
- org.eclipse.jgit.archive.internal;version="6.5.1";x-internal:=true
+ org.eclipse.jgit.archive.internal;version="6.6.2";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 2a1ba49..2ab44a7 100644
--- a/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
Bundle-Name: org.eclipse.jgit.archive - Sources
Bundle-SymbolicName: org.eclipse.jgit.archive.source
Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.5.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.archive;version="6.5.1.qualifier";roots="."
+Bundle-Version: 6.6.2.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.archive;version="6.6.2.qualifier";roots="."
diff --git a/org.eclipse.jgit.archive/pom.xml b/org.eclipse.jgit.archive/pom.xml
index 615b932..06e9559 100644
--- a/org.eclipse.jgit.archive/pom.xml
+++ b/org.eclipse.jgit.archive/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 ae9c6a3..4740238 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>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
<artifactId>org.eclipse.jgit.benchmarks</artifactId>
<packaging>jar</packaging>
diff --git a/org.eclipse.jgit.coverage/pom.xml b/org.eclipse.jgit.coverage/pom.xml
index 34d2d7f..868802c 100644
--- a/org.eclipse.jgit.coverage/pom.xml
+++ b/org.eclipse.jgit.coverage/pom.xml
@@ -14,7 +14,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -27,88 +27,88 @@
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.ant</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.archive</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.http.apache</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.http.server</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.lfs</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.lfs.server</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.pgm</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.ui</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.ssh.apache</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.test</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.ant.test</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.http.test</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.pgm.test</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.lfs.test</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.lfs.server.test</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.ssh.apache.test</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</dependency>
</dependencies>
diff --git a/org.eclipse.jgit.gpg.bc.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.gpg.bc.test/META-INF/MANIFEST.MF
index 175eaba..f70a945 100644
--- a/org.eclipse.jgit.gpg.bc.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.gpg.bc.test/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.gpg.bc.test
Bundle-SymbolicName: org.eclipse.jgit.gpg.bc.test
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-11
@@ -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="[6.5.1,6.6.0)",
- org.eclipse.jgit.gpg.bc.internal.keys;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util.sha1;version="[6.5.1,6.6.0)",
+ org.eclipse.jgit.gpg.bc.internal;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.gpg.bc.internal.keys;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util.sha1;version="[6.6.2,6.7.0)",
org.hamcrest;version="[1.1.0,3.0.0)",
org.junit;version="[4.13,5.0.0)",
org.junit.runner;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.gpg.bc.test/pom.xml b/org.eclipse.jgit.gpg.bc.test/pom.xml
index 9217592..2e6d7c8 100644
--- a/org.eclipse.jgit.gpg.bc.test/pom.xml
+++ b/org.eclipse.jgit.gpg.bc.test/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 23ff36d..1df6959 100644
--- a/org.eclipse.jgit.gpg.bc/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.gpg.bc/META-INF/MANIFEST.MF
@@ -3,10 +3,10 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.gpg.bc
Bundle-SymbolicName: org.eclipse.jgit.gpg.bc;singleton:=true
-Fragment-Host: org.eclipse.jgit;bundle-version="[6.5.1,6.6.0)"
+Fragment-Host: org.eclipse.jgit;bundle-version="[6.6.2,6.7.0)"
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-11
Import-Package: org.bouncycastle.asn1;version="[1.69.0,2.0.0)",
org.bouncycastle.asn1.cryptlib;version="[1.69.0,2.0.0)",
@@ -29,9 +29,9 @@
org.bouncycastle.util;version="[1.69.0,2.0.0)",
org.bouncycastle.util.encoders;version="[1.69.0,2.0.0)",
org.bouncycastle.util.io;version="[1.69.0,2.0.0)",
- org.eclipse.jgit.annotations;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.api.errors;version="[6.5.1,6.6.0)",
+ org.eclipse.jgit.annotations;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.api.errors;version="[6.6.2,6.7.0)",
org.slf4j;version="[1.7.0,2.0.0)"
-Export-Package: org.eclipse.jgit.gpg.bc;version="6.5.1",
- org.eclipse.jgit.gpg.bc.internal;version="6.5.1";x-friends:="org.eclipse.jgit.gpg.bc.test",
- org.eclipse.jgit.gpg.bc.internal.keys;version="6.5.1";x-friends:="org.eclipse.jgit.gpg.bc.test"
+Export-Package: org.eclipse.jgit.gpg.bc;version="6.6.2",
+ org.eclipse.jgit.gpg.bc.internal;version="6.6.2";x-friends:="org.eclipse.jgit.gpg.bc.test",
+ org.eclipse.jgit.gpg.bc.internal.keys;version="6.6.2";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 6604381..5d97eb9 100644
--- a/org.eclipse.jgit.gpg.bc/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.gpg.bc/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
Bundle-Name: org.eclipse.jgit.gpg.bc - Sources
Bundle-SymbolicName: org.eclipse.jgit.gpg.bc.source
Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.5.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.gpg.bc;version="6.5.1.qualifier";roots="."
+Bundle-Version: 6.6.2.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.gpg.bc;version="6.6.2.qualifier";roots="."
diff --git a/org.eclipse.jgit.gpg.bc/pom.xml b/org.eclipse.jgit.gpg.bc/pom.xml
index 59484ac..b44db9f 100644
--- a/org.eclipse.jgit.gpg.bc/pom.xml
+++ b/org.eclipse.jgit.gpg.bc/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 0d798b6..d28b700 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: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-11
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="[6.5.1,6.6.0)",
- org.eclipse.jgit.nls;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.http;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)"
-Export-Package: org.eclipse.jgit.transport.http.apache;version="6.5.1";
+ org.eclipse.jgit.annotations;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.nls;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.http;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)"
+Export-Package: org.eclipse.jgit.transport.http.apache;version="6.6.2";
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 4556a0e..20b3c64 100644
--- a/org.eclipse.jgit.http.apache/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.http.apache/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
Bundle-Name: org.eclipse.jgit.http.apache - Sources
Bundle-SymbolicName: org.eclipse.jgit.http.apache.source
Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.5.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.http.apache;version="6.5.1.qualifier";roots="."
+Bundle-Version: 6.6.2.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.http.apache;version="6.6.2.qualifier";roots="."
diff --git a/org.eclipse.jgit.http.apache/pom.xml b/org.eclipse.jgit.http.apache/pom.xml
index d9a3370..ef7bf99 100644
--- a/org.eclipse.jgit.http.apache/pom.xml
+++ b/org.eclipse.jgit.http.apache/pom.xml
@@ -15,7 +15,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 4fd2f50..43c2879 100644
--- a/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF
@@ -3,13 +3,13 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.http.server
Bundle-SymbolicName: org.eclipse.jgit.http.server
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Localization: plugin
Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.http.server;version="6.5.1",
- org.eclipse.jgit.http.server.glue;version="6.5.1";
+Export-Package: org.eclipse.jgit.http.server;version="6.6.2",
+ org.eclipse.jgit.http.server.glue;version="6.6.2";
uses:="javax.servlet,javax.servlet.http",
- org.eclipse.jgit.http.server.resolver;version="6.5.1";
+ org.eclipse.jgit.http.server.resolver;version="6.6.2";
uses:="org.eclipse.jgit.transport.resolver,
org.eclipse.jgit.lib,
org.eclipse.jgit.transport,
@@ -18,14 +18,14 @@
Bundle-RequiredExecutionEnvironment: JavaSE-11
Import-Package: javax.servlet;version="[2.5.0,5.0.0)",
javax.servlet.http;version="[2.5.0,5.0.0)",
- org.eclipse.jgit.annotations;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.transport.parser;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.nls;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revwalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.resolver;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)"
+ org.eclipse.jgit.annotations;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.transport.parser;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.nls;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revwalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.resolver;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.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 f51e928..4c3d783 100644
--- a/org.eclipse.jgit.http.server/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.http.server/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
Bundle-Name: org.eclipse.jgit.http.server - Sources
Bundle-SymbolicName: org.eclipse.jgit.http.server.source
Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.5.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.http.server;version="6.5.1.qualifier";roots="."
+Bundle-Version: 6.6.2.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.http.server;version="6.6.2.qualifier";roots="."
diff --git a/org.eclipse.jgit.http.server/pom.xml b/org.eclipse.jgit.http.server/pom.xml
index ee395ae..648575b 100644
--- a/org.eclipse.jgit.http.server/pom.xml
+++ b/org.eclipse.jgit.http.server/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.jgit.http.server</artifactId>
@@ -42,8 +42,8 @@
</dependency>
<dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
diff --git a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
index e8beaab..c589d8e 100644
--- a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.http.test
Bundle-SymbolicName: org.eclipse.jgit.http.test
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-11
@@ -26,26 +26,26 @@
org.eclipse.jetty.util.log;version="[10.0.0,11.0.0)",
org.eclipse.jetty.util.security;version="[10.0.0,11.0.0)",
org.eclipse.jetty.util.thread;version="[10.0.0,11.0.0)",
- org.eclipse.jgit.api;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.http.server;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.http.server.glue;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.http.server.resolver;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.junit;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.junit.http;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.nls;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revwalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.http;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.http.apache;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.resolver;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)",
+ org.eclipse.jgit.api;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.http.server;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.http.server.glue;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.http.server.resolver;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.junit;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.junit.http;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.nls;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revwalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.http;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.http.apache;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.resolver;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)",
org.hamcrest;version="[1.1.0,3.0.0)",
org.hamcrest.core;version="[1.1.0,3.0.0)",
org.junit;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.http.test/build.properties b/org.eclipse.jgit.http.test/build.properties
index a12a660..0dc5bae 100644
--- a/org.eclipse.jgit.http.test/build.properties
+++ b/org.eclipse.jgit.http.test/build.properties
@@ -4,4 +4,4 @@
bin.includes = META-INF/,\
.,\
plugin.properties
-additional.bundles = org.slf4j.binding.simple
+additional.bundles = slf4j.simple
diff --git a/org.eclipse.jgit.http.test/pom.xml b/org.eclipse.jgit.http.test/pom.xml
index 70ddc71..a5e677b 100644
--- a/org.eclipse.jgit.http.test/pom.xml
+++ b/org.eclipse.jgit.http.test/pom.xml
@@ -18,7 +18,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.jgit.http.test</artifactId>
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SetAdditionalHeadersTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SetAdditionalHeadersTest.java
index 0ea15d3..cda2b32 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SetAdditionalHeadersTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SetAdditionalHeadersTest.java
@@ -18,6 +18,7 @@
import java.net.URI;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler;
@@ -84,8 +85,15 @@
HashMap<String, String> headers = new HashMap<>();
headers.put("Cookie", "someTokenValue=23gBog34");
headers.put("AnotherKey", "someValue");
- ((TransportHttp) t).setAdditionalHeaders(headers);
+
+ @SuppressWarnings("resource")
+ TransportHttp th = (TransportHttp) t;
+ th.setAdditionalHeaders(headers);
t.openFetch();
+
+ Map<String, String> h = th.getAdditionalHeaders();
+ assertEquals("someTokenValue=23gBog34", h.get("Cookie"));
+ assertEquals("someValue", h.get("AnotherKey"));
}
List<AccessEvent> requests = getRequests();
diff --git a/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF b/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
index 19aa767..98533a4 100644
--- a/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.junit.http
Bundle-SymbolicName: org.eclipse.jgit.junit.http
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Localization: plugin
Bundle-Vendor: %Bundle-Vendor
Bundle-ActivationPolicy: lazy
@@ -21,17 +21,17 @@
org.eclipse.jetty.util.log;version="[10.0.0,11.0.0)",
org.eclipse.jetty.util.security;version="[10.0.0,11.0.0)",
org.eclipse.jetty.util.ssl;version="[10.0.0,11.0.0)",
- org.eclipse.jgit.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.http.server;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.junit;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revwalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.resolver;version="[6.5.1,6.6.0)",
+ org.eclipse.jgit.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.http.server;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.junit;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revwalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.resolver;version="[6.6.2,6.7.0)",
org.junit;version="[4.13,5.0.0)",
org.slf4j.helpers;version="[1.7.0,2.0.0)"
-Export-Package: org.eclipse.jgit.junit.http;version="6.5.1";
+Export-Package: org.eclipse.jgit.junit.http;version="6.6.2";
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 13755c7..d2a0690 100644
--- a/org.eclipse.jgit.junit.http/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.junit.http/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
Bundle-Name: org.eclipse.jgit.junit.http - Sources
Bundle-SymbolicName: org.eclipse.jgit.junit.http.source
Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.5.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.junit.http;version="6.5.1.qualifier";roots="."
+Bundle-Version: 6.6.2.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.junit.http;version="6.6.2.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit.http/pom.xml b/org.eclipse.jgit.junit.http/pom.xml
index b1699d5..6618b63 100644
--- a/org.eclipse.jgit.junit.http/pom.xml
+++ b/org.eclipse.jgit.junit.http/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 15df0bb..8729675 100644
--- a/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
@@ -3,46 +3,46 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.junit.ssh
Bundle-SymbolicName: org.eclipse.jgit.junit.ssh
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Localization: plugin
Bundle-Vendor: %Bundle-Vendor
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-11
-Import-Package: org.apache.sshd.common;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.config.keys;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.file.virtualfs;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.helpers;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.io;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.kex;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.keyprovider;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.session;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.signature;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util.buffer;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util.logging;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util.security;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util.threads;version="[2.9.2,2.10.0)",
- org.apache.sshd.core;version="[2.9.2,2.10.0)",
- org.apache.sshd.server;version="[2.9.2,2.10.0)",
- org.apache.sshd.server.auth;version="[2.9.2,2.10.0)",
- org.apache.sshd.server.auth.gss;version="[2.9.2,2.10.0)",
- org.apache.sshd.server.auth.keyboard;version="[2.9.2,2.10.0)",
- org.apache.sshd.server.auth.password;version="[2.9.2,2.10.0)",
- org.apache.sshd.server.command;version="[2.9.2,2.10.0)",
- org.apache.sshd.server.session;version="[2.9.2,2.10.0)",
- org.apache.sshd.server.shell;version="[2.9.2,2.10.0)",
- org.apache.sshd.server.subsystem;version="[2.9.2,2.10.0)",
- org.apache.sshd.sftp;version="[2.9.2,2.10.0)",
- org.apache.sshd.sftp.server;version="[2.9.2,2.10.0)",
- org.eclipse.jgit.annotations;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.api;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.api.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.junit;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revwalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)",
+Import-Package: org.apache.sshd.common;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.config.keys;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.file.virtualfs;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.helpers;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.io;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.kex;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.keyprovider;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.session;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.signature;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util.buffer;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util.logging;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util.security;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util.threads;version="[2.10.0,2.11.0)",
+ org.apache.sshd.core;version="[2.10.0,2.11.0)",
+ org.apache.sshd.server;version="[2.10.0,2.11.0)",
+ org.apache.sshd.server.auth;version="[2.10.0,2.11.0)",
+ org.apache.sshd.server.auth.gss;version="[2.10.0,2.11.0)",
+ org.apache.sshd.server.auth.keyboard;version="[2.10.0,2.11.0)",
+ org.apache.sshd.server.auth.password;version="[2.10.0,2.11.0)",
+ org.apache.sshd.server.command;version="[2.10.0,2.11.0)",
+ org.apache.sshd.server.session;version="[2.10.0,2.11.0)",
+ org.apache.sshd.server.shell;version="[2.10.0,2.11.0)",
+ org.apache.sshd.server.subsystem;version="[2.10.0,2.11.0)",
+ org.apache.sshd.sftp;version="[2.10.0,2.11.0)",
+ org.apache.sshd.sftp.server;version="[2.10.0,2.11.0)",
+ org.eclipse.jgit.annotations;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.api;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.api.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.junit;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revwalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)",
org.junit;version="[4.13,5.0.0)",
org.junit.experimental.theories;version="[4.13,5.0.0)",
org.slf4j;version="[1.7.0,2.0.0)"
-Export-Package: org.eclipse.jgit.junit.ssh;version="6.5.1"
+Export-Package: org.eclipse.jgit.junit.ssh;version="6.6.2"
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 a0b8e72..1bb45a1 100644
--- a/org.eclipse.jgit.junit.ssh/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.junit.ssh/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
Bundle-Name: org.eclipse.jgit.junit.ssh - Sources
Bundle-SymbolicName: org.eclipse.jgit.junit.ssh.source
Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.5.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.junit.ssh;version="6.5.1.qualifier";roots="."
+Bundle-Version: 6.6.2.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.junit.ssh;version="6.6.2.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit.ssh/pom.xml b/org.eclipse.jgit.junit.ssh/pom.xml
index 50e6e84..1d01ec3 100644
--- a/org.eclipse.jgit.junit.ssh/pom.xml
+++ b/org.eclipse.jgit.junit.ssh/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 479035c..f195156 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: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Localization: plugin
Bundle-Vendor: %Bundle-Vendor
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-11
-Import-Package: org.eclipse.jgit.annotations;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.api;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.api.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.dircache;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.pack;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.merge;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revwalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport;version="6.5.1",
- org.eclipse.jgit.treewalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.treewalk.filter;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util.io;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util.time;version="[6.5.1,6.6.0)",
+Import-Package: org.eclipse.jgit.annotations;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.api;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.api.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.dircache;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.merge;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revwalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport;version="6.6.2",
+ org.eclipse.jgit.treewalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.treewalk.filter;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util.io;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util.time;version="[6.6.2,6.7.0)",
org.junit;version="[4.13,5.0.0)",
org.junit.rules;version="[4.13,5.0.0)",
org.junit.runner;version="[4.13,5.0.0)",
org.junit.runners;version="[4.13,5.0.0)",
org.junit.runners.model;version="[4.13,5.0.0)",
org.slf4j;version="[1.7.0,2.0.0)"
-Export-Package: org.eclipse.jgit.junit;version="6.5.1";
+Export-Package: org.eclipse.jgit.junit;version="6.6.2";
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="6.5.1";uses:="org.eclipse.jgit.util.time"
+ org.eclipse.jgit.junit.time;version="6.6.2";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 388479a..a420be6 100644
--- a/org.eclipse.jgit.junit/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.junit/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
Bundle-Name: org.eclipse.jgit.junit - Sources
Bundle-SymbolicName: org.eclipse.jgit.junit.source
Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.5.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.junit;version="6.5.1.qualifier";roots="."
+Bundle-Version: 6.6.2.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.junit;version="6.6.2.qualifier";roots="."
diff --git a/org.eclipse.jgit.junit/pom.xml b/org.eclipse.jgit.junit/pom.xml
index a320406..a86842b 100644
--- a/org.eclipse.jgit.junit/pom.xml
+++ b/org.eclipse.jgit.junit/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.jgit.junit</artifactId>
diff --git a/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF
index af52de0..432a9f8 100644
--- a/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.lfs.server.test
Bundle-SymbolicName: org.eclipse.jgit.lfs.server.test
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-11
@@ -26,24 +26,24 @@
org.eclipse.jetty.util.log;version="[10.0.0,11.0.0)",
org.eclipse.jetty.util.security;version="[10.0.0,11.0.0)",
org.eclipse.jetty.util.thread;version="[10.0.0,11.0.0)",
- org.eclipse.jgit.api;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.api.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.junit;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.junit.http;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs.server;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs.server.fs;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs.test;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revwalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.treewalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.treewalk.filter;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)",
+ org.eclipse.jgit.api;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.api.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.junit;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.junit.http;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs.server;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs.server.fs;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs.test;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revwalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.treewalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.treewalk.filter;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)",
org.hamcrest.core;version="[1.1.0,3.0.0)",
org.junit;version="[4.13,5.0.0)",
org.junit.rules;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.lfs.server.test/pom.xml b/org.eclipse.jgit.lfs.server.test/pom.xml
index 747f06a..53d2e0e 100644
--- a/org.eclipse.jgit.lfs.server.test/pom.xml
+++ b/org.eclipse.jgit.lfs.server.test/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 20b9d10..247fcfe 100644
--- a/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
@@ -3,19 +3,19 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.lfs.server
Bundle-SymbolicName: org.eclipse.jgit.lfs.server
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Localization: plugin
Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.lfs.server;version="6.5.1";
+Export-Package: org.eclipse.jgit.lfs.server;version="6.6.2";
uses:="javax.servlet.http,
org.eclipse.jgit.lfs.lib",
- org.eclipse.jgit.lfs.server.fs;version="6.5.1";
+ org.eclipse.jgit.lfs.server.fs;version="6.6.2";
uses:="javax.servlet,
javax.servlet.http,
org.eclipse.jgit.lfs.server,
org.eclipse.jgit.lfs.lib",
- org.eclipse.jgit.lfs.server.internal;version="6.5.1";x-internal:=true,
- org.eclipse.jgit.lfs.server.s3;version="6.5.1";
+ org.eclipse.jgit.lfs.server.internal;version="6.6.2";x-internal:=true,
+ org.eclipse.jgit.lfs.server.s3;version="6.6.2";
uses:="org.eclipse.jgit.lfs.server,
org.eclipse.jgit.lfs.lib"
Bundle-RequiredExecutionEnvironment: JavaSE-11
@@ -24,15 +24,15 @@
javax.servlet.annotation;version="[3.1.0,5.0.0)",
javax.servlet.http;version="[3.1.0,5.0.0)",
org.apache.http;version="[4.3.0,5.0.0)",
- org.eclipse.jgit.annotations;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs.internal;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.nls;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.http;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.http.apache;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)",
+ org.eclipse.jgit.annotations;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs.internal;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.nls;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.http;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.http.apache;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.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 93eeea5..1214daf 100644
--- a/org.eclipse.jgit.lfs.server/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.server/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
Bundle-Name: org.eclipse.jgit.lfs.server - Sources
Bundle-SymbolicName: org.eclipse.jgit.lfs.server.source
Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.5.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.lfs.server;version="6.5.1.qualifier";roots="."
+Bundle-Version: 6.6.2.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.lfs.server;version="6.6.2.qualifier";roots="."
diff --git a/org.eclipse.jgit.lfs.server/pom.xml b/org.eclipse.jgit.lfs.server/pom.xml
index 6b99508..623ec95 100644
--- a/org.eclipse.jgit.lfs.server/pom.xml
+++ b/org.eclipse.jgit.lfs.server/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.jgit.lfs.server</artifactId>
@@ -52,8 +52,8 @@
</dependency>
<dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
diff --git a/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
index c1cdf3b..8683977 100644
--- a/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
@@ -3,27 +3,27 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.lfs.test
Bundle-SymbolicName: org.eclipse.jgit.lfs.test
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-11
-Import-Package: org.eclipse.jgit.api;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.attributes;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.junit;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs.internal;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revwalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.http;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.treewalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.treewalk.filter;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)",
+Import-Package: org.eclipse.jgit.api;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.attributes;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.dfs;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.junit;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs.internal;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revwalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.http;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.treewalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.treewalk.filter;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)",
org.hamcrest.core;version="[1.1.0,3.0.0)",
org.junit;version="[4.13,5.0.0)",
org.junit.runner;version="[4.13,5.0.0)",
org.junit.runners;version="[4.13,5.0.0)"
-Export-Package: org.eclipse.jgit.lfs.test;version="6.5.1";x-friends:="org.eclipse.jgit.lfs.server.test"
+Export-Package: org.eclipse.jgit.lfs.test;version="6.6.2";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 a30bd54..092d2c0 100644
--- a/org.eclipse.jgit.lfs.test/pom.xml
+++ b/org.eclipse.jgit.lfs.test/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 fb8993b..9f24a81 100644
--- a/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
@@ -3,32 +3,32 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.lfs
Bundle-SymbolicName: org.eclipse.jgit.lfs
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Localization: plugin
Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.jgit.lfs;version="6.5.1",
- org.eclipse.jgit.lfs.errors;version="6.5.1",
- org.eclipse.jgit.lfs.internal;version="6.5.1";x-friends:="org.eclipse.jgit.lfs.test,org.eclipse.jgit.lfs.server.fs,org.eclipse.jgit.lfs.server",
- org.eclipse.jgit.lfs.lib;version="6.5.1"
+Export-Package: org.eclipse.jgit.lfs;version="6.6.2",
+ org.eclipse.jgit.lfs.errors;version="6.6.2",
+ org.eclipse.jgit.lfs.internal;version="6.6.2";x-friends:="org.eclipse.jgit.lfs.test,org.eclipse.jgit.lfs.server.fs,org.eclipse.jgit.lfs.server",
+ org.eclipse.jgit.lfs.lib;version="6.6.2"
Bundle-RequiredExecutionEnvironment: JavaSE-11
Import-Package: com.google.gson;version="[2.8.2,3.0.0)",
com.google.gson.stream;version="[2.8.2,3.0.0)",
- org.eclipse.jgit.annotations;version="[6.5.1,6.6.0)";resolution:=optional,
- org.eclipse.jgit.api.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.attributes;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.diff;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.dircache;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.hooks;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.nls;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revwalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.storage.pack;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.http;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.treewalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.treewalk.filter;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util.io;version="[6.5.1,6.6.0)"
+ org.eclipse.jgit.annotations;version="[6.6.2,6.7.0)";resolution:=optional,
+ org.eclipse.jgit.api.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.attributes;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.diff;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.dircache;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.hooks;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.nls;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revwalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.storage.pack;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.http;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.treewalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.treewalk.filter;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util.io;version="[6.6.2,6.7.0)"
diff --git a/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF
index 8525bf5..decae54 100644
--- a/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.lfs/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
Bundle-Name: org.eclipse.jgit.lfs - Sources
Bundle-SymbolicName: org.eclipse.jgit.lfs.source
Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.5.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.lfs;version="6.5.1.qualifier";roots="."
+Bundle-Version: 6.6.2.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.lfs;version="6.6.2.qualifier";roots="."
diff --git a/org.eclipse.jgit.lfs/pom.xml b/org.eclipse.jgit.lfs/pom.xml
index 0279b22..178990f 100644
--- a/org.eclipse.jgit.lfs/pom.xml
+++ b/org.eclipse.jgit.lfs/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 062b3a4..d5db5b2 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.jgit"
label="%featureName"
- version="6.5.1.qualifier"
+ version="6.6.2.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 2130178..9c9eb31 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>jgit.tycho.parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 74758c6..b38d002 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.gpg.bc.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.gpg.bc.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.jgit.gpg.bc"
label="%featureName"
- version="6.5.1.qualifier"
+ version="6.6.2.qualifier"
provider-name="%providerName">
<description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
</url>
<requires>
- <import plugin="org.eclipse.jgit" version="6.5.1" match="equivalent"/>
+ <import plugin="org.eclipse.jgit" version="6.6.2" 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 ccf9325..5770ced 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.gpg.bc.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.gpg.bc.feature/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>jgit.tycho.parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 415b111..384add8 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.jgit.http.apache"
label="%featureName"
- version="6.5.1.qualifier"
+ version="6.6.2.qualifier"
provider-name="%providerName">
<description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
</url>
<requires>
- <import plugin="org.eclipse.jgit" version="6.5.1" match="equivalent"/>
+ <import plugin="org.eclipse.jgit" version="6.6.2" 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 d48944d..104793b 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>jgit.tycho.parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 5d3b1c4..7b95d3b 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.jgit.junit"
label="%featureName"
- version="6.5.1.qualifier"
+ version="6.6.2.qualifier"
provider-name="%providerName">
<description url="http://www.eclipse.org/jgit/">
@@ -24,7 +24,7 @@
<requires>
<import plugin="com.jcraft.jsch"/>
- <import plugin="org.eclipse.jgit" version="6.5.1" match="equivalent"/>
+ <import plugin="org.eclipse.jgit" version="6.6.2" 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 4f3be7a..8cd1c49 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>jgit.tycho.parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 beb0f9b..0c1cbd0 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.jgit.lfs"
label="%featureName"
- version="6.5.1.qualifier"
+ version="6.6.2.qualifier"
provider-name="%providerName">
<description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
</url>
<requires>
- <import feature="org.eclipse.jgit" version="6.5.1" match="equivalent"/>
+ <import feature="org.eclipse.jgit" version="6.6.2" 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 35276dd..6a6fdef 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>jgit.tycho.parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 6ccd100..c3be149 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.jgit.pgm"
label="%featureName"
- version="6.5.1.qualifier"
+ version="6.6.2.qualifier"
provider-name="%providerName">
<description url="http://www.eclipse.org/jgit/">
@@ -35,9 +35,9 @@
version="0.0.0"/>
<requires>
- <import feature="org.eclipse.jgit" version="6.5.1" match="equivalent"/>
- <import feature="org.eclipse.jgit.lfs" version="6.5.1" match="equivalent"/>
- <import feature="org.eclipse.jgit.ssh.apache" version="6.5.1" match="equivalent"/>
+ <import feature="org.eclipse.jgit" version="6.6.2" match="equivalent"/>
+ <import feature="org.eclipse.jgit.lfs" version="6.6.2" match="equivalent"/>
+ <import feature="org.eclipse.jgit.ssh.apache" version="6.6.2" 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 ef1b0b8..176ca74 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>jgit.tycho.parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</parent>
<groupId>org.eclipse.jgit.feature</groupId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/category.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/category.xml
index 7fa2b83..a5d2304 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/category.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/category.xml
@@ -39,6 +39,9 @@
<bundle id="org.eclipse.jgit.ui" version="0.0.0">
<category name="JGit-additional-bundles"/>
</bundle>
+ <bundle id="assertj-core">
+ <category name="JGit-dependency-bundles"/>
+ </bundle>
<bundle id="com.google.gson">
<category name="JGit-dependency-bundles"/>
</bundle>
@@ -69,10 +72,10 @@
<bundle id="com.sun.jna.platform.source">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="javaewah">
+ <bundle id="com.googlecode.javaewah.JavaEWAH">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="javaewah.source">
+ <bundle id="com.googlecode.javaewah.JavaEWAH.source">
<category name="JGit-dependency-bundles"/>
</bundle>
<bundle id="jakarta.servlet-api">
@@ -135,16 +138,16 @@
<bundle id="org.apache.ant.source">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="org.apache.commons.codec">
+ <bundle id="org.apache.commons.commons-codec">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="org.apache.commons.codec.source">
+ <bundle id="org.apache.commons.commons-codec.source">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="org.apache.commons.compress">
+ <bundle id="org.apache.commons.commons-compress">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="org.apache.commons.compress.source">
+ <bundle id="org.apache.commons.commons-compress.source">
<category name="JGit-dependency-bundles"/>
</bundle>
<bundle id="org.apache.commons.logging">
@@ -177,28 +180,28 @@
<bundle id="org.apache.sshd.sftp.source">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="org.bouncycastle.bcpg">
+ <bundle id="bcpg">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="org.bouncycastle.bcpg.source">
+ <bundle id="bcpg.source">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="org.bouncycastle.bcpkix">
+ <bundle id="bcpkix">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="org.bouncycastle.bcpkix.source">
+ <bundle id="bcpkix.source">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="org.bouncycastle.bcprov">
+ <bundle id="bcprov">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="org.bouncycastle.bcprov.source">
+ <bundle id="bcprov.source">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="org.bouncycastle.bcutil">
+ <bundle id="bcutil">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="org.bouncycastle.bcutil.source">
+ <bundle id="bcutil.source">
<category name="JGit-dependency-bundles"/>
</bundle>
<bundle id="org.kohsuke.args4j">
@@ -207,16 +210,16 @@
<bundle id="org.kohsuke.args4j.source">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="org.slf4j.api">
+ <bundle id="slf4j.api">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="org.slf4j.api.source">
+ <bundle id="slf4j.api.source">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="org.slf4j.binding.simple">
+ <bundle id="slf4j.simple">
<category name="JGit-dependency-bundles"/>
</bundle>
- <bundle id="org.slf4j.binding.simple.source">
+ <bundle id="slf4j.simple.source">
<category name="JGit-dependency-bundles"/>
</bundle>
<bundle id="org.tukaani.xz">
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 f45cb5a..ae31d3a 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>jgit.tycho.parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.jgit.repository</artifactId>
@@ -107,4 +107,37 @@
<version>${project.version}</version>
</dependency>
</dependencies>
+
+ <profiles>
+ <profile>
+ <id>gpg-sign</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>tycho-gpg-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>pgpsigner</id>
+ <phase>package</phase>
+ <goals>
+ <goal>sign-p2-artifacts</goal>
+ </goals>
+ <configuration>
+ <keyname>E3E144E1</keyname> <!-- JGit public key -->
+ <skipIfJarsigned>true</skipIfJarsigned> <!-- Sign if not already JAR-signed. -->
+ <forceSignature>
+ <bundle>bcpg</bundle>
+ <bundle>bcpkix</bundle>
+ <bundle>bcprov</bundle>
+ <bundle>bcutil</bundle>
+ </forceSignature>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
</project>
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 7075f20..2989aa8 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.jgit.source"
label="%featureName"
- version="6.5.1.qualifier"
+ version="6.6.2.qualifier"
provider-name="%providerName">
<description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
</url>
<requires>
- <import feature="org.eclipse.jgit" version="6.5.1" match="equivalent"/>
+ <import feature="org.eclipse.jgit" version="6.6.2" 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 e49802b..fc45feb 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>jgit.tycho.parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</parent>
<groupId>org.eclipse.jgit.feature</groupId>
@@ -30,7 +30,7 @@
<dependency>
<groupId>org.eclipse.jgit.feature</groupId>
<artifactId>org.eclipse.jgit</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 c9514f4..e838d1f 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.jgit.ssh.apache"
label="%featureName"
- version="6.5.1.qualifier"
+ version="6.6.2.qualifier"
provider-name="%providerName">
<description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
</url>
<requires>
- <import feature="org.eclipse.jgit" version="6.5.1" match="equivalent"/>
+ <import feature="org.eclipse.jgit" version="6.6.2" 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 60e984c..b93597f 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>jgit.tycho.parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 f39c18a..126c5ba 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.jsch.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.jsch.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.jgit.ssh.jsch"
label="%featureName"
- version="6.5.1.qualifier"
+ version="6.6.2.qualifier"
provider-name="%providerName">
<description url="http://www.eclipse.org/jgit/">
@@ -23,7 +23,7 @@
</url>
<requires>
- <import plugin="org.eclipse.jgit" version="6.5.1" match="equivalent"/>
+ <import plugin="org.eclipse.jgit" version="6.6.2" 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 80e21c1..8f72b4e 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.jsch.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.jsch.feature/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>jgit.tycho.parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 8b87530..7c4a732 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: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.target
index b4ad428..04ff3f5 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,93 +1,262 @@
<?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="1677748416">
+<target name="jgit-4.17" sequenceNumber="1686300730">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.http" version="10.0.13"/>
- <unit id="org.eclipse.jetty.io" version="10.0.13"/>
- <unit id="org.eclipse.jetty.security" version="10.0.13"/>
- <unit id="org.eclipse.jetty.server" version="10.0.13"/>
- <unit id="org.eclipse.jetty.servlet" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util.ajax" version="10.0.13"/>
- <repository id="jetty-10.0.x" location="https://download.eclipse.org/oomph/jetty/release/10.0.13/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="jakarta.servlet-api" version="4.0.0"/>
- <unit id="jakarta.servlet-api.source" version="4.0.0"/>
- <repository id="jetty-10.0.6" location="https://download.eclipse.org/eclipse/jetty/10.0.6/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="com.google.gson" version="2.10.1.v20230109-0753"/>
- <unit id="com.google.gson.source" version="2.10.1.v20230109-0753"/>
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jsch.source" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jzlib" version="1.1.3.v20220502-1820"/>
<unit id="com.jcraft.jzlib.source" version="1.1.3.v20220502-1820"/>
- <unit id="com.sun.jna" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.source" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform.source" version="5.12.1.v20221103-2317"/>
- <unit id="javaewah" version="1.1.13.v20211029-0839"/>
- <unit id="javaewah.source" version="1.1.13.v20211029-0839"/>
- <unit id="net.bytebuddy.byte-buddy" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy.source" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent.source" version="1.12.18.v20221114-2102"/>
<unit id="net.i2p.crypto.eddsa" version="0.3.0.v20220506-1020"/>
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
- <unit id="org.apache.commons.codec" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.codec.source" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.compress" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.compress.source" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20221207-1049"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20221207-1049"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
- <unit id="org.apache.sshd.osgi" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.osgi.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.assertj" version="3.20.2.v20210706-1104"/>
- <unit id="org.assertj.source" version="3.20.2.v20210706-1104"/>
- <unit id="org.bouncycastle.bcpg" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpg.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.hamcrest" version="2.2.0.v20210711-0821"/>
- <unit id="org.hamcrest.source" version="2.2.0.v20210711-0821"/>
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
- <unit id="org.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
- <unit id="org.kohsuke.args4j.source" version="2.33.0.v20160323-2218"/>
<unit id="org.mockito.mockito-core" version="4.8.1.v20221103-2317"/>
<unit id="org.mockito.mockito-core.source" version="4.8.1.v20221103-2317"/>
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
- <unit id="org.slf4j.api" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.api.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.tukaani.xz" version="1.9.0.v20210624-1259"/>
- <unit id="org.tukaani.xz.source" version="1.9.0.v20210624-1259"/>
- <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230302014618/repository"/>
+ <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/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/releases/2020-09/"/>
</location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="xz">
+ <dependencies>
+ <dependency>
+ <groupId>org.tukaani</groupId>
+ <artifactId>xz</artifactId>
+ <version>1.9</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="slf4j">
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="sshd">
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-osgi</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-sftp</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jna">
+ <dependencies>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna-platform</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jetty">
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-http</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-io</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-security</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util-ajax</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
+ <version>4.0.4</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="javaewah">
+ <dependencies>
+ <dependency>
+ <groupId>com.googlecode.javaewah</groupId>
+ <artifactId>JavaEWAH</artifactId>
+ <version>1.2.3</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="hamcrest">
+ <dependencies>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest</artifactId>
+ <version>2.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="gson">
+ <dependencies>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.10.1</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bytebuddy">
+ <dependencies>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy-agent</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bouncycastle">
+ <dependencies>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpg-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpkix-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcutil-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="assertj">
+ <dependencies>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <version>3.24.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="args4j">
+ <dependencies>
+ <dependency>
+ <groupId>args4j</groupId>
+ <artifactId>args4j</artifactId>
+ <version>2.33</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="apache">
+ <dependencies>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>1.23.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
</locations>
</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.17.tpd
index cf00c96..2560b0c 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-10.0.x.tpd"
-include "orbit/R20230302014618-2023-03.tpd"
+include "orbit/R20230531010532-2023-06.tpd"
+include "maven/dependencies.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 9ad44d8..156cfd6 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,93 +1,262 @@
<?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="1677748416">
+<target name="jgit-4.18" sequenceNumber="1686300731">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.http" version="10.0.13"/>
- <unit id="org.eclipse.jetty.io" version="10.0.13"/>
- <unit id="org.eclipse.jetty.security" version="10.0.13"/>
- <unit id="org.eclipse.jetty.server" version="10.0.13"/>
- <unit id="org.eclipse.jetty.servlet" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util.ajax" version="10.0.13"/>
- <repository id="jetty-10.0.x" location="https://download.eclipse.org/oomph/jetty/release/10.0.13/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="jakarta.servlet-api" version="4.0.0"/>
- <unit id="jakarta.servlet-api.source" version="4.0.0"/>
- <repository id="jetty-10.0.6" location="https://download.eclipse.org/eclipse/jetty/10.0.6/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="com.google.gson" version="2.10.1.v20230109-0753"/>
- <unit id="com.google.gson.source" version="2.10.1.v20230109-0753"/>
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jsch.source" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jzlib" version="1.1.3.v20220502-1820"/>
<unit id="com.jcraft.jzlib.source" version="1.1.3.v20220502-1820"/>
- <unit id="com.sun.jna" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.source" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform.source" version="5.12.1.v20221103-2317"/>
- <unit id="javaewah" version="1.1.13.v20211029-0839"/>
- <unit id="javaewah.source" version="1.1.13.v20211029-0839"/>
- <unit id="net.bytebuddy.byte-buddy" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy.source" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent.source" version="1.12.18.v20221114-2102"/>
<unit id="net.i2p.crypto.eddsa" version="0.3.0.v20220506-1020"/>
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
- <unit id="org.apache.commons.codec" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.codec.source" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.compress" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.compress.source" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20221207-1049"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20221207-1049"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
- <unit id="org.apache.sshd.osgi" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.osgi.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.assertj" version="3.20.2.v20210706-1104"/>
- <unit id="org.assertj.source" version="3.20.2.v20210706-1104"/>
- <unit id="org.bouncycastle.bcpg" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpg.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.hamcrest" version="2.2.0.v20210711-0821"/>
- <unit id="org.hamcrest.source" version="2.2.0.v20210711-0821"/>
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
- <unit id="org.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
- <unit id="org.kohsuke.args4j.source" version="2.33.0.v20160323-2218"/>
<unit id="org.mockito.mockito-core" version="4.8.1.v20221103-2317"/>
<unit id="org.mockito.mockito-core.source" version="4.8.1.v20221103-2317"/>
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
- <unit id="org.slf4j.api" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.api.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.tukaani.xz" version="1.9.0.v20210624-1259"/>
- <unit id="org.tukaani.xz.source" version="1.9.0.v20210624-1259"/>
- <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230302014618/repository"/>
+ <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/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/releases/2020-12/"/>
</location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="xz">
+ <dependencies>
+ <dependency>
+ <groupId>org.tukaani</groupId>
+ <artifactId>xz</artifactId>
+ <version>1.9</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="slf4j">
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="sshd">
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-osgi</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-sftp</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jna">
+ <dependencies>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna-platform</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jetty">
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-http</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-io</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-security</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util-ajax</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
+ <version>4.0.4</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="javaewah">
+ <dependencies>
+ <dependency>
+ <groupId>com.googlecode.javaewah</groupId>
+ <artifactId>JavaEWAH</artifactId>
+ <version>1.2.3</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="hamcrest">
+ <dependencies>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest</artifactId>
+ <version>2.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="gson">
+ <dependencies>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.10.1</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bytebuddy">
+ <dependencies>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy-agent</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bouncycastle">
+ <dependencies>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpg-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpkix-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcutil-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="assertj">
+ <dependencies>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <version>3.24.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="args4j">
+ <dependencies>
+ <dependency>
+ <groupId>args4j</groupId>
+ <artifactId>args4j</artifactId>
+ <version>2.33</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="apache">
+ <dependencies>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>1.23.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
</locations>
</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.18.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.18.tpd
index 325b6de..de0655f 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-10.0.x.tpd"
-include "orbit/R20230302014618-2023-03.tpd"
+include "orbit/R20230531010532-2023-06.tpd"
+include "maven/dependencies.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.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.target
index e570bf9..14b15fa 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.target
@@ -1,93 +1,262 @@
<?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="1677748416">
+<target name="jgit-4.19-staging" sequenceNumber="1686300730">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.http" version="10.0.13"/>
- <unit id="org.eclipse.jetty.io" version="10.0.13"/>
- <unit id="org.eclipse.jetty.security" version="10.0.13"/>
- <unit id="org.eclipse.jetty.server" version="10.0.13"/>
- <unit id="org.eclipse.jetty.servlet" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util.ajax" version="10.0.13"/>
- <repository id="jetty-10.0.x" location="https://download.eclipse.org/oomph/jetty/release/10.0.13/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="jakarta.servlet-api" version="4.0.0"/>
- <unit id="jakarta.servlet-api.source" version="4.0.0"/>
- <repository id="jetty-10.0.6" location="https://download.eclipse.org/eclipse/jetty/10.0.6/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="com.google.gson" version="2.10.1.v20230109-0753"/>
- <unit id="com.google.gson.source" version="2.10.1.v20230109-0753"/>
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jsch.source" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jzlib" version="1.1.3.v20220502-1820"/>
<unit id="com.jcraft.jzlib.source" version="1.1.3.v20220502-1820"/>
- <unit id="com.sun.jna" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.source" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform.source" version="5.12.1.v20221103-2317"/>
- <unit id="javaewah" version="1.1.13.v20211029-0839"/>
- <unit id="javaewah.source" version="1.1.13.v20211029-0839"/>
- <unit id="net.bytebuddy.byte-buddy" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy.source" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent.source" version="1.12.18.v20221114-2102"/>
<unit id="net.i2p.crypto.eddsa" version="0.3.0.v20220506-1020"/>
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
- <unit id="org.apache.commons.codec" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.codec.source" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.compress" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.compress.source" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20221207-1049"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20221207-1049"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
- <unit id="org.apache.sshd.osgi" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.osgi.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.assertj" version="3.20.2.v20210706-1104"/>
- <unit id="org.assertj.source" version="3.20.2.v20210706-1104"/>
- <unit id="org.bouncycastle.bcpg" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpg.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.hamcrest" version="2.2.0.v20210711-0821"/>
- <unit id="org.hamcrest.source" version="2.2.0.v20210711-0821"/>
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
- <unit id="org.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
- <unit id="org.kohsuke.args4j.source" version="2.33.0.v20160323-2218"/>
<unit id="org.mockito.mockito-core" version="4.8.1.v20221103-2317"/>
<unit id="org.mockito.mockito-core.source" version="4.8.1.v20221103-2317"/>
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
- <unit id="org.slf4j.api" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.api.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.tukaani.xz" version="1.9.0.v20210624-1259"/>
- <unit id="org.tukaani.xz.source" version="1.9.0.v20210624-1259"/>
- <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230302014618/repository"/>
+ <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/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/releases/2021-03/"/>
</location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="xz">
+ <dependencies>
+ <dependency>
+ <groupId>org.tukaani</groupId>
+ <artifactId>xz</artifactId>
+ <version>1.9</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="slf4j">
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="sshd">
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-osgi</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-sftp</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jna">
+ <dependencies>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna-platform</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jetty">
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-http</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-io</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-security</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util-ajax</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
+ <version>4.0.4</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="javaewah">
+ <dependencies>
+ <dependency>
+ <groupId>com.googlecode.javaewah</groupId>
+ <artifactId>JavaEWAH</artifactId>
+ <version>1.2.3</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="hamcrest">
+ <dependencies>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest</artifactId>
+ <version>2.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="gson">
+ <dependencies>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.10.1</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bytebuddy">
+ <dependencies>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy-agent</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bouncycastle">
+ <dependencies>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpg-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpkix-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcutil-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="assertj">
+ <dependencies>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <version>3.24.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="args4j">
+ <dependencies>
+ <dependency>
+ <groupId>args4j</groupId>
+ <artifactId>args4j</artifactId>
+ <version>2.33</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="apache">
+ <dependencies>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>1.23.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
</locations>
</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.tpd
index 08f3910..9f1802d 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.19.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-10.0.x.tpd"
-include "orbit/R20230302014618-2023-03.tpd"
+include "orbit/R20230531010532-2023-06.tpd"
+include "maven/dependencies.tpd"
location "https://download.eclipse.org/releases/2021-03/" {
org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.target
index a3f7c2b..0d7b240 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.target
@@ -1,93 +1,262 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.20" sequenceNumber="1677748416">
+<target name="jgit-4.20" sequenceNumber="1686300731">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.http" version="10.0.13"/>
- <unit id="org.eclipse.jetty.io" version="10.0.13"/>
- <unit id="org.eclipse.jetty.security" version="10.0.13"/>
- <unit id="org.eclipse.jetty.server" version="10.0.13"/>
- <unit id="org.eclipse.jetty.servlet" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util.ajax" version="10.0.13"/>
- <repository id="jetty-10.0.x" location="https://download.eclipse.org/oomph/jetty/release/10.0.13/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="jakarta.servlet-api" version="4.0.0"/>
- <unit id="jakarta.servlet-api.source" version="4.0.0"/>
- <repository id="jetty-10.0.6" location="https://download.eclipse.org/eclipse/jetty/10.0.6/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="com.google.gson" version="2.10.1.v20230109-0753"/>
- <unit id="com.google.gson.source" version="2.10.1.v20230109-0753"/>
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jsch.source" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jzlib" version="1.1.3.v20220502-1820"/>
<unit id="com.jcraft.jzlib.source" version="1.1.3.v20220502-1820"/>
- <unit id="com.sun.jna" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.source" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform.source" version="5.12.1.v20221103-2317"/>
- <unit id="javaewah" version="1.1.13.v20211029-0839"/>
- <unit id="javaewah.source" version="1.1.13.v20211029-0839"/>
- <unit id="net.bytebuddy.byte-buddy" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy.source" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent.source" version="1.12.18.v20221114-2102"/>
<unit id="net.i2p.crypto.eddsa" version="0.3.0.v20220506-1020"/>
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
- <unit id="org.apache.commons.codec" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.codec.source" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.compress" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.compress.source" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20221207-1049"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20221207-1049"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
- <unit id="org.apache.sshd.osgi" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.osgi.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.assertj" version="3.20.2.v20210706-1104"/>
- <unit id="org.assertj.source" version="3.20.2.v20210706-1104"/>
- <unit id="org.bouncycastle.bcpg" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpg.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.hamcrest" version="2.2.0.v20210711-0821"/>
- <unit id="org.hamcrest.source" version="2.2.0.v20210711-0821"/>
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
- <unit id="org.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
- <unit id="org.kohsuke.args4j.source" version="2.33.0.v20160323-2218"/>
<unit id="org.mockito.mockito-core" version="4.8.1.v20221103-2317"/>
<unit id="org.mockito.mockito-core.source" version="4.8.1.v20221103-2317"/>
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
- <unit id="org.slf4j.api" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.api.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.tukaani.xz" version="1.9.0.v20210624-1259"/>
- <unit id="org.tukaani.xz.source" version="1.9.0.v20210624-1259"/>
- <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230302014618/repository"/>
+ <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/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/releases/2021-06/"/>
</location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="xz">
+ <dependencies>
+ <dependency>
+ <groupId>org.tukaani</groupId>
+ <artifactId>xz</artifactId>
+ <version>1.9</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="slf4j">
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="sshd">
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-osgi</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-sftp</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jna">
+ <dependencies>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna-platform</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jetty">
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-http</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-io</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-security</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util-ajax</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
+ <version>4.0.4</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="javaewah">
+ <dependencies>
+ <dependency>
+ <groupId>com.googlecode.javaewah</groupId>
+ <artifactId>JavaEWAH</artifactId>
+ <version>1.2.3</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="hamcrest">
+ <dependencies>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest</artifactId>
+ <version>2.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="gson">
+ <dependencies>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.10.1</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bytebuddy">
+ <dependencies>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy-agent</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bouncycastle">
+ <dependencies>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpg-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpkix-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcutil-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="assertj">
+ <dependencies>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <version>3.24.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="args4j">
+ <dependencies>
+ <dependency>
+ <groupId>args4j</groupId>
+ <artifactId>args4j</artifactId>
+ <version>2.33</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="apache">
+ <dependencies>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>1.23.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
</locations>
</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.tpd
index 07f8ab5..97a5e82 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.20.tpd
@@ -1,7 +1,7 @@
target "jgit-4.20" with source configurePhase
-include "projects/jetty-10.0.x.tpd"
-include "orbit/R20230302014618-2023-03.tpd"
+include "orbit/R20230531010532-2023-06.tpd"
+include "maven/dependencies.tpd"
location "https://download.eclipse.org/releases/2021-06/" {
org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.target
index 908087f..94f671d 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.target
@@ -1,93 +1,262 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.21" sequenceNumber="1677748416">
+<target name="jgit-4.21" sequenceNumber="1686300731">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.http" version="10.0.13"/>
- <unit id="org.eclipse.jetty.io" version="10.0.13"/>
- <unit id="org.eclipse.jetty.security" version="10.0.13"/>
- <unit id="org.eclipse.jetty.server" version="10.0.13"/>
- <unit id="org.eclipse.jetty.servlet" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util.ajax" version="10.0.13"/>
- <repository id="jetty-10.0.x" location="https://download.eclipse.org/oomph/jetty/release/10.0.13/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="jakarta.servlet-api" version="4.0.0"/>
- <unit id="jakarta.servlet-api.source" version="4.0.0"/>
- <repository id="jetty-10.0.6" location="https://download.eclipse.org/eclipse/jetty/10.0.6/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="com.google.gson" version="2.10.1.v20230109-0753"/>
- <unit id="com.google.gson.source" version="2.10.1.v20230109-0753"/>
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jsch.source" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jzlib" version="1.1.3.v20220502-1820"/>
<unit id="com.jcraft.jzlib.source" version="1.1.3.v20220502-1820"/>
- <unit id="com.sun.jna" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.source" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform.source" version="5.12.1.v20221103-2317"/>
- <unit id="javaewah" version="1.1.13.v20211029-0839"/>
- <unit id="javaewah.source" version="1.1.13.v20211029-0839"/>
- <unit id="net.bytebuddy.byte-buddy" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy.source" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent.source" version="1.12.18.v20221114-2102"/>
<unit id="net.i2p.crypto.eddsa" version="0.3.0.v20220506-1020"/>
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
- <unit id="org.apache.commons.codec" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.codec.source" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.compress" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.compress.source" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20221207-1049"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20221207-1049"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
- <unit id="org.apache.sshd.osgi" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.osgi.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.assertj" version="3.20.2.v20210706-1104"/>
- <unit id="org.assertj.source" version="3.20.2.v20210706-1104"/>
- <unit id="org.bouncycastle.bcpg" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpg.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.hamcrest" version="2.2.0.v20210711-0821"/>
- <unit id="org.hamcrest.source" version="2.2.0.v20210711-0821"/>
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
- <unit id="org.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
- <unit id="org.kohsuke.args4j.source" version="2.33.0.v20160323-2218"/>
<unit id="org.mockito.mockito-core" version="4.8.1.v20221103-2317"/>
<unit id="org.mockito.mockito-core.source" version="4.8.1.v20221103-2317"/>
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
- <unit id="org.slf4j.api" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.api.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.tukaani.xz" version="1.9.0.v20210624-1259"/>
- <unit id="org.tukaani.xz.source" version="1.9.0.v20210624-1259"/>
- <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230302014618/repository"/>
+ <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/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/releases/2021-09/"/>
</location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="xz">
+ <dependencies>
+ <dependency>
+ <groupId>org.tukaani</groupId>
+ <artifactId>xz</artifactId>
+ <version>1.9</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="slf4j">
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="sshd">
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-osgi</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-sftp</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jna">
+ <dependencies>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna-platform</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jetty">
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-http</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-io</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-security</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util-ajax</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
+ <version>4.0.4</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="javaewah">
+ <dependencies>
+ <dependency>
+ <groupId>com.googlecode.javaewah</groupId>
+ <artifactId>JavaEWAH</artifactId>
+ <version>1.2.3</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="hamcrest">
+ <dependencies>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest</artifactId>
+ <version>2.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="gson">
+ <dependencies>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.10.1</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bytebuddy">
+ <dependencies>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy-agent</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bouncycastle">
+ <dependencies>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpg-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpkix-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcutil-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="assertj">
+ <dependencies>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <version>3.24.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="args4j">
+ <dependencies>
+ <dependency>
+ <groupId>args4j</groupId>
+ <artifactId>args4j</artifactId>
+ <version>2.33</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="apache">
+ <dependencies>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>1.23.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
</locations>
</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.tpd
index c957b85..be43474 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.21.tpd
@@ -1,7 +1,7 @@
target "jgit-4.21" with source configurePhase
-include "projects/jetty-10.0.x.tpd"
-include "orbit/R20230302014618-2023-03.tpd"
+include "orbit/R20230531010532-2023-06.tpd"
+include "maven/dependencies.tpd"
location "https://download.eclipse.org/releases/2021-09/" {
org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.22.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.22.target
index b079284..e14dd30 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.22.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.22.target
@@ -1,93 +1,262 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.22" sequenceNumber="1677748416">
+<target name="jgit-4.22" sequenceNumber="1686300729">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.http" version="10.0.13"/>
- <unit id="org.eclipse.jetty.io" version="10.0.13"/>
- <unit id="org.eclipse.jetty.security" version="10.0.13"/>
- <unit id="org.eclipse.jetty.server" version="10.0.13"/>
- <unit id="org.eclipse.jetty.servlet" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util.ajax" version="10.0.13"/>
- <repository id="jetty-10.0.x" location="https://download.eclipse.org/oomph/jetty/release/10.0.13/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="jakarta.servlet-api" version="4.0.0"/>
- <unit id="jakarta.servlet-api.source" version="4.0.0"/>
- <repository id="jetty-10.0.6" location="https://download.eclipse.org/eclipse/jetty/10.0.6/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="com.google.gson" version="2.10.1.v20230109-0753"/>
- <unit id="com.google.gson.source" version="2.10.1.v20230109-0753"/>
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jsch.source" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jzlib" version="1.1.3.v20220502-1820"/>
<unit id="com.jcraft.jzlib.source" version="1.1.3.v20220502-1820"/>
- <unit id="com.sun.jna" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.source" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform.source" version="5.12.1.v20221103-2317"/>
- <unit id="javaewah" version="1.1.13.v20211029-0839"/>
- <unit id="javaewah.source" version="1.1.13.v20211029-0839"/>
- <unit id="net.bytebuddy.byte-buddy" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy.source" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent.source" version="1.12.18.v20221114-2102"/>
<unit id="net.i2p.crypto.eddsa" version="0.3.0.v20220506-1020"/>
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
- <unit id="org.apache.commons.codec" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.codec.source" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.compress" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.compress.source" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20221207-1049"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20221207-1049"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
- <unit id="org.apache.sshd.osgi" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.osgi.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.assertj" version="3.20.2.v20210706-1104"/>
- <unit id="org.assertj.source" version="3.20.2.v20210706-1104"/>
- <unit id="org.bouncycastle.bcpg" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpg.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.hamcrest" version="2.2.0.v20210711-0821"/>
- <unit id="org.hamcrest.source" version="2.2.0.v20210711-0821"/>
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
- <unit id="org.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
- <unit id="org.kohsuke.args4j.source" version="2.33.0.v20160323-2218"/>
<unit id="org.mockito.mockito-core" version="4.8.1.v20221103-2317"/>
<unit id="org.mockito.mockito-core.source" version="4.8.1.v20221103-2317"/>
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
- <unit id="org.slf4j.api" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.api.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.tukaani.xz" version="1.9.0.v20210624-1259"/>
- <unit id="org.tukaani.xz.source" version="1.9.0.v20210624-1259"/>
- <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230302014618/repository"/>
+ <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/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/releases/2021-12/"/>
</location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="xz">
+ <dependencies>
+ <dependency>
+ <groupId>org.tukaani</groupId>
+ <artifactId>xz</artifactId>
+ <version>1.9</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="slf4j">
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="sshd">
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-osgi</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-sftp</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jna">
+ <dependencies>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna-platform</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jetty">
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-http</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-io</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-security</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util-ajax</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
+ <version>4.0.4</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="javaewah">
+ <dependencies>
+ <dependency>
+ <groupId>com.googlecode.javaewah</groupId>
+ <artifactId>JavaEWAH</artifactId>
+ <version>1.2.3</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="hamcrest">
+ <dependencies>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest</artifactId>
+ <version>2.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="gson">
+ <dependencies>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.10.1</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bytebuddy">
+ <dependencies>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy-agent</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bouncycastle">
+ <dependencies>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpg-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpkix-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcutil-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="assertj">
+ <dependencies>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <version>3.24.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="args4j">
+ <dependencies>
+ <dependency>
+ <groupId>args4j</groupId>
+ <artifactId>args4j</artifactId>
+ <version>2.33</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="apache">
+ <dependencies>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>1.23.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
</locations>
</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.22.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.22.tpd
index 61a16da..2f8f60e 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.22.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.22.tpd
@@ -1,7 +1,7 @@
target "jgit-4.22" with source configurePhase
-include "projects/jetty-10.0.x.tpd"
-include "orbit/R20230302014618-2023-03.tpd"
+include "orbit/R20230531010532-2023-06.tpd"
+include "maven/dependencies.tpd"
location "https://download.eclipse.org/releases/2021-12/" {
org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.23.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.23.target
index e85e43d..5455f07 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.23.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.23.target
@@ -1,93 +1,262 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.23" sequenceNumber="1677748416">
+<target name="jgit-4.23" sequenceNumber="1686300730">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.http" version="10.0.13"/>
- <unit id="org.eclipse.jetty.io" version="10.0.13"/>
- <unit id="org.eclipse.jetty.security" version="10.0.13"/>
- <unit id="org.eclipse.jetty.server" version="10.0.13"/>
- <unit id="org.eclipse.jetty.servlet" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util.ajax" version="10.0.13"/>
- <repository id="jetty-10.0.x" location="https://download.eclipse.org/oomph/jetty/release/10.0.13/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="jakarta.servlet-api" version="4.0.0"/>
- <unit id="jakarta.servlet-api.source" version="4.0.0"/>
- <repository id="jetty-10.0.6" location="https://download.eclipse.org/eclipse/jetty/10.0.6/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="com.google.gson" version="2.10.1.v20230109-0753"/>
- <unit id="com.google.gson.source" version="2.10.1.v20230109-0753"/>
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jsch.source" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jzlib" version="1.1.3.v20220502-1820"/>
<unit id="com.jcraft.jzlib.source" version="1.1.3.v20220502-1820"/>
- <unit id="com.sun.jna" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.source" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform.source" version="5.12.1.v20221103-2317"/>
- <unit id="javaewah" version="1.1.13.v20211029-0839"/>
- <unit id="javaewah.source" version="1.1.13.v20211029-0839"/>
- <unit id="net.bytebuddy.byte-buddy" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy.source" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent.source" version="1.12.18.v20221114-2102"/>
<unit id="net.i2p.crypto.eddsa" version="0.3.0.v20220506-1020"/>
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
- <unit id="org.apache.commons.codec" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.codec.source" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.compress" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.compress.source" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20221207-1049"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20221207-1049"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
- <unit id="org.apache.sshd.osgi" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.osgi.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.assertj" version="3.20.2.v20210706-1104"/>
- <unit id="org.assertj.source" version="3.20.2.v20210706-1104"/>
- <unit id="org.bouncycastle.bcpg" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpg.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.hamcrest" version="2.2.0.v20210711-0821"/>
- <unit id="org.hamcrest.source" version="2.2.0.v20210711-0821"/>
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
- <unit id="org.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
- <unit id="org.kohsuke.args4j.source" version="2.33.0.v20160323-2218"/>
<unit id="org.mockito.mockito-core" version="4.8.1.v20221103-2317"/>
<unit id="org.mockito.mockito-core.source" version="4.8.1.v20221103-2317"/>
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
- <unit id="org.slf4j.api" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.api.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.tukaani.xz" version="1.9.0.v20210624-1259"/>
- <unit id="org.tukaani.xz.source" version="1.9.0.v20210624-1259"/>
- <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230302014618/repository"/>
+ <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/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/releases/2022-03/"/>
</location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="xz">
+ <dependencies>
+ <dependency>
+ <groupId>org.tukaani</groupId>
+ <artifactId>xz</artifactId>
+ <version>1.9</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="slf4j">
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="sshd">
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-osgi</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-sftp</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jna">
+ <dependencies>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna-platform</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jetty">
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-http</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-io</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-security</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util-ajax</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
+ <version>4.0.4</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="javaewah">
+ <dependencies>
+ <dependency>
+ <groupId>com.googlecode.javaewah</groupId>
+ <artifactId>JavaEWAH</artifactId>
+ <version>1.2.3</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="hamcrest">
+ <dependencies>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest</artifactId>
+ <version>2.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="gson">
+ <dependencies>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.10.1</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bytebuddy">
+ <dependencies>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy-agent</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bouncycastle">
+ <dependencies>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpg-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpkix-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcutil-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="assertj">
+ <dependencies>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <version>3.24.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="args4j">
+ <dependencies>
+ <dependency>
+ <groupId>args4j</groupId>
+ <artifactId>args4j</artifactId>
+ <version>2.33</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="apache">
+ <dependencies>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>1.23.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
</locations>
</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.23.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.23.tpd
index fde3bb6..a4a1c52 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.23.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.23.tpd
@@ -1,7 +1,7 @@
target "jgit-4.23" with source configurePhase
-include "projects/jetty-10.0.x.tpd"
-include "orbit/R20230302014618-2023-03.tpd"
+include "orbit/R20230531010532-2023-06.tpd"
+include "maven/dependencies.tpd"
location "https://download.eclipse.org/releases/2022-03/" {
org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.24.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.24.target
index 51d8fd5..c383bce 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.24.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.24.target
@@ -1,93 +1,262 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.24" sequenceNumber="1677748416">
+<target name="jgit-4.24" sequenceNumber="1686300729">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.http" version="10.0.13"/>
- <unit id="org.eclipse.jetty.io" version="10.0.13"/>
- <unit id="org.eclipse.jetty.security" version="10.0.13"/>
- <unit id="org.eclipse.jetty.server" version="10.0.13"/>
- <unit id="org.eclipse.jetty.servlet" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util.ajax" version="10.0.13"/>
- <repository id="jetty-10.0.x" location="https://download.eclipse.org/oomph/jetty/release/10.0.13/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="jakarta.servlet-api" version="4.0.0"/>
- <unit id="jakarta.servlet-api.source" version="4.0.0"/>
- <repository id="jetty-10.0.6" location="https://download.eclipse.org/eclipse/jetty/10.0.6/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="com.google.gson" version="2.10.1.v20230109-0753"/>
- <unit id="com.google.gson.source" version="2.10.1.v20230109-0753"/>
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jsch.source" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jzlib" version="1.1.3.v20220502-1820"/>
<unit id="com.jcraft.jzlib.source" version="1.1.3.v20220502-1820"/>
- <unit id="com.sun.jna" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.source" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform.source" version="5.12.1.v20221103-2317"/>
- <unit id="javaewah" version="1.1.13.v20211029-0839"/>
- <unit id="javaewah.source" version="1.1.13.v20211029-0839"/>
- <unit id="net.bytebuddy.byte-buddy" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy.source" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent.source" version="1.12.18.v20221114-2102"/>
<unit id="net.i2p.crypto.eddsa" version="0.3.0.v20220506-1020"/>
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
- <unit id="org.apache.commons.codec" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.codec.source" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.compress" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.compress.source" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20221207-1049"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20221207-1049"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
- <unit id="org.apache.sshd.osgi" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.osgi.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.assertj" version="3.20.2.v20210706-1104"/>
- <unit id="org.assertj.source" version="3.20.2.v20210706-1104"/>
- <unit id="org.bouncycastle.bcpg" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpg.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.hamcrest" version="2.2.0.v20210711-0821"/>
- <unit id="org.hamcrest.source" version="2.2.0.v20210711-0821"/>
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
- <unit id="org.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
- <unit id="org.kohsuke.args4j.source" version="2.33.0.v20160323-2218"/>
<unit id="org.mockito.mockito-core" version="4.8.1.v20221103-2317"/>
<unit id="org.mockito.mockito-core.source" version="4.8.1.v20221103-2317"/>
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
- <unit id="org.slf4j.api" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.api.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.tukaani.xz" version="1.9.0.v20210624-1259"/>
- <unit id="org.tukaani.xz.source" version="1.9.0.v20210624-1259"/>
- <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230302014618/repository"/>
+ <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/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/releases/2022-06/"/>
</location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="xz">
+ <dependencies>
+ <dependency>
+ <groupId>org.tukaani</groupId>
+ <artifactId>xz</artifactId>
+ <version>1.9</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="slf4j">
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="sshd">
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-osgi</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-sftp</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jna">
+ <dependencies>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna-platform</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jetty">
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-http</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-io</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-security</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util-ajax</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
+ <version>4.0.4</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="javaewah">
+ <dependencies>
+ <dependency>
+ <groupId>com.googlecode.javaewah</groupId>
+ <artifactId>JavaEWAH</artifactId>
+ <version>1.2.3</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="hamcrest">
+ <dependencies>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest</artifactId>
+ <version>2.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="gson">
+ <dependencies>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.10.1</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bytebuddy">
+ <dependencies>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy-agent</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bouncycastle">
+ <dependencies>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpg-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpkix-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcutil-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="assertj">
+ <dependencies>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <version>3.24.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="args4j">
+ <dependencies>
+ <dependency>
+ <groupId>args4j</groupId>
+ <artifactId>args4j</artifactId>
+ <version>2.33</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="apache">
+ <dependencies>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>1.23.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
</locations>
</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.24.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.24.tpd
index 6c480c3..980e7f9 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.24.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.24.tpd
@@ -1,7 +1,7 @@
target "jgit-4.24" with source configurePhase
-include "projects/jetty-10.0.x.tpd"
-include "orbit/R20230302014618-2023-03.tpd"
+include "orbit/R20230531010532-2023-06.tpd"
+include "maven/dependencies.tpd"
location "https://download.eclipse.org/releases/2022-06/" {
org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.25.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.25.target
index b7260bf..185b543 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.25.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.25.target
@@ -1,93 +1,262 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.25" sequenceNumber="1677748416">
+<target name="jgit-4.25" sequenceNumber="1686300730">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.http" version="10.0.13"/>
- <unit id="org.eclipse.jetty.io" version="10.0.13"/>
- <unit id="org.eclipse.jetty.security" version="10.0.13"/>
- <unit id="org.eclipse.jetty.server" version="10.0.13"/>
- <unit id="org.eclipse.jetty.servlet" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util.ajax" version="10.0.13"/>
- <repository id="jetty-10.0.x" location="https://download.eclipse.org/oomph/jetty/release/10.0.13/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="jakarta.servlet-api" version="4.0.0"/>
- <unit id="jakarta.servlet-api.source" version="4.0.0"/>
- <repository id="jetty-10.0.6" location="https://download.eclipse.org/eclipse/jetty/10.0.6/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="com.google.gson" version="2.10.1.v20230109-0753"/>
- <unit id="com.google.gson.source" version="2.10.1.v20230109-0753"/>
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jsch.source" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jzlib" version="1.1.3.v20220502-1820"/>
<unit id="com.jcraft.jzlib.source" version="1.1.3.v20220502-1820"/>
- <unit id="com.sun.jna" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.source" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform.source" version="5.12.1.v20221103-2317"/>
- <unit id="javaewah" version="1.1.13.v20211029-0839"/>
- <unit id="javaewah.source" version="1.1.13.v20211029-0839"/>
- <unit id="net.bytebuddy.byte-buddy" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy.source" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent.source" version="1.12.18.v20221114-2102"/>
<unit id="net.i2p.crypto.eddsa" version="0.3.0.v20220506-1020"/>
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
- <unit id="org.apache.commons.codec" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.codec.source" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.compress" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.compress.source" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20221207-1049"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20221207-1049"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
- <unit id="org.apache.sshd.osgi" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.osgi.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.assertj" version="3.20.2.v20210706-1104"/>
- <unit id="org.assertj.source" version="3.20.2.v20210706-1104"/>
- <unit id="org.bouncycastle.bcpg" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpg.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.hamcrest" version="2.2.0.v20210711-0821"/>
- <unit id="org.hamcrest.source" version="2.2.0.v20210711-0821"/>
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
- <unit id="org.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
- <unit id="org.kohsuke.args4j.source" version="2.33.0.v20160323-2218"/>
<unit id="org.mockito.mockito-core" version="4.8.1.v20221103-2317"/>
<unit id="org.mockito.mockito-core.source" version="4.8.1.v20221103-2317"/>
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
- <unit id="org.slf4j.api" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.api.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.tukaani.xz" version="1.9.0.v20210624-1259"/>
- <unit id="org.tukaani.xz.source" version="1.9.0.v20210624-1259"/>
- <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230302014618/repository"/>
+ <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/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/releases/2022-09/"/>
</location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="xz">
+ <dependencies>
+ <dependency>
+ <groupId>org.tukaani</groupId>
+ <artifactId>xz</artifactId>
+ <version>1.9</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="slf4j">
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="sshd">
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-osgi</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-sftp</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jna">
+ <dependencies>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna-platform</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jetty">
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-http</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-io</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-security</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util-ajax</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
+ <version>4.0.4</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="javaewah">
+ <dependencies>
+ <dependency>
+ <groupId>com.googlecode.javaewah</groupId>
+ <artifactId>JavaEWAH</artifactId>
+ <version>1.2.3</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="hamcrest">
+ <dependencies>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest</artifactId>
+ <version>2.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="gson">
+ <dependencies>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.10.1</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bytebuddy">
+ <dependencies>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy-agent</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bouncycastle">
+ <dependencies>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpg-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpkix-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcutil-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="assertj">
+ <dependencies>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <version>3.24.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="args4j">
+ <dependencies>
+ <dependency>
+ <groupId>args4j</groupId>
+ <artifactId>args4j</artifactId>
+ <version>2.33</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="apache">
+ <dependencies>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>1.23.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
</locations>
</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.25.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.25.tpd
index 4542b13..c6f636e 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.25.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.25.tpd
@@ -1,7 +1,7 @@
target "jgit-4.25" with source configurePhase
-include "projects/jetty-10.0.x.tpd"
-include "orbit/R20230302014618-2023-03.tpd"
+include "orbit/R20230531010532-2023-06.tpd"
+include "maven/dependencies.tpd"
location "https://download.eclipse.org/releases/2022-09/" {
org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.26.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.26.target
index 57c9d0d..811eb84 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.26.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.26.target
@@ -1,93 +1,262 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.26" sequenceNumber="1677748097">
+<target name="jgit-4.26" sequenceNumber="1686300730">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.http" version="10.0.13"/>
- <unit id="org.eclipse.jetty.io" version="10.0.13"/>
- <unit id="org.eclipse.jetty.security" version="10.0.13"/>
- <unit id="org.eclipse.jetty.server" version="10.0.13"/>
- <unit id="org.eclipse.jetty.servlet" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util" version="10.0.13"/>
- <unit id="org.eclipse.jetty.util.ajax" version="10.0.13"/>
- <repository id="jetty-10.0.x" location="https://download.eclipse.org/oomph/jetty/release/10.0.13/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="jakarta.servlet-api" version="4.0.0"/>
- <unit id="jakarta.servlet-api.source" version="4.0.0"/>
- <repository id="jetty-10.0.6" location="https://download.eclipse.org/eclipse/jetty/10.0.6/"/>
- </location>
- <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="com.google.gson" version="2.10.1.v20230109-0753"/>
- <unit id="com.google.gson.source" version="2.10.1.v20230109-0753"/>
<unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jsch.source" version="0.1.55.v20221112-0806"/>
<unit id="com.jcraft.jzlib" version="1.1.3.v20220502-1820"/>
<unit id="com.jcraft.jzlib.source" version="1.1.3.v20220502-1820"/>
- <unit id="com.sun.jna" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.source" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform" version="5.12.1.v20221103-2317"/>
- <unit id="com.sun.jna.platform.source" version="5.12.1.v20221103-2317"/>
- <unit id="javaewah" version="1.1.13.v20211029-0839"/>
- <unit id="javaewah.source" version="1.1.13.v20211029-0839"/>
- <unit id="net.bytebuddy.byte-buddy" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy.source" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent" version="1.12.18.v20221114-2102"/>
- <unit id="net.bytebuddy.byte-buddy-agent.source" version="1.12.18.v20221114-2102"/>
<unit id="net.i2p.crypto.eddsa" version="0.3.0.v20220506-1020"/>
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
<unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
<unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
- <unit id="org.apache.commons.codec" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.codec.source" version="1.14.0.v20221112-0806"/>
- <unit id="org.apache.commons.compress" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.compress.source" version="1.22.0.v20221207-1049"/>
- <unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20221207-1049"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20221207-1049"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
- <unit id="org.apache.sshd.osgi" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.osgi.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp" version="2.9.2.v20221117-1942"/>
- <unit id="org.apache.sshd.sftp.source" version="2.9.2.v20221117-1942"/>
- <unit id="org.assertj" version="3.20.2.v20210706-1104"/>
- <unit id="org.assertj.source" version="3.20.2.v20210706-1104"/>
- <unit id="org.bouncycastle.bcpg" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpg.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcpkix.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcprov.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil" version="1.72.0.v20221013-1810"/>
- <unit id="org.bouncycastle.bcutil.source" version="1.72.0.v20221013-1810"/>
- <unit id="org.hamcrest" version="2.2.0.v20210711-0821"/>
- <unit id="org.hamcrest.source" version="2.2.0.v20210711-0821"/>
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
<unit id="org.junit" version="4.13.2.v20211018-1956"/>
<unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
- <unit id="org.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
- <unit id="org.kohsuke.args4j.source" version="2.33.0.v20160323-2218"/>
<unit id="org.mockito.mockito-core" version="4.8.1.v20221103-2317"/>
<unit id="org.mockito.mockito-core.source" version="4.8.1.v20221103-2317"/>
<unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
<unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
- <unit id="org.slf4j.api" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.api.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple" version="1.7.30.v20221112-0806"/>
- <unit id="org.slf4j.binding.simple.source" version="1.7.30.v20221112-0806"/>
- <unit id="org.tukaani.xz" version="1.9.0.v20210624-1259"/>
- <unit id="org.tukaani.xz.source" version="1.9.0.v20210624-1259"/>
- <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230302014618/repository"/>
+ <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/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/releases/2022-12/"/>
</location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="xz">
+ <dependencies>
+ <dependency>
+ <groupId>org.tukaani</groupId>
+ <artifactId>xz</artifactId>
+ <version>1.9</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="slf4j">
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="sshd">
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-osgi</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-sftp</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jna">
+ <dependencies>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna-platform</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jetty">
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-http</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-io</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-security</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util-ajax</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
+ <version>4.0.4</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="javaewah">
+ <dependencies>
+ <dependency>
+ <groupId>com.googlecode.javaewah</groupId>
+ <artifactId>JavaEWAH</artifactId>
+ <version>1.2.3</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="hamcrest">
+ <dependencies>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest</artifactId>
+ <version>2.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="gson">
+ <dependencies>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.10.1</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bytebuddy">
+ <dependencies>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy-agent</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bouncycastle">
+ <dependencies>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpg-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpkix-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcutil-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="assertj">
+ <dependencies>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <version>3.24.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="args4j">
+ <dependencies>
+ <dependency>
+ <groupId>args4j</groupId>
+ <artifactId>args4j</artifactId>
+ <version>2.33</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="apache">
+ <dependencies>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>1.23.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
</locations>
</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.26.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.26.tpd
index 25a223a..1e2c19a 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.26.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.26.tpd
@@ -1,7 +1,7 @@
target "jgit-4.26" with source configurePhase
-include "projects/jetty-10.0.x.tpd"
-include "orbit/R20230302014618-2023-03.tpd"
+include "orbit/R20230531010532-2023-06.tpd"
+include "maven/dependencies.tpd"
location "https://download.eclipse.org/releases/2022-12/" {
org.eclipse.osgi lazy
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.27.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.27.target
new file mode 100644
index 0000000..a1e02e7
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.27.target
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde?>
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="jgit-4.27" sequenceNumber="1686300730">
+ <locations>
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+ <unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
+ <unit id="com.jcraft.jsch.source" version="0.1.55.v20221112-0806"/>
+ <unit id="com.jcraft.jzlib" version="1.1.3.v20220502-1820"/>
+ <unit id="com.jcraft.jzlib.source" version="1.1.3.v20220502-1820"/>
+ <unit id="net.i2p.crypto.eddsa" version="0.3.0.v20220506-1020"/>
+ <unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
+ <unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
+ <unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
+ <unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
+ <unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
+ <unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
+ <unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
+ <unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
+ <unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
+ <unit id="org.junit" version="4.13.2.v20211018-1956"/>
+ <unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
+ <unit id="org.mockito.mockito-core" version="4.8.1.v20221103-2317"/>
+ <unit id="org.mockito.mockito-core.source" version="4.8.1.v20221103-2317"/>
+ <unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
+ <unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
+ <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/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/releases/2023-03/"/>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="xz">
+ <dependencies>
+ <dependency>
+ <groupId>org.tukaani</groupId>
+ <artifactId>xz</artifactId>
+ <version>1.9</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="slf4j">
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="sshd">
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-osgi</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-sftp</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jna">
+ <dependencies>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna-platform</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jetty">
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-http</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-io</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-security</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util-ajax</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
+ <version>4.0.4</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="javaewah">
+ <dependencies>
+ <dependency>
+ <groupId>com.googlecode.javaewah</groupId>
+ <artifactId>JavaEWAH</artifactId>
+ <version>1.2.3</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="hamcrest">
+ <dependencies>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest</artifactId>
+ <version>2.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="gson">
+ <dependencies>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.10.1</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bytebuddy">
+ <dependencies>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy-agent</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bouncycastle">
+ <dependencies>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpg-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpkix-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcutil-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="assertj">
+ <dependencies>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <version>3.24.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="args4j">
+ <dependencies>
+ <dependency>
+ <groupId>args4j</groupId>
+ <artifactId>args4j</artifactId>
+ <version>2.33</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="apache">
+ <dependencies>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>1.23.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ </locations>
+</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.27.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.27.tpd
new file mode 100644
index 0000000..bbb4baf
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.27.tpd
@@ -0,0 +1,8 @@
+target "jgit-4.27" with source configurePhase
+
+include "orbit/R20230531010532-2023-06.tpd"
+include "maven/dependencies.tpd"
+
+location "https://download.eclipse.org/releases/2023-03/" {
+ org.eclipse.osgi lazy
+}
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.28.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.28.target
new file mode 100644
index 0000000..cd8f781
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.28.target
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde?>
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="jgit-4.28" sequenceNumber="1686300646">
+ <locations>
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+ <unit id="com.jcraft.jsch" version="0.1.55.v20221112-0806"/>
+ <unit id="com.jcraft.jsch.source" version="0.1.55.v20221112-0806"/>
+ <unit id="com.jcraft.jzlib" version="1.1.3.v20220502-1820"/>
+ <unit id="com.jcraft.jzlib.source" version="1.1.3.v20220502-1820"/>
+ <unit id="net.i2p.crypto.eddsa" version="0.3.0.v20220506-1020"/>
+ <unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20220506-1020"/>
+ <unit id="org.apache.ant" version="1.10.12.v20211102-1452"/>
+ <unit id="org.apache.ant.source" version="1.10.12.v20211102-1452"/>
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.14.v20230516-1249"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.14.v20230516-1249"/>
+ <unit id="org.apache.httpcomponents.httpcore" version="4.4.16.v20221207-1049"/>
+ <unit id="org.apache.httpcomponents.httpcore.source" version="4.4.16.v20221207-1049"/>
+ <unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
+ <unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
+ <unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
+ <unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
+ <unit id="org.junit" version="4.13.2.v20211018-1956"/>
+ <unit id="org.junit.source" version="4.13.2.v20211018-1956"/>
+ <unit id="org.mockito.mockito-core" version="4.8.1.v20221103-2317"/>
+ <unit id="org.mockito.mockito-core.source" version="4.8.1.v20221103-2317"/>
+ <unit id="org.objenesis" version="3.3.0.v20221103-2317"/>
+ <unit id="org.objenesis.source" version="3.3.0.v20221103-2317"/>
+ <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/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/2023-06"/>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="xz">
+ <dependencies>
+ <dependency>
+ <groupId>org.tukaani</groupId>
+ <artifactId>xz</artifactId>
+ <version>1.9</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="slf4j">
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.36</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="sshd">
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-osgi</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-sftp</artifactId>
+ <version>2.10.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jna">
+ <dependencies>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna-platform</artifactId>
+ <version>5.13.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="jetty">
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-http</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-io</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-security</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util-ajax</artifactId>
+ <version>10.0.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
+ <version>4.0.4</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="javaewah">
+ <dependencies>
+ <dependency>
+ <groupId>com.googlecode.javaewah</groupId>
+ <artifactId>JavaEWAH</artifactId>
+ <version>1.2.3</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="hamcrest">
+ <dependencies>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest</artifactId>
+ <version>2.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="gson">
+ <dependencies>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.10.1</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bytebuddy">
+ <dependencies>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>net.bytebuddy</groupId>
+ <artifactId>byte-buddy-agent</artifactId>
+ <version>1.12.18</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="bouncycastle">
+ <dependencies>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpg-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpkix-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcutil-jdk18on</artifactId>
+ <version>1.73</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="assertj">
+ <dependencies>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <version>3.24.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="args4j">
+ <dependencies>
+ <dependency>
+ <groupId>args4j</groupId>
+ <artifactId>args4j</artifactId>
+ <version>2.33</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="error" type="Maven" label="apache">
+ <dependencies>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.15</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>1.23.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </location>
+ </locations>
+</target>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.28.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.28.tpd
new file mode 100644
index 0000000..46185ca
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.28.tpd
@@ -0,0 +1,8 @@
+target "jgit-4.28" with source configurePhase
+
+include "orbit/R20230531010532-2023-06.tpd"
+include "maven/dependencies.tpd"
+
+location "https://download.eclipse.org/staging/2023-06" {
+ org.eclipse.osgi lazy
+}
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/maven/dependencies.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/maven/dependencies.tpd
new file mode 100644
index 0000000..cbb7d1e
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/maven/dependencies.tpd
@@ -0,0 +1,251 @@
+target "dependencies"
+
+
+maven apache
+ scope = compile
+ dependencyDepth = none
+ missingManifest = error
+ includeSources
+{
+ dependency {
+ groupId = "commons-codec"
+ artifactId = "commons-codec"
+ version = "1.15"
+ }
+ dependency {
+ groupId = "org.apache.commons"
+ artifactId = "commons-compress"
+ version = "1.23.0"
+ }
+ dependency {
+ groupId = "commons-logging"
+ artifactId = "commons-logging"
+ version = "1.2"
+ }
+}
+
+maven args4j
+ scope = compile
+ dependencyDepth = none
+ missingManifest = error
+ includeSources
+{
+ dependency {
+ groupId = "args4j"
+ artifactId = "args4j"
+ version = "2.33"
+ }
+}
+
+maven assertj
+ scope = compile
+ dependencyDepth = none
+ missingManifest = error
+ includeSources
+{
+ dependency {
+ groupId = "org.assertj"
+ artifactId = "assertj-core"
+ version = "3.24.2"
+ }
+}
+
+maven bouncycastle
+ scope = compile
+ dependencyDepth = none
+ missingManifest = error
+ includeSources
+{
+ dependency {
+ groupId = "org.bouncycastle"
+ artifactId = "bcpg-jdk18on"
+ version = "1.73"
+ }
+ dependency {
+ groupId = "org.bouncycastle"
+ artifactId = "bcprov-jdk18on"
+ version = "1.73"
+ }
+ dependency {
+ groupId = "org.bouncycastle"
+ artifactId = "bcpkix-jdk18on"
+ version = "1.73"
+ }
+ dependency {
+ groupId = "org.bouncycastle"
+ artifactId = "bcutil-jdk18on"
+ version = "1.73"
+ }
+}
+
+maven bytebuddy
+ scope = compile
+ dependencyDepth = none
+ missingManifest = error
+ includeSources
+{
+ dependency {
+ groupId = "net.bytebuddy"
+ artifactId = "byte-buddy"
+ version = "1.12.18"
+ }
+ dependency {
+ groupId = "net.bytebuddy"
+ artifactId = "byte-buddy-agent"
+ version = "1.12.18"
+ }
+}
+
+maven gson
+ scope = compile
+ dependencyDepth = none
+ missingManifest = error
+ includeSources
+{
+ dependency {
+ groupId = "com.google.code.gson"
+ artifactId = "gson"
+ version = "2.10.1"
+ }
+}
+
+maven hamcrest
+ scope = compile
+ dependencyDepth = none
+ missingManifest = error
+ includeSources
+{
+ dependency {
+ groupId = "org.hamcrest"
+ artifactId = "hamcrest"
+ version = "2.2"
+ }
+}
+
+maven javaewah
+ scope = compile
+ dependencyDepth = none
+ missingManifest = error
+ includeSources
+{
+ dependency {
+ groupId = "com.googlecode.javaewah"
+ artifactId = "JavaEWAH"
+ version = "1.2.3"
+ }
+}
+
+maven jetty
+ scope = compile
+ dependencyDepth = none
+ missingManifest = error
+ includeSources
+{
+ dependency {
+ groupId = "org.eclipse.jetty"
+ artifactId = "jetty-http"
+ version = "10.0.15"
+ }
+ dependency {
+ groupId = "org.eclipse.jetty"
+ artifactId = "jetty-io"
+ version = "10.0.15"
+ }
+ dependency {
+ groupId = "org.eclipse.jetty"
+ artifactId = "jetty-security"
+ version = "10.0.15"
+ }
+ dependency {
+ groupId = "org.eclipse.jetty"
+ artifactId = "jetty-server"
+ version = "10.0.15"
+ }
+ dependency {
+ groupId = "org.eclipse.jetty"
+ artifactId = "jetty-servlet"
+ version = "10.0.15"
+ }
+ dependency {
+ groupId = "org.eclipse.jetty"
+ artifactId = "jetty-util"
+ version = "10.0.15"
+ }
+ dependency {
+ groupId = "org.eclipse.jetty"
+ artifactId = "jetty-util-ajax"
+ version = "10.0.15"
+ }
+ dependency {
+ groupId = "jakarta.servlet"
+ artifactId = "jakarta.servlet-api"
+ version = "4.0.4"
+ }
+}
+
+maven jna
+ scope = compile
+ dependencyDepth = none
+ missingManifest = error
+ includeSources
+{
+ dependency {
+ groupId = "net.java.dev.jna"
+ artifactId = "jna"
+ version = "5.13.0"
+ }
+ dependency {
+ groupId = "net.java.dev.jna"
+ artifactId = "jna-platform"
+ version = "5.13.0"
+ }
+}
+
+maven sshd
+ scope = compile
+ dependencyDepth = none
+ missingManifest = error
+ includeSources
+{
+ dependency {
+ groupId = "org.apache.sshd"
+ artifactId = "sshd-osgi"
+ version = "2.10.0"
+ }
+ dependency {
+ groupId = "org.apache.sshd"
+ artifactId = "sshd-sftp"
+ version = "2.10.0"
+ }
+}
+
+maven slf4j
+ scope = compile
+ dependencyDepth = none
+ missingManifest = error
+ includeSources
+{
+ dependency {
+ groupId = "org.slf4j"
+ artifactId = "slf4j-api"
+ version = "1.7.36"
+ }
+ dependency {
+ groupId = "org.slf4j"
+ artifactId = "slf4j-simple"
+ version = "1.7.36"
+ }
+}
+
+maven xz
+ scope = compile
+ dependencyDepth = none
+ missingManifest = error
+ includeSources
+{
+ dependency {
+ groupId = "org.tukaani"
+ artifactId = "xz"
+ version = "1.9"
+ }
+}
\ No newline at end of file
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/R20230302014618-2023-03.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/R20230302014618-2023-03.tpd
index ad29378..8578b2c 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/R20230302014618-2023-03.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/R20230302014618-2023-03.tpd
@@ -2,68 +2,26 @@
// see https://download.eclipse.org/tools/orbit/downloads/
location "https://download.eclipse.org/tools/orbit/downloads/drops/R20230302014618/repository" {
- com.google.gson [2.10.1.v20230109-0753,2.10.1.v20230109-0753]
- com.google.gson.source [2.10.1.v20230109-0753,2.10.1.v20230109-0753]
com.jcraft.jsch [0.1.55.v20221112-0806,0.1.55.v20221112-0806]
com.jcraft.jsch.source [0.1.55.v20221112-0806,0.1.55.v20221112-0806]
com.jcraft.jzlib [1.1.3.v20220502-1820,1.1.3.v20220502-1820]
com.jcraft.jzlib.source [1.1.3.v20220502-1820,1.1.3.v20220502-1820]
- com.sun.jna [5.12.1.v20221103-2317,5.12.1.v20221103-2317]
- com.sun.jna.source [5.12.1.v20221103-2317,5.12.1.v20221103-2317]
- com.sun.jna.platform [5.12.1.v20221103-2317,5.12.1.v20221103-2317]
- com.sun.jna.platform.source [5.12.1.v20221103-2317,5.12.1.v20221103-2317]
- javaewah [1.1.13.v20211029-0839,1.1.13.v20211029-0839]
- javaewah.source [1.1.13.v20211029-0839,1.1.13.v20211029-0839]
- net.bytebuddy.byte-buddy [1.12.18.v20221114-2102,1.12.18.v20221114-2102]
- net.bytebuddy.byte-buddy.source [1.12.18.v20221114-2102,1.12.18.v20221114-2102]
- net.bytebuddy.byte-buddy-agent [1.12.18.v20221114-2102,1.12.18.v20221114-2102]
- net.bytebuddy.byte-buddy-agent.source [1.12.18.v20221114-2102,1.12.18.v20221114-2102]
net.i2p.crypto.eddsa [0.3.0.v20220506-1020,0.3.0.v20220506-1020]
net.i2p.crypto.eddsa.source [0.3.0.v20220506-1020,0.3.0.v20220506-1020]
org.apache.ant [1.10.12.v20211102-1452,1.10.12.v20211102-1452]
org.apache.ant.source [1.10.12.v20211102-1452,1.10.12.v20211102-1452]
- org.apache.commons.codec [1.14.0.v20221112-0806,1.14.0.v20221112-0806]
- org.apache.commons.codec.source [1.14.0.v20221112-0806,1.14.0.v20221112-0806]
- org.apache.commons.compress [1.22.0.v20221207-1049,1.22.0.v20221207-1049]
- org.apache.commons.compress.source [1.22.0.v20221207-1049,1.22.0.v20221207-1049]
- 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.14.v20221207-1049,4.5.14.v20221207-1049]
org.apache.httpcomponents.httpclient.source [4.5.14.v20221207-1049,4.5.14.v20221207-1049]
org.apache.httpcomponents.httpcore [4.4.16.v20221207-1049,4.4.16.v20221207-1049]
org.apache.httpcomponents.httpcore.source [4.4.16.v20221207-1049,4.4.16.v20221207-1049]
- org.apache.sshd.osgi [2.9.2.v20221117-1942,2.9.2.v20221117-1942]
- org.apache.sshd.osgi.source [2.9.2.v20221117-1942,2.9.2.v20221117-1942]
- org.apache.sshd.sftp [2.9.2.v20221117-1942,2.9.2.v20221117-1942]
- org.apache.sshd.sftp.source [2.9.2.v20221117-1942,2.9.2.v20221117-1942]
- org.assertj [3.20.2.v20210706-1104,3.20.2.v20210706-1104]
- org.assertj.source [3.20.2.v20210706-1104,3.20.2.v20210706-1104]
- org.bouncycastle.bcpg [1.72.0.v20221013-1810,1.72.0.v20221013-1810]
- org.bouncycastle.bcpg.source [1.72.0.v20221013-1810,1.72.0.v20221013-1810]
- org.bouncycastle.bcpkix [1.72.0.v20221013-1810,1.72.0.v20221013-1810]
- org.bouncycastle.bcpkix.source [1.72.0.v20221013-1810,1.72.0.v20221013-1810]
- org.bouncycastle.bcprov [1.72.0.v20221013-1810,1.72.0.v20221013-1810]
- org.bouncycastle.bcprov.source [1.72.0.v20221013-1810,1.72.0.v20221013-1810]
- org.bouncycastle.bcutil [1.72.0.v20221013-1810,1.72.0.v20221013-1810]
- org.bouncycastle.bcutil.source [1.72.0.v20221013-1810,1.72.0.v20221013-1810]
- org.hamcrest [2.2.0.v20210711-0821,2.2.0.v20210711-0821]
- org.hamcrest.source [2.2.0.v20210711-0821,2.2.0.v20210711-0821]
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.2.v20211018-1956,4.13.2.v20211018-1956]
org.junit.source [4.13.2.v20211018-1956,4.13.2.v20211018-1956]
- 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.mockito-core [4.8.1.v20221103-2317,4.8.1.v20221103-2317]
org.mockito.mockito-core.source [4.8.1.v20221103-2317,4.8.1.v20221103-2317]
org.objenesis [3.3.0.v20221103-2317,3.3.0.v20221103-2317]
org.objenesis.source [3.3.0.v20221103-2317,3.3.0.v20221103-2317]
- org.slf4j.api [1.7.30.v20221112-0806,1.7.30.v20221112-0806]
- org.slf4j.api.source [1.7.30.v20221112-0806,1.7.30.v20221112-0806]
- org.slf4j.binding.simple [1.7.30.v20221112-0806,1.7.30.v20221112-0806]
- org.slf4j.binding.simple.source [1.7.30.v20221112-0806,1.7.30.v20221112-0806]
- org.tukaani.xz [1.9.0.v20210624-1259,1.9.0.v20210624-1259]
- org.tukaani.xz.source [1.9.0.v20210624-1259,1.9.0.v20210624-1259]
}
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/R20230531010532-2023-06.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/R20230531010532-2023-06.tpd
new file mode 100644
index 0000000..089981c
--- /dev/null
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/R20230531010532-2023-06.tpd
@@ -0,0 +1,27 @@
+target "R20230531010532-2023-06" with source configurePhase
+// see https://download.eclipse.org/tools/orbit/downloads/
+
+location "https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/repository" {
+ com.jcraft.jsch [0.1.55.v20221112-0806,0.1.55.v20221112-0806]
+ com.jcraft.jsch.source [0.1.55.v20221112-0806,0.1.55.v20221112-0806]
+ com.jcraft.jzlib [1.1.3.v20220502-1820,1.1.3.v20220502-1820]
+ com.jcraft.jzlib.source [1.1.3.v20220502-1820,1.1.3.v20220502-1820]
+ net.i2p.crypto.eddsa [0.3.0.v20220506-1020,0.3.0.v20220506-1020]
+ net.i2p.crypto.eddsa.source [0.3.0.v20220506-1020,0.3.0.v20220506-1020]
+ org.apache.ant [1.10.12.v20211102-1452,1.10.12.v20211102-1452]
+ org.apache.ant.source [1.10.12.v20211102-1452,1.10.12.v20211102-1452]
+ org.apache.httpcomponents.httpclient [4.5.14.v20230516-1249,4.5.14.v20230516-1249]
+ org.apache.httpcomponents.httpclient.source [4.5.14.v20230516-1249,4.5.14.v20230516-1249]
+ org.apache.httpcomponents.httpcore [4.4.16.v20221207-1049,4.4.16.v20221207-1049]
+ org.apache.httpcomponents.httpcore.source [4.4.16.v20221207-1049,4.4.16.v20221207-1049]
+ 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.2.v20211018-1956,4.13.2.v20211018-1956]
+ org.junit.source [4.13.2.v20211018-1956,4.13.2.v20211018-1956]
+ org.mockito.mockito-core [4.8.1.v20221103-2317,4.8.1.v20221103-2317]
+ org.mockito.mockito-core.source [4.8.1.v20221103-2317,4.8.1.v20221103-2317]
+ org.objenesis [3.3.0.v20221103-2317,3.3.0.v20221103-2317]
+ org.objenesis.source [3.3.0.v20221103-2317,3.3.0.v20221103-2317]
+}
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 8945542..86d2cbb 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>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.jgit.target</artifactId>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/projects/jetty-10.0.x.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/projects/jetty-10.0.x.tpd
deleted file mode 100644
index e1afcff..0000000
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/projects/jetty-10.0.x.tpd
+++ /dev/null
@@ -1,16 +0,0 @@
-target "jetty-10.0.x" with source configurePhase
-
-location jetty-10.0.x "https://download.eclipse.org/oomph/jetty/release/10.0.13/" {
- org.eclipse.jetty.http [10.0.13,10.0.14]
- org.eclipse.jetty.io [10.0.13,10.0.14]
- org.eclipse.jetty.security [10.0.13,10.0.14]
- org.eclipse.jetty.server [10.0.13,10.0.14]
- org.eclipse.jetty.servlet [10.0.13,10.0.14]
- org.eclipse.jetty.util [10.0.13,10.0.14]
- org.eclipse.jetty.util.ajax [10.0.13,10.0.14]
-}
-
-location jetty-10.0.6 "https://download.eclipse.org/eclipse/jetty/10.0.6/" {
- jakarta.servlet-api [4.0.0, 5.0.0)
- jakarta.servlet-api.source [4.0.0, 5.0.0)
-}
\ No newline at end of file
diff --git a/org.eclipse.jgit.packaging/pom.xml b/org.eclipse.jgit.packaging/pom.xml
index 28ae7ce..1e4d052 100644
--- a/org.eclipse.jgit.packaging/pom.xml
+++ b/org.eclipse.jgit.packaging/pom.xml
@@ -16,14 +16,14 @@
<groupId>org.eclipse.jgit</groupId>
<artifactId>jgit.tycho.parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
<packaging>pom</packaging>
<name>JGit Tycho Parent</name>
<properties>
<java.version>11</java.version>
- <tycho-version>2.7.5</tycho-version>
+ <tycho-version>4.0.1</tycho-version>
<target-platform>jgit-4.17</target-platform>
</properties>
@@ -36,6 +36,10 @@
<id>repo.eclipse.org.cbi-snapshots</id>
<url>https://repo.eclipse.org/content/repositories/cbi-snapshots/</url>
</pluginRepository>
+ <pluginRepository>
+ <id>tycho-snapshots</id>
+ <url>https://repo.eclipse.org/content/repositories/tycho-snapshots/</url>
+ </pluginRepository>
</pluginRepositories>
<modules>
@@ -171,7 +175,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
- <version>3.0.0</version>
+ <version>3.3.0</version>
<executions>
<execution>
<id>enforce-maven</id>
@@ -217,7 +221,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
- <version>3.2.0</version>
+ <version>3.3.1</version>
<configuration>
<encoding>ISO-8859-1</encoding>
</configuration>
@@ -287,28 +291,33 @@
<version>${tycho-version}</version>
</plugin>
<plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>tycho-gpg-plugin</artifactId>
+ <version>${tycho-version}</version>
+ </plugin>
+ <plugin>
<groupId>org.eclipse.cbi.maven.plugins</groupId>
<artifactId>eclipse-jarsigner-plugin</artifactId>
- <version>1.3.2</version>
+ <version>1.3.5</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
- <version>3.2.0</version>
+ <version>3.3.0</version>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
- <version>3.1.0</version>
+ <version>3.2.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
- <version>3.0.0-M1</version>
+ <version>3.1.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
- <version>3.0.0-M1</version>
+ <version>3.1.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
diff --git a/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
index a309b71..598aa02 100644
--- a/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
@@ -3,30 +3,30 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.pgm.test
Bundle-SymbolicName: org.eclipse.jgit.pgm.test
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-11
-Import-Package: org.eclipse.jgit.api;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.api.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.diff;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.dircache;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.diffmergetool;version="6.5.1",
- org.eclipse.jgit.internal.storage.file;version="6.5.1",
- org.eclipse.jgit.junit;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib.internal;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.merge;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.pgm;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.pgm.internal;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.pgm.opt;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revwalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.treewalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util.io;version="[6.5.1,6.6.0)",
+Import-Package: org.eclipse.jgit.api;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.api.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.diff;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.dircache;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.diffmergetool;version="6.6.2",
+ org.eclipse.jgit.internal.storage.file;version="6.6.2",
+ org.eclipse.jgit.junit;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib.internal;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.merge;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.pgm;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.pgm.internal;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.pgm.opt;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revwalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.treewalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util.io;version="[6.6.2,6.7.0)",
org.hamcrest.core;bundle-version="[1.1.0,3.0.0)",
org.junit;version="[4.13,5.0.0)",
org.junit.rules;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.pgm.test/pom.xml b/org.eclipse.jgit.pgm.test/pom.xml
index 86d6cc9..84887fa 100644
--- a/org.eclipse.jgit.pgm.test/pom.xml
+++ b/org.eclipse.jgit.pgm.test/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.jgit.pgm.test</artifactId>
diff --git a/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/TagTest.java b/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/TagTest.java
index e8d61a5..26d617d 100644
--- a/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/TagTest.java
+++ b/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/TagTest.java
@@ -9,24 +9,30 @@
*/
package org.eclipse.jgit.pgm;
+import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.junit.TestRepository;
import org.eclipse.jgit.lib.CLIRepositoryTestCase;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.revwalk.RevCommit;
import org.junit.Before;
import org.junit.Test;
public class TagTest extends CLIRepositoryTestCase {
private Git git;
+ private RevCommit initialCommit;
+
@Override
@Before
public void setUp() throws Exception {
super.setUp();
git = new Git(db);
- git.commit().setMessage("initial commit").call();
+ initialCommit = git.commit().setMessage("initial commit").call();
}
@Test
@@ -57,4 +63,39 @@
assertEquals("fatal: error: tag 'test' not found", e.getMessage());
}
}
+
+ @Test
+ public void testContains() throws Exception {
+ /* c3
+ * |
+ * v2 - c2 b2 - v1
+ * | |
+ * c1 b1
+ * \ /
+ * a
+ */
+ try (TestRepository<Repository> r = new TestRepository<>(
+ db)) {
+ RevCommit b1 = r.commit(initialCommit);
+ RevCommit b2 = r.commit(b1);
+ RevCommit c1 = r.commit(initialCommit);
+ RevCommit c2 = r.commit(c1);
+ RevCommit c3 = r.commit(c2);
+ r.update("refs/tags/v1", r.tag("v1", b2));
+ r.update("refs/tags/v2", r.tag("v1.1", c2));
+
+ assertArrayEquals(
+ new String[] { "v1", "v2", "" },
+ execute("git tag --contains " + initialCommit.name()));
+
+ assertArrayEquals(new String[] { "v1", "" },
+ execute("git tag --contains " + b1.name()));
+
+ assertArrayEquals(new String[] { "v2", "" },
+ execute("git tag --contains " + c1.name()));
+
+ assertArrayEquals(new String[] { "" },
+ execute("git tag --contains " + c3.name()));
+ }
+ }
}
diff --git a/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF b/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF
index 5399d7d..250acbb 100644
--- a/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.pgm
Bundle-SymbolicName: org.eclipse.jgit.pgm
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-11
@@ -14,49 +14,49 @@
org.eclipse.jetty.servlet;version="[10.0.0,11.0.0)",
org.eclipse.jetty.util;version="[10.0.0,11.0.0)",
org.eclipse.jetty.util.component;version="[10.0.0,11.0.0)",
- org.eclipse.jgit.api;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.api.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.archive;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.awtui;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.blame;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.diff;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.dircache;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.gitrepo;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.diffmergetool;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.io;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.pack;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs.server;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs.server.fs;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs.server.s3;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.merge;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib.internal;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.nls;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.notes;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revplot;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revwalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revwalk.filter;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.storage.pack;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.http.apache;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.resolver;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.ssh.jsch;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.sshd;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.treewalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.treewalk.filter;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util.io;version="[6.5.1,6.6.0)",
+ org.eclipse.jgit.api;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.api.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.archive;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.awtui;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.blame;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.diff;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.dircache;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.gitrepo;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.diffmergetool;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.io;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs.server;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs.server.fs;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs.server.s3;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.merge;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib.internal;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.nls;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.notes;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revplot;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revwalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revwalk.filter;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.storage.pack;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.http.apache;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.resolver;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.ssh.jsch;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.sshd;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.treewalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.treewalk.filter;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util.io;version="[6.6.2,6.7.0)",
org.kohsuke.args4j;version="[2.33.0,3.0.0)",
org.kohsuke.args4j.spi;version="[2.33.0,3.0.0)"
-Export-Package: org.eclipse.jgit.console;version="6.5.1";
+Export-Package: org.eclipse.jgit.console;version="6.6.2";
uses:="org.eclipse.jgit.transport,
org.eclipse.jgit.util",
- org.eclipse.jgit.pgm;version="6.5.1";
+ org.eclipse.jgit.pgm;version="6.6.2";
uses:="org.eclipse.jgit.transport,
org.eclipse.jgit.util.io,
org.eclipse.jgit.awtui,
@@ -68,14 +68,14 @@
org.eclipse.jgit.treewalk,
org.eclipse.jgit.api,
javax.swing",
- org.eclipse.jgit.pgm.debug;version="6.5.1";
+ org.eclipse.jgit.pgm.debug;version="6.6.2";
uses:="org.eclipse.jgit.util.io,
org.eclipse.jgit.pgm,
org.eclipse.jetty.servlet",
- org.eclipse.jgit.pgm.internal;version="6.5.1";
+ org.eclipse.jgit.pgm.internal;version="6.6.2";
x-friends:="org.eclipse.jgit.pgm.test,
org.eclipse.jgit.test",
- org.eclipse.jgit.pgm.opt;version="6.5.1";
+ org.eclipse.jgit.pgm.opt;version="6.6.2";
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 2241425..3a3b108 100644
--- a/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
Bundle-Name: org.eclipse.jgit.pgm - Sources
Bundle-SymbolicName: org.eclipse.jgit.pgm.source
Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.5.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.pgm;version="6.5.1.qualifier";roots="."
+Bundle-Version: 6.6.2.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.pgm;version="6.6.2.qualifier";roots="."
diff --git a/org.eclipse.jgit.pgm/pom.xml b/org.eclipse.jgit.pgm/pom.xml
index a45c2b1..06975ff 100644
--- a/org.eclipse.jgit.pgm/pom.xml
+++ b/org.eclipse.jgit.pgm/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 15fe096..50ee809 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
@@ -255,6 +255,7 @@
untrackedFiles=Untracked files:
updating=Updating {0}..{1}
usage_Abbrev=Instead of using the default number of hexadecimal digits (which will vary according to the number of objects in the repository with a default of 7) of the abbreviated object name, use <n> digits, or as many digits as needed to form a unique object name. An <n> of 0 will suppress long format, only showing the closest tag.
+usage_addRenormalize=Apply the "clean" process freshly to tracked files to forcibly add them again to the index. This implies -u.
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.
@@ -453,7 +454,7 @@
usage_runLfsStore=Run LFS Store in a given directory
usage_S3NoSslVerify=Skip verification of Amazon server certificate and hostname
usage_setTheGitRepositoryToOperateOn=set the git repository to operate on
-usage_shallowExclude=Deepen or shorten the history of a shallow repository to exclude commits reachable from a specified remote branch or tag.
+usage_shallowExclude=Deepen or shorten the history of a shallow repository to exclude commits reachable from a specified remote branch or tag.
usage_shallowSince=Deepen or shorten the history of a shallow repository to include all reachable commits after <date>.
usage_show=Display one commit
usage_showRefNamesMatchingCommits=Show ref names matching commits
@@ -470,6 +471,7 @@
usage_noTrustExitCode=This option can be used to override --trust-exit-code setting.
usage_notags=do not fetch tags
usage_tagAnnotated=create an annotated tag, unsigned unless -s or -u are given, or config tag.gpgSign is true
+usage_tagContains=Only list tags which contain the specified commit
usage_tagDelete=delete tag
usage_tagLocalUser=create a signed annotated tag using the specified GPG key ID
usage_tagMessage=create an annotated tag with the given message, unsigned unless -s or -u are given, or config tag.gpgSign is true, or tar.forceSignAnnotated is true and -a is not given
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Add.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Add.java
index 460f246..ff0b55d 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Add.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Add.java
@@ -22,6 +22,9 @@
@Command(common = true, usage = "usage_addFileContentsToTheIndex")
class Add extends TextBuiltin {
+ @Option(name = "--renormalize", usage = "usage_addRenormalize")
+ private boolean renormalize = false;
+
@Option(name = "--update", aliases = { "-u" }, usage = "usage_onlyMatchAgainstAlreadyTrackedFiles")
private boolean update = false;
@@ -33,9 +36,13 @@
protected void run() throws Exception {
try (Git git = new Git(db)) {
AddCommand addCmd = git.add();
- addCmd.setUpdate(update);
- for (String p : filepatterns)
+ if (renormalize) {
+ update = true;
+ }
+ addCmd.setUpdate(update).setRenormalize(renormalize);
+ for (String p : filepatterns) {
addCmd.addFilepattern(p);
+ }
addCmd.call();
} catch (GitAPIException e) {
throw die(e.getMessage(), e);
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Tag.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Tag.java
index e2cd31d..0603de1 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Tag.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Tag.java
@@ -33,6 +33,7 @@
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.pgm.internal.CLIText;
import org.eclipse.jgit.pgm.internal.VerificationUtils;
+import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevTag;
import org.eclipse.jgit.revwalk.RevWalk;
import org.kohsuke.args4j.Argument;
@@ -76,6 +77,11 @@
"--local-user" }, usage = "usage_tagVerify")
private boolean verify;
+ @Option(name = "--contains", forbids = { "--delete", "--force",
+ "--annotate", "-m", "--sign", "--no-sign",
+ "--local-user" }, metaVar = "metaVar_commitish", usage = "usage_tagContains")
+ private RevCommit contains;
+
@Argument(index = 0, metaVar = "metaVar_name")
private String tagName;
@@ -142,6 +148,9 @@
}
} else {
ListTagCommand command = git.tagList();
+ if (contains != null) {
+ command.setContains(contains);
+ }
List<Ref> list = command.call();
for (Ref ref : list) {
outw.println(Repository.shortenRefName(ref.getName()));
diff --git a/org.eclipse.jgit.ssh.apache.agent/META-INF/MANIFEST.MF b/org.eclipse.jgit.ssh.apache.agent/META-INF/MANIFEST.MF
index cce6486..84d97e2 100644
--- a/org.eclipse.jgit.ssh.apache.agent/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache.agent/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.agent;singleton:=true
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Localization: plugin
Bundle-Vendor: %Bundle-Vendor
-Fragment-Host: org.eclipse.jgit.ssh.apache;bundle-version="[6.5.1,6.6.0)"
+Fragment-Host: org.eclipse.jgit.ssh.apache;bundle-version="[6.6.2,6.7.0)"
Bundle-ActivationPolicy: lazy
Automatic-Module-Name: org.eclipse.jgit.ssh.apache.agent
Bundle-RequiredExecutionEnvironment: JavaSE-11
-Import-Package: org.eclipse.jgit.transport.sshd;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.nls;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)"
+Import-Package: org.eclipse.jgit.transport.sshd;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.nls;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)"
Require-Bundle: com.sun.jna;bundle-version="[5.8.0,6.0.0)",
com.sun.jna.platform;bundle-version="[5.8.0,6.0.0)"
-Export-Package: org.eclipse.jgit.internal.transport.sshd.agent.connector;version="6.5.1";x-internal:=true
+Export-Package: org.eclipse.jgit.internal.transport.sshd.agent.connector;version="6.6.2";x-internal:=true
diff --git a/org.eclipse.jgit.ssh.apache.agent/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.ssh.apache.agent/META-INF/SOURCE-MANIFEST.MF
index 3039554..f0c3ec2 100644
--- a/org.eclipse.jgit.ssh.apache.agent/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache.agent/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
Bundle-Name: org.eclipse.jgit.ssh.apache.agent - Sources
Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.agent.source
Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.5.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache.agent;version="6.5.1.qualifier";roots="."
+Bundle-Version: 6.6.2.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache.agent;version="6.6.2.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.apache.agent/pom.xml b/org.eclipse.jgit.ssh.apache.agent/pom.xml
index 200d5b7..5b1ea04 100644
--- a/org.eclipse.jgit.ssh.apache.agent/pom.xml
+++ b/org.eclipse.jgit.ssh.apache.agent/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.jgit.ssh.apache.agent</artifactId>
@@ -28,7 +28,6 @@
</description>
<properties>
- <jna-version>5.8.0</jna-version>
<translate-qualifier/>
<source-bundle-manifest>${project.build.directory}/META-INF/SOURCE-MANIFEST.MF</source-bundle-manifest>
</properties>
@@ -49,13 +48,11 @@
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
- <version>${jna-version}</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
- <version>${jna-version}</version>
</dependency>
<dependency>
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 22d9576..cf7edd2 100644
--- a/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
@@ -3,34 +3,34 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.ssh.apache.test
Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.test
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-11
-Import-Package: org.apache.sshd.client.config.hosts;version="[2.9.2,2.10.0)",
- org.apache.sshd.common;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.auth;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.config.keys;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.helpers;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.kex;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.keyprovider;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.session;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.signature;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util.net;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util.security;version="[2.9.2,2.10.0)",
- org.apache.sshd.core;version="[2.9.2,2.10.0)",
- org.apache.sshd.server;version="[2.9.2,2.10.0)",
- org.apache.sshd.server.forward;version="[2.9.2,2.10.0)",
- org.eclipse.jgit.api;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.api.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.transport.sshd.proxy;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.junit;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.junit.ssh;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.sshd;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.sshd.agent;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)",
+Import-Package: org.apache.sshd.client.config.hosts;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.auth;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.config.keys;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.helpers;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.kex;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.keyprovider;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.session;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.signature;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util.net;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util.security;version="[2.10.0,2.11.0)",
+ org.apache.sshd.core;version="[2.10.0,2.11.0)",
+ org.apache.sshd.server;version="[2.10.0,2.11.0)",
+ org.apache.sshd.server.forward;version="[2.10.0,2.11.0)",
+ org.eclipse.jgit.api;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.api.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.transport.sshd.proxy;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.junit;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.junit.ssh;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.sshd;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.sshd.agent;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)",
org.hamcrest;version="[1.1.0,3.0.0)",
org.junit;version="[4.13,5.0.0)",
org.junit.experimental.theories;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.ssh.apache.test/build.properties b/org.eclipse.jgit.ssh.apache.test/build.properties
index 35d7145..0e94aa0 100644
--- a/org.eclipse.jgit.ssh.apache.test/build.properties
+++ b/org.eclipse.jgit.ssh.apache.test/build.properties
@@ -3,4 +3,4 @@
bin.includes = META-INF/,\
.,\
plugin.properties
-additional.bundles = org.slf4j.binding.simple
+additional.bundles = slf4j.simple
diff --git a/org.eclipse.jgit.ssh.apache.test/pom.xml b/org.eclipse.jgit.ssh.apache.test/pom.xml
index ec553f3..9e19ec4 100644
--- a/org.eclipse.jgit.ssh.apache.test/pom.xml
+++ b/org.eclipse.jgit.ssh.apache.test/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 a44ff22..22f07ad 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: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-11
-Export-Package: org.eclipse.jgit.internal.transport.sshd;version="6.5.1";x-internal:=true;
+Export-Package: org.eclipse.jgit.internal.transport.sshd;version="6.6.2";x-internal:=true;
uses:="org.apache.sshd.client,
org.apache.sshd.client.auth,
org.apache.sshd.client.auth.keyboard,
@@ -23,75 +23,75 @@
org.apache.sshd.common.signature,
org.apache.sshd.common.util.buffer,
org.eclipse.jgit.transport",
- org.eclipse.jgit.internal.transport.sshd.agent;version="6.5.1";x-internal:=true,
- org.eclipse.jgit.internal.transport.sshd.auth;version="6.5.1";x-internal:=true,
- org.eclipse.jgit.internal.transport.sshd.proxy;version="6.5.1";x-friends:="org.eclipse.jgit.ssh.apache.test",
- org.eclipse.jgit.transport.sshd;version="6.5.1";
+ org.eclipse.jgit.internal.transport.sshd.agent;version="6.6.2";x-internal:=true,
+ org.eclipse.jgit.internal.transport.sshd.auth;version="6.6.2";x-internal:=true,
+ org.eclipse.jgit.internal.transport.sshd.proxy;version="6.6.2";x-friends:="org.eclipse.jgit.ssh.apache.test",
+ org.eclipse.jgit.transport.sshd;version="6.6.2";
uses:="org.eclipse.jgit.transport,
org.apache.sshd.client.config.hosts,
org.apache.sshd.common.keyprovider,
org.eclipse.jgit.util,
org.apache.sshd.client.session,
org.apache.sshd.client.keyverifier",
- org.eclipse.jgit.transport.sshd.agent;version="6.5.1"
+ org.eclipse.jgit.transport.sshd.agent;version="6.6.2"
Import-Package: net.i2p.crypto.eddsa;version="[0.3.0,0.4.0)",
- org.apache.sshd.agent;version="[2.9.2,2.10.0)",
- org.apache.sshd.client;version="[2.9.2,2.10.0)",
- org.apache.sshd.client.auth;version="[2.9.2,2.10.0)",
- org.apache.sshd.client.auth.keyboard;version="[2.9.2,2.10.0)",
- org.apache.sshd.client.auth.password;version="[2.9.2,2.10.0)",
- org.apache.sshd.client.auth.pubkey;version="[2.9.2,2.10.0)",
- org.apache.sshd.client.channel;version="[2.9.2,2.10.0)",
- org.apache.sshd.client.config.hosts;version="[2.9.2,2.10.0)",
- org.apache.sshd.client.config.keys;version="[2.9.2,2.10.0)",
- org.apache.sshd.client.future;version="[2.9.2,2.10.0)",
- org.apache.sshd.client.keyverifier;version="[2.9.2,2.10.0)",
- org.apache.sshd.client.session;version="[2.9.2,2.10.0)",
- org.apache.sshd.client.session.forward;version="[2.9.2,2.10.0)",
- org.apache.sshd.common;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.auth;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.channel;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.compression;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.config.keys;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.config.keys.loader;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.config.keys.loader.openssh.kdf;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.config.keys.u2f;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.digest;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.forward;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.future;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.helpers;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.io;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.kex;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.kex.extension;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.kex.extension.parser;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.keyprovider;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.mac;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.random;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.session;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.session.helpers;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.signature;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util.buffer;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util.buffer.keys;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util.closeable;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util.io;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util.io.der;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util.io.functors;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util.io.resource;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util.logging;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util.net;version="[2.9.2,2.10.0)",
- org.apache.sshd.common.util.security;version="[2.9.2,2.10.0)",
- org.apache.sshd.core;version="[2.9.2,2.10.0)",
- org.apache.sshd.server.auth;version="[2.9.2,2.10.0)",
- org.apache.sshd.sftp;version="[2.9.2,2.10.0)",
- org.apache.sshd.sftp.client;version="[2.9.2,2.10.0)",
- org.apache.sshd.sftp.common;version="[2.9.2,2.10.0)",
- org.eclipse.jgit.annotations;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.fnmatch;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.nls;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)",
+ org.apache.sshd.agent;version="[2.10.0,2.11.0)",
+ org.apache.sshd.client;version="[2.10.0,2.11.0)",
+ org.apache.sshd.client.auth;version="[2.10.0,2.11.0)",
+ org.apache.sshd.client.auth.keyboard;version="[2.10.0,2.11.0)",
+ org.apache.sshd.client.auth.password;version="[2.10.0,2.11.0)",
+ org.apache.sshd.client.auth.pubkey;version="[2.10.0,2.11.0)",
+ org.apache.sshd.client.channel;version="[2.10.0,2.11.0)",
+ org.apache.sshd.client.config.hosts;version="[2.10.0,2.11.0)",
+ org.apache.sshd.client.config.keys;version="[2.10.0,2.11.0)",
+ org.apache.sshd.client.future;version="[2.10.0,2.11.0)",
+ org.apache.sshd.client.keyverifier;version="[2.10.0,2.11.0)",
+ org.apache.sshd.client.session;version="[2.10.0,2.11.0)",
+ org.apache.sshd.client.session.forward;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.auth;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.channel;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.compression;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.config.keys;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.config.keys.loader;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.config.keys.loader.openssh.kdf;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.config.keys.u2f;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.digest;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.forward;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.future;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.helpers;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.io;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.kex;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.kex.extension;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.kex.extension.parser;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.keyprovider;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.mac;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.random;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.session;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.session.helpers;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.signature;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util.buffer;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util.buffer.keys;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util.closeable;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util.io;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util.io.der;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util.io.functors;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util.io.resource;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util.logging;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util.net;version="[2.10.0,2.11.0)",
+ org.apache.sshd.common.util.security;version="[2.10.0,2.11.0)",
+ org.apache.sshd.core;version="[2.10.0,2.11.0)",
+ org.apache.sshd.server.auth;version="[2.10.0,2.11.0)",
+ org.apache.sshd.sftp;version="[2.10.0,2.11.0)",
+ org.apache.sshd.sftp.client;version="[2.10.0,2.11.0)",
+ org.apache.sshd.sftp.common;version="[2.10.0,2.11.0)",
+ org.eclipse.jgit.annotations;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.fnmatch;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.nls;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.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 7d5e247..c51e94b 100644
--- a/org.eclipse.jgit.ssh.apache/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
Bundle-Name: org.eclipse.jgit.ssh.apache - Sources
Bundle-SymbolicName: org.eclipse.jgit.ssh.apache.source
Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.5.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache;version="6.5.1.qualifier";roots="."
+Bundle-Version: 6.6.2.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.ssh.apache;version="6.6.2.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.apache/pom.xml b/org.eclipse.jgit.ssh.apache/pom.xml
index 88557a9..47bda2e 100644
--- a/org.eclipse.jgit.ssh.apache/pom.xml
+++ b/org.eclipse.jgit.ssh.apache/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.jgit.ssh.apache</artifactId>
@@ -50,6 +50,16 @@
<groupId>org.apache.sshd</groupId>
<artifactId>sshd-sftp</artifactId>
<version>${apache-sshd-version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-common</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-core</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
diff --git a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitPasswordAuthFactory.java b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitPasswordAuthFactory.java
deleted file mode 100644
index 715f3b8..0000000
--- a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitPasswordAuthFactory.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2018, 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 org.apache.sshd.client.auth.AbstractUserAuthFactory;
-import org.apache.sshd.client.auth.password.UserAuthPassword;
-import org.apache.sshd.client.auth.password.UserAuthPasswordFactory;
-import org.apache.sshd.client.session.ClientSession;
-
-/**
- * A customized {@link UserAuthPasswordFactory} that creates instance of
- * {@link JGitPasswordAuthentication}.
- */
-public class JGitPasswordAuthFactory extends AbstractUserAuthFactory {
-
- /** The singleton {@link JGitPasswordAuthFactory}. */
- public static final JGitPasswordAuthFactory INSTANCE = new JGitPasswordAuthFactory();
-
- private JGitPasswordAuthFactory() {
- super(UserAuthPasswordFactory.NAME);
- }
-
- @Override
- public UserAuthPassword createUserAuth(ClientSession session)
- throws IOException {
- return new JGitPasswordAuthentication();
- }
-}
diff --git a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitPasswordAuthentication.java b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitPasswordAuthentication.java
deleted file mode 100644
index 33c3c60..0000000
--- a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitPasswordAuthentication.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2018, 2022 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 static org.apache.sshd.core.CoreModuleProperties.PASSWORD_PROMPTS;
-
-import org.apache.sshd.client.auth.password.UserAuthPassword;
-import org.apache.sshd.client.session.ClientSession;
-
-/**
- * A password authentication handler that respects the
- * {@code NumberOfPasswordPrompts} ssh config.
- */
-public class JGitPasswordAuthentication extends UserAuthPassword {
-
- private int maxAttempts;
-
- private int attempts;
-
- @Override
- public void init(ClientSession session, String service) throws Exception {
- super.init(session, service);
- maxAttempts = Math.max(1,
- PASSWORD_PROMPTS.getRequired(session).intValue());
- attempts = 0;
- }
-
- @Override
- protected String resolveAttemptedPassword(ClientSession session,
- String service) throws Exception {
- if (++attempts > maxAttempts) {
- return null;
- }
- return super.resolveAttemptedPassword(session, service);
- }
-}
diff --git a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitSshClient.java b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitSshClient.java
index 72f0bdb..311cf19 100644
--- a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitSshClient.java
+++ b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitSshClient.java
@@ -32,10 +32,8 @@
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Objects;
-import java.util.function.Supplier;
import java.util.stream.Collectors;
-import org.apache.sshd.agent.SshAgentFactory;
import org.apache.sshd.client.SshClient;
import org.apache.sshd.client.config.hosts.HostConfigEntry;
import org.apache.sshd.client.future.ConnectFuture;
@@ -107,8 +105,6 @@
private ProxyDataFactory proxyDatabase;
- private Supplier<SshAgentFactory> agentFactorySupplier = () -> null;
-
@Override
protected SessionFactory createSessionFactory() {
// Override the parent's default
@@ -377,22 +373,6 @@
return credentialsProvider;
}
- @Override
- public SshAgentFactory getAgentFactory() {
- return agentFactorySupplier.get();
- }
-
- @Override
- protected void checkConfig() {
- // The super class requires channel factories for agent forwarding if a
- // factory for an SSH agent is set. We haven't implemented this yet, and
- // we don't do SSH agent forwarding for now. Unfortunately, there is no
- // way to bypass this check in the super class except making
- // getAgentFactory() return null until after the check.
- super.checkConfig();
- agentFactorySupplier = super::getAgentFactory;
- }
-
/**
* A {@link SessionFactory} to create our own specialized
* {@link JGitClientSession}s.
diff --git a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/transport/sshd/IdentityPasswordProvider.java b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/transport/sshd/IdentityPasswordProvider.java
index dd6894b..807bda8 100644
--- a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/transport/sshd/IdentityPasswordProvider.java
+++ b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/transport/sshd/IdentityPasswordProvider.java
@@ -252,22 +252,26 @@
protected boolean keyLoaded(URIish uri,
State state, char[] password, Exception err)
throws IOException, GeneralSecurityException {
- if (err == null) {
- return false; // Success, don't retry
- } else if (err instanceof GeneralSecurityException) {
- throw new InvalidKeyException(
- format(SshdText.get().identityFileCannotDecrypt, uri), err);
- } else {
- // Unencrypted key (state == null && password == null), or exception
- // before having asked for the password (state != null && password
- // == null; might also be a user cancellation), or number of
- // attempts exhausted.
- if (state == null || password == null
- || state.getCount() >= attempts) {
- return false;
- }
+ if (err == null || password == null) {
+ // Success, or an error before we even asked for a password (could
+ // also be a non-encrypted key, or a user cancellation): don't
+ // retry.
+ return false;
+ }
+ if (state != null && state.getCount() < attempts) {
+ // We asked for a password, and have not yet exhausted the number of
+ // attempts. Assume the password was incorrect.
return true;
}
+ // Attempts exhausted
+ if (err instanceof GeneralSecurityException) {
+ // Top-level exception with a better exception message. The
+ // framework would otherwise re-throw 'err'.
+ throw new InvalidKeyException(
+ format(SshdText.get().identityFileCannotDecrypt, uri), err);
+ }
+ // I/O error.
+ return false;
}
@Override
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 c792c18..7798b80 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
@@ -33,6 +33,7 @@
import org.apache.sshd.client.SshClient;
import org.apache.sshd.client.auth.UserAuthFactory;
import org.apache.sshd.client.auth.keyboard.UserAuthKeyboardInteractiveFactory;
+import org.apache.sshd.client.auth.password.UserAuthPasswordFactory;
import org.apache.sshd.client.config.hosts.HostConfigEntryResolver;
import org.apache.sshd.common.NamedFactory;
import org.apache.sshd.common.compression.BuiltinCompressions;
@@ -46,7 +47,6 @@
import org.eclipse.jgit.internal.transport.ssh.OpenSshConfigFile;
import org.eclipse.jgit.internal.transport.sshd.CachingKeyPairProvider;
import org.eclipse.jgit.internal.transport.sshd.GssApiWithMicAuthFactory;
-import org.eclipse.jgit.internal.transport.sshd.JGitPasswordAuthFactory;
import org.eclipse.jgit.internal.transport.sshd.JGitPublicKeyAuthFactory;
import org.eclipse.jgit.internal.transport.sshd.JGitServerKeyVerifier;
import org.eclipse.jgit.internal.transport.sshd.JGitSshClient;
@@ -607,7 +607,7 @@
return Collections.unmodifiableList(
Arrays.asList(GssApiWithMicAuthFactory.INSTANCE,
JGitPublicKeyAuthFactory.FACTORY,
- JGitPasswordAuthFactory.INSTANCE,
+ UserAuthPasswordFactory.INSTANCE,
UserAuthKeyboardInteractiveFactory.INSTANCE));
}
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 2e57de4..095dbb1 100644
--- a/org.eclipse.jgit.ssh.jsch.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.jsch.test/META-INF/MANIFEST.MF
@@ -3,18 +3,18 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.ssh.jsch.test
Bundle-SymbolicName: org.eclipse.jgit.ssh.jsch.test
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-11
Import-Package: com.jcraft.jsch;version="[0.1.54,0.2.0)",
- org.eclipse.jgit.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.junit;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.junit.ssh;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.ssh.jsch;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)",
+ org.eclipse.jgit.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.junit;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.junit.ssh;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.ssh.jsch;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)",
org.hamcrest;version="[1.1.0,3.0.0)",
org.junit;version="[4.13,5.0.0)",
org.junit.experimental.theories;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.ssh.jsch.test/pom.xml b/org.eclipse.jgit.ssh.jsch.test/pom.xml
index 158e967..34fb8e7 100644
--- a/org.eclipse.jgit.ssh.jsch.test/pom.xml
+++ b/org.eclipse.jgit.ssh.jsch.test/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.jgit.ssh.jsch.test</artifactId>
diff --git a/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF b/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF
index 61a4ee1..056af34 100644
--- a/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.jsch/META-INF/MANIFEST.MF
@@ -3,19 +3,19 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.ssh.jsch
Bundle-SymbolicName: org.eclipse.jgit.ssh.jsch;singleton:=true
-Fragment-Host: org.eclipse.jgit;bundle-version="[6.5.1,6.6.0)"
+Fragment-Host: org.eclipse.jgit;bundle-version="[6.6.2,6.7.0)"
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
Bundle-ActivationPolicy: lazy
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-11
-Export-Package: org.eclipse.jgit.transport.ssh.jsch;version="6.5.1"
+Export-Package: org.eclipse.jgit.transport.ssh.jsch;version="6.6.2"
Import-Package: com.jcraft.jsch;version="[0.1.37,0.2.0)",
- org.eclipse.jgit.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.nls;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util.io;version="[6.5.1,6.6.0)",
+ org.eclipse.jgit.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.nls;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util.io;version="[6.6.2,6.7.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 f96290c..81557f5 100644
--- a/org.eclipse.jgit.ssh.jsch/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.jsch/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
Bundle-Name: org.eclipse.jgit.ssh.jsch - Sources
Bundle-SymbolicName: org.eclipse.jgit.ssh.jsch.source
Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.5.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ssh.jsch;version="6.5.1.qualifier";roots="."
+Bundle-Version: 6.6.2.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.ssh.jsch;version="6.6.2.qualifier";roots="."
diff --git a/org.eclipse.jgit.ssh.jsch/pom.xml b/org.eclipse.jgit.ssh.jsch/pom.xml
index 9336ce1..6be4eaa 100644
--- a/org.eclipse.jgit.ssh.jsch/pom.xml
+++ b/org.eclipse.jgit.ssh.jsch/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 e2390b3..06be2ae 100644
--- a/org.eclipse.jgit.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.test/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.test
Bundle-SymbolicName: org.eclipse.jgit.test
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Localization: plugin
Bundle-Vendor: %Bundle-Vendor
Bundle-RequiredExecutionEnvironment: JavaSE-11
@@ -16,64 +16,64 @@
org.apache.commons.compress.compressors.gzip;version="[1.15.0,2.0)",
org.apache.commons.compress.compressors.xz;version="[1.15.0,2.0)",
org.assertj.core.api;version="[3.14.0,4.0.0)",
- org.eclipse.jgit.annotations;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.api;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.api.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.archive;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.attributes;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.awtui;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.blame;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.diff;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.dircache;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.events;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.fnmatch;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.gitrepo;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.hooks;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.ignore;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.ignore.internal;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.diff;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.diffmergetool;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.fsck;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.revwalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.commitgraph;version="6.5.1",
- org.eclipse.jgit.internal.storage.dfs;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.io;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.memory;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.pack;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.transport.connectivity;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.transport.http;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.transport.parser;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.internal.transport.ssh;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.junit;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.junit.time;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lfs;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib.internal;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.logging;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.merge;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.nls;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.notes;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.patch;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.pgm;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.pgm.internal;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revplot;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revwalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revwalk.filter;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.storage.file;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.storage.pack;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.submodule;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.http;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport.resolver;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.treewalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.treewalk.filter;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util.io;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util.sha1;version="[6.5.1,6.6.0)",
+ org.eclipse.jgit.annotations;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.api;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.api.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.archive;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.attributes;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.awtui;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.blame;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.diff;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.dircache;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.events;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.fnmatch;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.gitrepo;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.hooks;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.ignore;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.ignore.internal;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.diff;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.diffmergetool;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.fsck;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.revwalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.commitgraph;version="6.6.2",
+ org.eclipse.jgit.internal.storage.dfs;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.io;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.memory;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.pack;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.storage.reftable;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.transport.connectivity;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.transport.http;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.transport.parser;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.internal.transport.ssh;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.junit;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.junit.time;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lfs;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib.internal;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.logging;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.merge;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.nls;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.notes;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.patch;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.pgm;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.pgm.internal;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revplot;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revwalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revwalk.filter;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.storage.file;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.storage.pack;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.submodule;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.http;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport.resolver;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.treewalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.treewalk.filter;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util.io;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util.sha1;version="[6.6.2,6.7.0)",
org.hamcrest;version="[1.1.0,3.0.0)",
org.hamcrest.collection;version="[1.1.0,3.0.0)",
org.junit;version="[4.13,5.0.0)",
diff --git a/org.eclipse.jgit.test/build.properties b/org.eclipse.jgit.test/build.properties
index 212c8bd..9e4c987 100644
--- a/org.eclipse.jgit.test/build.properties
+++ b/org.eclipse.jgit.test/build.properties
@@ -7,4 +7,4 @@
plugin.properties,\
bin-tst/,\
bin/
-additional.bundles = org.slf4j.binding.simple
+additional.bundles = slf4j.simple
diff --git a/org.eclipse.jgit.test/pom.xml b/org.eclipse.jgit.test/pom.xml
index b7d932a..2e64ccc 100644
--- a/org.eclipse.jgit.test/pom.xml
+++ b/org.eclipse.jgit.test/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.jgit.test</artifactId>
diff --git a/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/conflict.patch b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/conflict.patch
new file mode 100644
index 0000000..547fcda
--- /dev/null
+++ b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/conflict.patch
@@ -0,0 +1,8 @@
+diff --git a/conflict b/conflict
+index 2e65efe..7898192 100644
+--- a/conflict
++++ b/conflict
+@@ -1 +1 @@
+-a different preimage line
+\ No newline at end of file
++a new line
diff --git a/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/conflict_PostImage b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/conflict_PostImage
new file mode 100644
index 0000000..fa27877
--- /dev/null
+++ b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/conflict_PostImage
@@ -0,0 +1 @@
+preimage line
diff --git a/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/conflict_PreImage b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/conflict_PreImage
new file mode 100644
index 0000000..fa27877
--- /dev/null
+++ b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/conflict_PreImage
@@ -0,0 +1 @@
+preimage line
diff --git a/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/dotgit.patch b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/dotgit.patch
new file mode 100644
index 0000000..802fa15
--- /dev/null
+++ b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/dotgit.patch
@@ -0,0 +1,9 @@
+diff --git a/.git/b b/.git/b
+new file mode 100644
+index 0000000..de98044
+--- /dev/null
++++ b/.git/b
+@@ -0,0 +1,3 @@
++a
++b
++c
\ No newline at end of file
diff --git a/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/dotgit2.patch b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/dotgit2.patch
new file mode 100644
index 0000000..03cacba
--- /dev/null
+++ b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/dotgit2.patch
@@ -0,0 +1,9 @@
+diff --git a/.GIT/b b/.GIT/b
+new file mode 100644
+index 0000000..de98044
+--- /dev/null
++++ b/.git/b
+@@ -0,0 +1,3 @@
++a
++b
++c
\ No newline at end of file
diff --git a/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/z_e.patch b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/z_e.patch
deleted file mode 100644
index f531033..0000000
--- a/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/z_e.patch
+++ /dev/null
@@ -1,297 +0,0 @@
-diff --git a/z_e b/z_e
-index 8d8786f..7888356 100644
---- a/z_e
-+++ b/z_e
-@@ -20,6 +20,7 @@
- package org.jsonschema2pojo.util;
-
- import java.util.ArrayList;
-+import java.util.Collections;
- import java.util.List;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
-@@ -36,76 +37,81 @@
- private static final Pattern UNDERSCORE_PATTERN_1 = Pattern.compile("([A-Z]+)([A-Z][a-z])");
- private static final Pattern UNDERSCORE_PATTERN_2 = Pattern.compile("([a-z\\d])([A-Z])");
-
-- private List<RuleAndReplacement> plurals = new ArrayList<RuleAndReplacement>();
-- private List<RuleAndReplacement> singulars = new ArrayList<RuleAndReplacement>();
-- private List<String> uncountables = new ArrayList<String>();
-+ private final List<RuleAndReplacement> plurals;
-+ private final List<RuleAndReplacement> singulars;
-+ private final List<String> uncountables;
-
-- private static Inflector instance = new Inflector();
-+ private static Inflector instance = createDefaultBuilder().build();
-
-- private Inflector() {
-- // Woo, you can't touch me.
--
-- initialize();
-+ private Inflector(Builder builder) {
-+ plurals = Collections.unmodifiableList(builder.plurals);
-+ singulars = Collections.unmodifiableList(builder.singulars);
-+ uncountables = Collections.unmodifiableList(builder.uncountables);
- }
-
-- private void initialize() {
-- plural("$", "s");
-- plural("s$", "s");
-- plural("(ax|test)is$", "$1es");
-- plural("(octop|vir)us$", "$1i");
-- plural("(alias|status)$", "$1es");
-- plural("(bu)s$", "$1es");
-- plural("(buffal|tomat)o$", "$1oes");
-- plural("([ti])um$", "$1a");
-- plural("sis$", "ses");
-- plural("(?:([^f])fe|([lr])f)$", "$1$2ves");
-- plural("(hive)$", "$1s");
-- plural("([^aeiouy]|qu)y$", "$1ies");
-- plural("([^aeiouy]|qu)ies$", "$1y");
-- plural("(x|ch|ss|sh)$", "$1es");
-- plural("(matr|vert|ind)ix|ex$", "$1ices");
-- plural("([m|l])ouse$", "$1ice");
-- plural("(ox)$", "$1en");
-- plural("(quiz)$", "$1zes");
-+ public static Inflector.Builder createDefaultBuilder()
-+ {
-+ Builder builder = builder();
-
-- singular("s$", "");
-- singular("(n)ews$", "$1ews");
-- singular("([ti])a$", "$1um");
-- singular("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$", "$1$2sis");
-- singular("(^analy)ses$", "$1sis");
-- singular("([^f])ves$", "$1fe");
-- singular("(hive)s$", "$1");
-- singular("(tive)s$", "$1");
-- singular("([lr])ves$", "$1f");
-- singular("([^aeiouy]|qu)ies$", "$1y");
-- singular("(s)eries$", "$1eries");
-- singular("(m)ovies$", "$1ovie");
-- singular("(x|ch|ss|sh)es$", "$1");
-- singular("([m|l])ice$", "$1ouse");
-- singular("(bus)es$", "$1");
-- singular("(o)es$", "$1");
-- singular("(shoe)s$", "$1");
-- singular("(cris|ax|test)es$", "$1is");
-- singular("([octop|vir])i$", "$1us");
-- singular("(alias|status)es$", "$1");
-- singular("^(ox)en", "$1");
-- singular("(vert|ind)ices$", "$1ex");
-- singular("(matr)ices$", "$1ix");
-- singular("(quiz)zes$", "$1");
-- singular("(ess)$", "$1");
-+ builder.plural("$", "s")
-+ .plural("s$", "s")
-+ .plural("(ax|test)is$", "$1es")
-+ .plural("(octop|vir)us$", "$1i")
-+ .plural("(alias|status)$", "$1es")
-+ .plural("(bu)s$", "$1es")
-+ .plural("(buffal|tomat)o$", "$1oes")
-+ .plural("([ti])um$", "$1a")
-+ .plural("sis$", "ses")
-+ .plural("(?:([^f])fe|([lr])f)$", "$1$2ves")
-+ .plural("(hive)$", "$1s")
-+ .plural("([^aeiouy]|qu)y$", "$1ies")
-+ .plural("([^aeiouy]|qu)ies$", "$1y")
-+ .plural("(x|ch|ss|sh)$", "$1es")
-+ .plural("(matr|vert|ind)ix|ex$", "$1ices")
-+ .plural("([m|l])ouse$", "$1ice")
-+ .plural("(ox)$", "$1en")
-+ .plural("(quiz)$", "$1zes");
-
-- singular("men$", "man");
-- plural("man$", "men");
-+ builder.singular("s$", "")
-+ .singular("(n)ews$", "$1ews")
-+ .singular("([ti])a$", "$1um")
-+ .singular("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$", "$1$2sis")
-+ .singular("(^analy)ses$", "$1sis")
-+ .singular("([^f])ves$", "$1fe")
-+ .singular("(hive)s$", "$1")
-+ .singular("(tive)s$", "$1")
-+ .singular("([lr])ves$", "$1f")
-+ .singular("([^aeiouy]|qu)ies$", "$1y")
-+ .singular("(s)eries$", "$1eries")
-+ .singular("(m)ovies$", "$1ovie")
-+ .singular("(x|ch|ss|sh)es$", "$1")
-+ .singular("([m|l])ice$", "$1ouse")
-+ .singular("(bus)es$", "$1")
-+ .singular("(o)es$", "$1")
-+ .singular("(shoe)s$", "$1")
-+ .singular("(cris|ax|test)es$", "$1is")
-+ .singular("([octop|vir])i$", "$1us")
-+ .singular("(alias|status)es$", "$1")
-+ .singular("^(ox)en", "$1")
-+ .singular("(vert|ind)ices$", "$1ex")
-+ .singular("(matr)ices$", "$1ix")
-+ .singular("(quiz)zes$", "$1")
-+ .singular("(ess)$", "$1");
-
-- irregular("curve", "curves");
-- irregular("leaf", "leaves");
-- irregular("roof", "rooves");
-- irregular("person", "people");
-- irregular("child", "children");
-- irregular("sex", "sexes");
-- irregular("move", "moves");
-+ builder.singular("men$", "man")
-+ .plural("man$", "men");
-
-- uncountable(new String[] { "equipment", "information", "rice", "money", "species", "series", "fish", "sheep", "s" });
-+ builder.irregular("curve", "curves")
-+ .irregular("leaf", "leaves")
-+ .irregular("roof", "rooves")
-+ .irregular("person", "people")
-+ .irregular("child", "children")
-+ .irregular("sex", "sexes")
-+ .irregular("move", "moves");
-+
-+ builder.uncountable(new String[] { "equipment", "information", "rice", "money", "species", "series", "fish", "sheep", "s" });
-+
-+ return builder;
- }
-
- public static Inflector getInstance() {
-@@ -122,28 +128,27 @@
- return underscoredWord;
- }
-
-- public synchronized String pluralize(String word) {
-+ public String pluralize(String word) {
- if (uncountables.contains(word.toLowerCase())) {
- return word;
- }
- return replaceWithFirstRule(word, plurals);
- }
-
-- public synchronized String singularize(String word) {
-+ public String singularize(String word) {
- if (uncountables.contains(word.toLowerCase())) {
- return word;
- }
- return replaceWithFirstRule(word, singulars);
- }
-
-- private String replaceWithFirstRule(String word, List<RuleAndReplacement> ruleAndReplacements) {
-+ private static String replaceWithFirstRule(String word, List<RuleAndReplacement> ruleAndReplacements) {
-
- for (RuleAndReplacement rar : ruleAndReplacements) {
-- String rule = rar.getRule();
- String replacement = rar.getReplacement();
-
- // Return if we find a match.
-- Matcher matcher = Pattern.compile(rule, Pattern.CASE_INSENSITIVE).matcher(word);
-+ Matcher matcher = rar.getPattern().matcher(word);
- if (matcher.find()) {
- return matcher.replaceAll(replacement);
- }
-@@ -161,49 +166,68 @@
- return tableize(className);
- }
-
-- private void plural(String rule, String replacement) {
-- plurals.add(0, new RuleAndReplacement(rule, replacement));
-+ public static Builder builder()
-+ {
-+ return new Builder();
- }
-
-- private void singular(String rule, String replacement) {
-- singulars.add(0, new RuleAndReplacement(rule, replacement));
-+ // Ugh, no open structs in Java (not-natively at least).
-+ private static class RuleAndReplacement {
-+ private final String rule;
-+ private final String replacement;
-+ private final Pattern pattern;
-+
-+ public RuleAndReplacement(String rule, String replacement) {
-+ this.rule = rule;
-+ this.replacement = replacement;
-+ this.pattern = Pattern.compile(rule, Pattern.CASE_INSENSITIVE);
-+ }
-+
-+ public String getReplacement() {
-+ return replacement;
-+ }
-+
-+ public String getRule() {
-+ return rule;
-+ }
-+
-+ public Pattern getPattern() {
-+ return pattern;
-+ }
- }
-
-- private void irregular(String singular, String plural) {
-- plural(singular, plural);
-- singular(plural, singular);
-- }
-+ public static class Builder
-+ {
-+ private List<RuleAndReplacement> plurals = new ArrayList<RuleAndReplacement>();
-+ private List<RuleAndReplacement> singulars = new ArrayList<RuleAndReplacement>();
-+ private List<String> uncountables = new ArrayList<String>();
-
-- private void uncountable(String... words) {
-- for (String word : words) {
-- uncountables.add(word);
-+ public Builder plural(String rule, String replacement) {
-+ plurals.add(0, new RuleAndReplacement(rule, replacement));
-+ return this;
-+ }
-+
-+ public Builder singular(String rule, String replacement) {
-+ singulars.add(0, new RuleAndReplacement(rule, replacement));
-+ return this;
-+ }
-+
-+ public Builder irregular(String singular, String plural) {
-+ plural(singular, plural);
-+ singular(plural, singular);
-+ return this;
-+ }
-+
-+ public Builder uncountable(String... words) {
-+ for (String word : words) {
-+ uncountables.add(word);
-+ }
-+ return this;
-+ }
-+
-+ public Inflector build()
-+ {
-+ return new Inflector(this);
- }
- }
- }
--
--// Ugh, no open structs in Java (not-natively at least).
--class RuleAndReplacement {
-- private String rule;
-- private String replacement;
--
-- public RuleAndReplacement(String rule, String replacement) {
-- this.rule = rule;
-- this.replacement = replacement;
-- }
--
-- public String getReplacement() {
-- return replacement;
-- }
--
-- public void setReplacement(String replacement) {
-- this.replacement = replacement;
-- }
--
-- public String getRule() {
-- return rule;
-- }
--
-- public void setRule(String rule) {
-- this.rule = rule;
-- }
--}
-\ No newline at end of file
diff --git a/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/z_e_PostImage b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/z_e_PostImage
deleted file mode 100644
index 7888356..0000000
--- a/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/z_e_PostImage
+++ /dev/null
@@ -1,233 +0,0 @@
-/**
- * Copyright © 2007 Chu Yeow Cheah
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Copied verbatim from http://dzone.com/snippets/java-inflections, used
- * and licensed with express permission from the author Chu Yeow Cheah.
- */
-
-package org.jsonschema2pojo.util;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * Transforms words (from singular to plural, from camelCase to under_score,
- * etc.). I got bored of doing Real Work...
- *
- * @author chuyeow
- */
-public class Inflector {
-
- // Pfft, can't think of a better name, but this is needed to avoid the price of initializing the pattern on each call.
- private static final Pattern UNDERSCORE_PATTERN_1 = Pattern.compile("([A-Z]+)([A-Z][a-z])");
- private static final Pattern UNDERSCORE_PATTERN_2 = Pattern.compile("([a-z\\d])([A-Z])");
-
- private final List<RuleAndReplacement> plurals;
- private final List<RuleAndReplacement> singulars;
- private final List<String> uncountables;
-
- private static Inflector instance = createDefaultBuilder().build();
-
- private Inflector(Builder builder) {
- plurals = Collections.unmodifiableList(builder.plurals);
- singulars = Collections.unmodifiableList(builder.singulars);
- uncountables = Collections.unmodifiableList(builder.uncountables);
- }
-
- public static Inflector.Builder createDefaultBuilder()
- {
- Builder builder = builder();
-
- builder.plural("$", "s")
- .plural("s$", "s")
- .plural("(ax|test)is$", "$1es")
- .plural("(octop|vir)us$", "$1i")
- .plural("(alias|status)$", "$1es")
- .plural("(bu)s$", "$1es")
- .plural("(buffal|tomat)o$", "$1oes")
- .plural("([ti])um$", "$1a")
- .plural("sis$", "ses")
- .plural("(?:([^f])fe|([lr])f)$", "$1$2ves")
- .plural("(hive)$", "$1s")
- .plural("([^aeiouy]|qu)y$", "$1ies")
- .plural("([^aeiouy]|qu)ies$", "$1y")
- .plural("(x|ch|ss|sh)$", "$1es")
- .plural("(matr|vert|ind)ix|ex$", "$1ices")
- .plural("([m|l])ouse$", "$1ice")
- .plural("(ox)$", "$1en")
- .plural("(quiz)$", "$1zes");
-
- builder.singular("s$", "")
- .singular("(n)ews$", "$1ews")
- .singular("([ti])a$", "$1um")
- .singular("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$", "$1$2sis")
- .singular("(^analy)ses$", "$1sis")
- .singular("([^f])ves$", "$1fe")
- .singular("(hive)s$", "$1")
- .singular("(tive)s$", "$1")
- .singular("([lr])ves$", "$1f")
- .singular("([^aeiouy]|qu)ies$", "$1y")
- .singular("(s)eries$", "$1eries")
- .singular("(m)ovies$", "$1ovie")
- .singular("(x|ch|ss|sh)es$", "$1")
- .singular("([m|l])ice$", "$1ouse")
- .singular("(bus)es$", "$1")
- .singular("(o)es$", "$1")
- .singular("(shoe)s$", "$1")
- .singular("(cris|ax|test)es$", "$1is")
- .singular("([octop|vir])i$", "$1us")
- .singular("(alias|status)es$", "$1")
- .singular("^(ox)en", "$1")
- .singular("(vert|ind)ices$", "$1ex")
- .singular("(matr)ices$", "$1ix")
- .singular("(quiz)zes$", "$1")
- .singular("(ess)$", "$1");
-
- builder.singular("men$", "man")
- .plural("man$", "men");
-
- builder.irregular("curve", "curves")
- .irregular("leaf", "leaves")
- .irregular("roof", "rooves")
- .irregular("person", "people")
- .irregular("child", "children")
- .irregular("sex", "sexes")
- .irregular("move", "moves");
-
- builder.uncountable(new String[] { "equipment", "information", "rice", "money", "species", "series", "fish", "sheep", "s" });
-
- return builder;
- }
-
- public static Inflector getInstance() {
- return instance;
- }
-
- private String underscore(String camelCasedWord) {
-
- // Regexes in Java are fucking stupid...
- String underscoredWord = UNDERSCORE_PATTERN_1.matcher(camelCasedWord).replaceAll("$1_$2");
- underscoredWord = UNDERSCORE_PATTERN_2.matcher(underscoredWord).replaceAll("$1_$2");
- underscoredWord = underscoredWord.replace('-', '_').toLowerCase();
-
- return underscoredWord;
- }
-
- public String pluralize(String word) {
- if (uncountables.contains(word.toLowerCase())) {
- return word;
- }
- return replaceWithFirstRule(word, plurals);
- }
-
- public String singularize(String word) {
- if (uncountables.contains(word.toLowerCase())) {
- return word;
- }
- return replaceWithFirstRule(word, singulars);
- }
-
- private static String replaceWithFirstRule(String word, List<RuleAndReplacement> ruleAndReplacements) {
-
- for (RuleAndReplacement rar : ruleAndReplacements) {
- String replacement = rar.getReplacement();
-
- // Return if we find a match.
- Matcher matcher = rar.getPattern().matcher(word);
- if (matcher.find()) {
- return matcher.replaceAll(replacement);
- }
- }
- return word;
- }
-
- private String tableize(String className) {
- return pluralize(underscore(className));
- }
-
- private String tableize(Class<?> klass) {
- // Strip away package name - we only want the 'base' class name.
- String className = klass.getName().replace(klass.getPackage().getName() + ".", "");
- return tableize(className);
- }
-
- public static Builder builder()
- {
- return new Builder();
- }
-
- // Ugh, no open structs in Java (not-natively at least).
- private static class RuleAndReplacement {
- private final String rule;
- private final String replacement;
- private final Pattern pattern;
-
- public RuleAndReplacement(String rule, String replacement) {
- this.rule = rule;
- this.replacement = replacement;
- this.pattern = Pattern.compile(rule, Pattern.CASE_INSENSITIVE);
- }
-
- public String getReplacement() {
- return replacement;
- }
-
- public String getRule() {
- return rule;
- }
-
- public Pattern getPattern() {
- return pattern;
- }
- }
-
- public static class Builder
- {
- private List<RuleAndReplacement> plurals = new ArrayList<RuleAndReplacement>();
- private List<RuleAndReplacement> singulars = new ArrayList<RuleAndReplacement>();
- private List<String> uncountables = new ArrayList<String>();
-
- public Builder plural(String rule, String replacement) {
- plurals.add(0, new RuleAndReplacement(rule, replacement));
- return this;
- }
-
- public Builder singular(String rule, String replacement) {
- singulars.add(0, new RuleAndReplacement(rule, replacement));
- return this;
- }
-
- public Builder irregular(String singular, String plural) {
- plural(singular, plural);
- singular(plural, singular);
- return this;
- }
-
- public Builder uncountable(String... words) {
- for (String word : words) {
- uncountables.add(word);
- }
- return this;
- }
-
- public Inflector build()
- {
- return new Inflector(this);
- }
- }
-}
diff --git a/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/z_e_PreImage b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/z_e_PreImage
deleted file mode 100644
index 8d8786f..0000000
--- a/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff/z_e_PreImage
+++ /dev/null
@@ -1,209 +0,0 @@
-/**
- * Copyright © 2007 Chu Yeow Cheah
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Copied verbatim from http://dzone.com/snippets/java-inflections, used
- * and licensed with express permission from the author Chu Yeow Cheah.
- */
-
-package org.jsonschema2pojo.util;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * Transforms words (from singular to plural, from camelCase to under_score,
- * etc.). I got bored of doing Real Work...
- *
- * @author chuyeow
- */
-public class Inflector {
-
- // Pfft, can't think of a better name, but this is needed to avoid the price of initializing the pattern on each call.
- private static final Pattern UNDERSCORE_PATTERN_1 = Pattern.compile("([A-Z]+)([A-Z][a-z])");
- private static final Pattern UNDERSCORE_PATTERN_2 = Pattern.compile("([a-z\\d])([A-Z])");
-
- private List<RuleAndReplacement> plurals = new ArrayList<RuleAndReplacement>();
- private List<RuleAndReplacement> singulars = new ArrayList<RuleAndReplacement>();
- private List<String> uncountables = new ArrayList<String>();
-
- private static Inflector instance = new Inflector();
-
- private Inflector() {
- // Woo, you can't touch me.
-
- initialize();
- }
-
- private void initialize() {
- plural("$", "s");
- plural("s$", "s");
- plural("(ax|test)is$", "$1es");
- plural("(octop|vir)us$", "$1i");
- plural("(alias|status)$", "$1es");
- plural("(bu)s$", "$1es");
- plural("(buffal|tomat)o$", "$1oes");
- plural("([ti])um$", "$1a");
- plural("sis$", "ses");
- plural("(?:([^f])fe|([lr])f)$", "$1$2ves");
- plural("(hive)$", "$1s");
- plural("([^aeiouy]|qu)y$", "$1ies");
- plural("([^aeiouy]|qu)ies$", "$1y");
- plural("(x|ch|ss|sh)$", "$1es");
- plural("(matr|vert|ind)ix|ex$", "$1ices");
- plural("([m|l])ouse$", "$1ice");
- plural("(ox)$", "$1en");
- plural("(quiz)$", "$1zes");
-
- singular("s$", "");
- singular("(n)ews$", "$1ews");
- singular("([ti])a$", "$1um");
- singular("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$", "$1$2sis");
- singular("(^analy)ses$", "$1sis");
- singular("([^f])ves$", "$1fe");
- singular("(hive)s$", "$1");
- singular("(tive)s$", "$1");
- singular("([lr])ves$", "$1f");
- singular("([^aeiouy]|qu)ies$", "$1y");
- singular("(s)eries$", "$1eries");
- singular("(m)ovies$", "$1ovie");
- singular("(x|ch|ss|sh)es$", "$1");
- singular("([m|l])ice$", "$1ouse");
- singular("(bus)es$", "$1");
- singular("(o)es$", "$1");
- singular("(shoe)s$", "$1");
- singular("(cris|ax|test)es$", "$1is");
- singular("([octop|vir])i$", "$1us");
- singular("(alias|status)es$", "$1");
- singular("^(ox)en", "$1");
- singular("(vert|ind)ices$", "$1ex");
- singular("(matr)ices$", "$1ix");
- singular("(quiz)zes$", "$1");
- singular("(ess)$", "$1");
-
- singular("men$", "man");
- plural("man$", "men");
-
- irregular("curve", "curves");
- irregular("leaf", "leaves");
- irregular("roof", "rooves");
- irregular("person", "people");
- irregular("child", "children");
- irregular("sex", "sexes");
- irregular("move", "moves");
-
- uncountable(new String[] { "equipment", "information", "rice", "money", "species", "series", "fish", "sheep", "s" });
- }
-
- public static Inflector getInstance() {
- return instance;
- }
-
- private String underscore(String camelCasedWord) {
-
- // Regexes in Java are fucking stupid...
- String underscoredWord = UNDERSCORE_PATTERN_1.matcher(camelCasedWord).replaceAll("$1_$2");
- underscoredWord = UNDERSCORE_PATTERN_2.matcher(underscoredWord).replaceAll("$1_$2");
- underscoredWord = underscoredWord.replace('-', '_').toLowerCase();
-
- return underscoredWord;
- }
-
- public synchronized String pluralize(String word) {
- if (uncountables.contains(word.toLowerCase())) {
- return word;
- }
- return replaceWithFirstRule(word, plurals);
- }
-
- public synchronized String singularize(String word) {
- if (uncountables.contains(word.toLowerCase())) {
- return word;
- }
- return replaceWithFirstRule(word, singulars);
- }
-
- private String replaceWithFirstRule(String word, List<RuleAndReplacement> ruleAndReplacements) {
-
- for (RuleAndReplacement rar : ruleAndReplacements) {
- String rule = rar.getRule();
- String replacement = rar.getReplacement();
-
- // Return if we find a match.
- Matcher matcher = Pattern.compile(rule, Pattern.CASE_INSENSITIVE).matcher(word);
- if (matcher.find()) {
- return matcher.replaceAll(replacement);
- }
- }
- return word;
- }
-
- private String tableize(String className) {
- return pluralize(underscore(className));
- }
-
- private String tableize(Class<?> klass) {
- // Strip away package name - we only want the 'base' class name.
- String className = klass.getName().replace(klass.getPackage().getName() + ".", "");
- return tableize(className);
- }
-
- private void plural(String rule, String replacement) {
- plurals.add(0, new RuleAndReplacement(rule, replacement));
- }
-
- private void singular(String rule, String replacement) {
- singulars.add(0, new RuleAndReplacement(rule, replacement));
- }
-
- private void irregular(String singular, String plural) {
- plural(singular, plural);
- singular(plural, singular);
- }
-
- private void uncountable(String... words) {
- for (String word : words) {
- uncountables.add(word);
- }
- }
-}
-
-// Ugh, no open structs in Java (not-natively at least).
-class RuleAndReplacement {
- private String rule;
- private String replacement;
-
- public RuleAndReplacement(String rule, String replacement) {
- this.rule = rule;
- this.replacement = replacement;
- }
-
- public String getReplacement() {
- return replacement;
- }
-
- public void setReplacement(String replacement) {
- this.replacement = replacement;
- }
-
- public String getRule() {
- return rule;
- }
-
- public void setRule(String rule) {
- this.rule = rule;
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/symlinks/.gitattributes b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/symlinks/.gitattributes
new file mode 100644
index 0000000..b38f87f
--- /dev/null
+++ b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/symlinks/.gitattributes
@@ -0,0 +1 @@
+*.patch -crlf
diff --git a/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/symlinks/dirtest.patch b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/symlinks/dirtest.patch
new file mode 100644
index 0000000..a275c85
--- /dev/null
+++ b/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/symlinks/dirtest.patch
@@ -0,0 +1,9 @@
+diff --git a/a/b b/a/b
+new file mode 100644
+index 0000000..de98044
+--- /dev/null
++++ b/a/b
+@@ -0,0 +1,3 @@
++a
++b
++c
\ No newline at end of file
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java
index 57661a7..db2d5d1 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java
@@ -17,12 +17,16 @@
import static org.junit.Assert.fail;
import static org.junit.Assume.assumeTrue;
+import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.OutputStream;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.util.Set;
+import java.util.concurrent.TimeUnit;
import org.eclipse.jgit.api.ResetCommand.ResetType;
import org.eclipse.jgit.api.errors.FilterFailedException;
@@ -825,7 +829,7 @@
}
@Test
- public void testAddWholeRepo() throws Exception {
+ public void testAddWholeRepo() throws Exception {
FileUtils.mkdir(new File(db.getWorkTree(), "sub"));
File file = new File(db.getWorkTree(), "sub/a.txt");
FileUtils.createNewFile(file);
@@ -848,6 +852,72 @@
}
}
+ @Test
+ public void testAddAllNoRenormalize() throws Exception {
+ final int nOfFiles = 1000;
+ final int filesPerDir = nOfFiles / 10;
+ final int fileSizeInBytes = 10_000;
+ assertTrue(nOfFiles > 0);
+ assertTrue(filesPerDir > 0);
+ File dir = null;
+ File lastFile = null;
+ for (int i = 0; i < nOfFiles; i++) {
+ if (i % filesPerDir == 0) {
+ dir = new File(db.getWorkTree(), "dir" + (i / filesPerDir));
+ FileUtils.mkdir(dir);
+ }
+ lastFile = new File(dir, "file" + i);
+ try (OutputStream out = new BufferedOutputStream(
+ new FileOutputStream(lastFile))) {
+ for (int b = 0; b < fileSizeInBytes; b++) {
+ out.write('a' + (b % 26));
+ if (((b + 1) % 70) == 0) {
+ out.write('\n');
+ }
+ }
+ }
+ }
+ // Help null pointer analysis.
+ assert lastFile != null;
+ // Wait a bit. If entries are "racily clean", we'll recompute
+ // hashes from the disk files, and then the second add is also slow.
+ // We want to test the normal case.
+ fsTick(lastFile);
+ try (Git git = new Git(db)) {
+ long start = System.nanoTime();
+ git.add().addFilepattern(".").call();
+ long initialElapsed = System.nanoTime() - start;
+ assertEquals("Unexpected number on index entries", nOfFiles,
+ db.readDirCache().getEntryCount());
+ start = System.nanoTime();
+ git.add().addFilepattern(".").setRenormalize(false).call();
+ long secondElapsed = System.nanoTime() - start;
+ assertEquals("Unexpected number on index entries", nOfFiles,
+ db.readDirCache().getEntryCount());
+ // Fail the test if the second add all was not significantly faster.
+ // A factor of 4 is rather generous. The speed-up depends on the
+ // file system and OS caching and is hard to predict.
+ assertTrue(
+ "Second add all was too slow; initial took "
+ + TimeUnit.NANOSECONDS.toMillis(initialElapsed)
+ + ", second took "
+ + TimeUnit.NANOSECONDS.toMillis(secondElapsed),
+ secondElapsed * 4 <= initialElapsed);
+ // Change one file. The index should be updated even if
+ // renormalize==false. It doesn't matter what kind of change we do.
+ final String newData = "Hello";
+ Files.writeString(lastFile.toPath(), newData);
+ git.add().addFilepattern(".").setRenormalize(false).call();
+ DirCache dc = db.readDirCache();
+ DirCacheEntry e = dc.getEntry(lastFile.getParentFile().getName()
+ + '/' + lastFile.getName());
+ String blob = new String(db
+ .open(e.getObjectId(), Constants.OBJ_BLOB).getCachedBytes(),
+ UTF_8);
+ assertEquals("Unexpected index content", newData, blob);
+ }
+ }
+
// the same three cases as in testAddWithParameterUpdate
// file a exists in workdir and in index -> added
// file b exists not in workdir but in index -> unchanged
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ArchiveCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ArchiveCommandTest.java
index f2cceac..411eab3 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ArchiveCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ArchiveCommandTest.java
@@ -261,14 +261,10 @@
File archive = new File(getTemporaryDirectory(),
"archive." + format);
- archive(git, archive, fmt, new HashMap<String, Object>() {{
- put("compression-level", 1);
- }});
+ archive(git, archive, fmt, Map.of("compression-level", 1));
int sizeCompression1 = getNumBytes(archive);
- archive(git, archive, fmt, new HashMap<String, Object>() {{
- put("compression-level", 9);
- }});
+ archive(git, archive, fmt, Map.of("compression-level", 9));
int sizeCompression9 = getNumBytes(archive);
assertTrue(sizeCompression1 > sizeCompression9);
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 0d38197..301d6be 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
@@ -100,41 +100,73 @@
}
}
- @Test
- public void testSequentialCherryPick() throws IOException, JGitInternalException,
- GitAPIException {
- try (Git git = new Git(db)) {
- writeTrashFile("a", "first line\nsec. line\nthird line\n");
- git.add().addFilepattern("a").call();
- RevCommit firstCommit = git.commit().setMessage("create a").call();
+ @Test
+ public void testSequentialCherryPick()
+ throws IOException, JGitInternalException, GitAPIException {
+ try (Git git = new Git(db)) {
+ writeTrashFile("a", "first line\nsec. line\nthird line\n");
+ git.add().addFilepattern("a").call();
+ RevCommit firstCommit = git.commit().setMessage("create a").call();
- writeTrashFile("a", "first line\nsec. line\nthird line\nfourth line\n");
- git.add().addFilepattern("a").call();
- RevCommit enlargingA = git.commit().setMessage("enlarged a").call();
+ writeTrashFile("a",
+ "first line\nsec. line\nthird line\nfourth line\n");
+ git.add().addFilepattern("a").call();
+ RevCommit enlargingA = git.commit().setMessage("enlarged a").call();
- writeTrashFile("a",
- "first line\nsecond line\nthird line\nfourth line\n");
- git.add().addFilepattern("a").call();
- RevCommit fixingA = git.commit().setMessage("fixed a").call();
+ writeTrashFile("a",
+ "first line\nsecond line\nthird line\nfourth line\n");
+ git.add().addFilepattern("a").call();
+ RevCommit fixingA = git.commit().setMessage("fixed a").call();
- git.branchCreate().setName("side").setStartPoint(firstCommit).call();
- checkoutBranch("refs/heads/side");
+ git.branchCreate().setName("side").setStartPoint(firstCommit)
+ .call();
+ checkoutBranch("refs/heads/side");
- writeTrashFile("b", "nothing to do with a");
- git.add().addFilepattern("b").call();
- git.commit().setMessage("create b").call();
+ writeTrashFile("b", "nothing to do with a");
+ git.add().addFilepattern("b").call();
+ git.commit().setMessage("create b").call();
- CherryPickResult result = git.cherryPick().include(enlargingA).include(fixingA).call();
- assertEquals(CherryPickResult.CherryPickStatus.OK, result.getStatus());
+ CherryPickResult result = git.cherryPick().include(enlargingA)
+ .include(fixingA).call();
+ assertEquals(CherryPickResult.CherryPickStatus.OK,
+ result.getStatus());
- Iterator<RevCommit> history = git.log().call().iterator();
- assertEquals("fixed a", history.next().getFullMessage());
- assertEquals("enlarged a", history.next().getFullMessage());
- assertEquals("create b", history.next().getFullMessage());
- assertEquals("create a", history.next().getFullMessage());
- assertFalse(history.hasNext());
- }
- }
+ Iterator<RevCommit> history = git.log().call().iterator();
+ assertEquals("fixed a", history.next().getFullMessage());
+ assertEquals("enlarged a", history.next().getFullMessage());
+ assertEquals("create b", history.next().getFullMessage());
+ assertEquals("create a", history.next().getFullMessage());
+ assertFalse(history.hasNext());
+ }
+ }
+
+ @Test
+ public void testRootCherryPick()
+ throws IOException, JGitInternalException, GitAPIException {
+ try (Git git = new Git(db)) {
+ writeTrashFile("a", "a");
+ writeTrashFile("b", "b");
+ git.add().addFilepattern("a").addFilepattern("b").call();
+ RevCommit firstCommit = git.commit().setMessage("Create a and b")
+ .call();
+
+ git.checkout().setOrphan(true).setName("orphan").call();
+ git.rm().addFilepattern("a").addFilepattern("b").call();
+ writeTrashFile("a", "a");
+ git.add().addFilepattern("a").call();
+ git.commit().setMessage("Orphan a").call();
+
+ CherryPickResult result = git.cherryPick().include(firstCommit)
+ .call();
+ assertEquals(CherryPickResult.CherryPickStatus.OK,
+ result.getStatus());
+
+ Iterator<RevCommit> history = git.log().call().iterator();
+ assertEquals("Create a and b", history.next().getFullMessage());
+ assertEquals("Orphan a", history.next().getFullMessage());
+ assertFalse(history.hasNext());
+ }
+ }
@Test
public void testCherryPickDirtyIndex() throws Exception {
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java
index d574e45..7f820b0 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java
@@ -76,6 +76,10 @@
private static final String FILE1 = "file1";
+ private static final String FILE2 = "file2";
+
+ private static final String FILE3 = "file3";
+
protected Git git;
@Override
@@ -191,6 +195,143 @@
}
/**
+ * Rebase a single root commit onto an independent branch.
+ *
+ * <pre>
+ * A (master)
+ *
+ * B - C (orphan)
+ * </pre>
+ *
+ * to
+ *
+ * <pre>
+ * A
+ *
+ * B - C (orphan) - A' (master)
+ * </pre>
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testRebaseRootCommit() throws Exception {
+ writeTrashFile(FILE1, FILE1);
+ writeTrashFile(FILE2, FILE2);
+ git.add().addFilepattern(FILE1).addFilepattern(FILE2).call();
+ RevCommit first = git.commit().setMessage("Add files").call();
+ File file1 = new File(db.getWorkTree(), FILE1);
+ File file2 = new File(db.getWorkTree(), FILE2);
+ assertTrue(file1.exists());
+ assertTrue(file2.exists());
+ // Create an independent branch
+ git.checkout().setOrphan(true).setName("orphan").call();
+ git.rm().addFilepattern(FILE1).addFilepattern(FILE2).call();
+ assertFalse(file1.exists());
+ assertFalse(file2.exists());
+ writeTrashFile(FILE1, "something else");
+ git.add().addFilepattern(FILE1).call();
+ RevCommit orphanBase = git.commit().setMessage("Orphan base").call();
+ writeTrashFile(FILE1, FILE1);
+ git.add().addFilepattern(FILE1).call();
+ RevCommit orphanTop = git.commit().setMessage("Same file1").call();
+ checkoutBranch("refs/heads/master");
+ assertEquals(first.getId(), db.resolve("HEAD"));
+ RebaseResult res = git.rebase().setUpstream("refs/heads/orphan").call();
+ assertEquals(Status.OK, res.getStatus());
+ Iterable<RevCommit> log = git.log().add(db.resolve("HEAD")).call();
+ ObjectId[] ids = { orphanTop.getId(), orphanBase.getId() };
+ int nOfCommits = 0;
+ for (RevCommit c : log) {
+ nOfCommits++;
+ if (nOfCommits == 1) {
+ assertEquals("Add files", c.getFullMessage());
+ } else {
+ assertEquals(ids[nOfCommits - 2], c.getId());
+ }
+ }
+ assertEquals(3, nOfCommits);
+ assertTrue(file1.exists());
+ checkFile(file1, FILE1);
+ assertTrue(file2.exists());
+ checkFile(file2, FILE2);
+ }
+
+ /**
+ * Rebase a branch onto an independent branch.
+ *
+ * <pre>
+ * A - B (master)
+ *
+ * C - D (orphan)
+ * </pre>
+ *
+ * to
+ *
+ * <pre>
+ * A - B
+ *
+ * C - D (orphan) - A' - B' (master)
+ * </pre>
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testRebaseNoMergeBase() throws Exception {
+ writeTrashFile(FILE1, FILE1);
+ writeTrashFile(FILE2, FILE2);
+ git.add().addFilepattern(FILE1).addFilepattern(FILE2).call();
+ git.commit().setMessage("Add files").call();
+ writeTrashFile(FILE3, FILE3);
+ git.add().addFilepattern(FILE3).call();
+ RevCommit first = git.commit().setMessage("File3").call();
+ File file1 = new File(db.getWorkTree(), FILE1);
+ File file2 = new File(db.getWorkTree(), FILE2);
+ File file3 = new File(db.getWorkTree(), FILE3);
+ assertTrue(file1.exists());
+ assertTrue(file2.exists());
+ assertTrue(file3.exists());
+ // Create an independent branch
+ git.checkout().setOrphan(true).setName("orphan").call();
+ git.rm()
+ .addFilepattern(FILE1)
+ .addFilepattern(FILE2)
+ .addFilepattern(FILE3)
+ .call();
+ assertFalse(file1.exists());
+ assertFalse(file2.exists());
+ assertFalse(file3.exists());
+ writeTrashFile(FILE1, "something else");
+ git.add().addFilepattern(FILE1).call();
+ RevCommit orphanBase = git.commit().setMessage("Orphan base").call();
+ writeTrashFile(FILE1, FILE1);
+ git.add().addFilepattern(FILE1).call();
+ RevCommit orphanTop = git.commit().setMessage("Same file1").call();
+ checkoutBranch("refs/heads/master");
+ assertEquals(first.getId(), db.resolve("HEAD"));
+ RebaseResult res = git.rebase().setUpstream("refs/heads/orphan").call();
+ assertEquals(Status.OK, res.getStatus());
+ Iterable<RevCommit> log = git.log().add(db.resolve("HEAD")).call();
+ String[] msgs = { "File3", "Add files" };
+ ObjectId[] ids = { orphanTop.getId(), orphanBase.getId() };
+ int nOfCommits = 0;
+ for (RevCommit c : log) {
+ nOfCommits++;
+ if (nOfCommits <= msgs.length) {
+ assertEquals(msgs[nOfCommits - 1], c.getFullMessage());
+ } else {
+ assertEquals(ids[nOfCommits - msgs.length - 1], c.getId());
+ }
+ }
+ assertEquals(4, nOfCommits);
+ assertTrue(file1.exists());
+ checkFile(file1, FILE1);
+ assertTrue(file2.exists());
+ checkFile(file2, FILE2);
+ assertTrue(file3.exists());
+ checkFile(file3, FILE3);
+ }
+
+ /**
* Create the following commits and then attempt to rebase topic onto
* master. This will serialize the branches.
*
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/TagCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/TagCommandTest.java
index 9903417..c3f7213 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/TagCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/TagCommandTest.java
@@ -17,13 +17,16 @@
import static org.junit.Assert.fail;
import java.io.IOException;
+import java.util.Arrays;
import java.util.List;
+import java.util.stream.Collectors;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.api.errors.InvalidTagNameException;
import org.eclipse.jgit.api.errors.JGitInternalException;
import org.eclipse.jgit.api.errors.RefAlreadyExistsException;
import org.eclipse.jgit.junit.RepositoryTestCase;
+import org.eclipse.jgit.junit.TestRepository;
import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.RefUpdate;
import org.eclipse.jgit.lib.Repository;
@@ -286,4 +289,45 @@
}
}
+ @Test
+ public void testListTagsContainingCommit() throws Exception {
+ /* c3
+ * |
+ * v2 - c2 b2 - v1
+ * | |
+ * c1 b1
+ * \ /
+ * a
+ */
+ try (TestRepository<Repository> r = new TestRepository<>(
+ db)) {
+ Git git = Git.wrap(db);
+ RevCommit a = r.commit().create();
+ RevCommit b1 = r.commit(a);
+ RevCommit b2 = r.commit(b1);
+ RevCommit c1 = r.commit(a);
+ RevCommit c2 = r.commit(c1);
+ RevCommit c3 = r.commit(c2);
+ r.update("refs/tags/v1", r.tag("v1", b2));
+ r.update("refs/tags/v2", r.tag("v1.1", c2));
+ List<Ref> res = git.tagList().setContains(a).call();
+ assertEquals(2, res.size());
+ assertTrue(res.stream().map(Ref::getName)
+ .collect(Collectors.toSet()).containsAll(
+ Arrays.asList("refs/tags/v1", "refs/tags/v2")));
+
+ res = git.tagList().setContains(b1).call();
+ assertEquals(1, res.size());
+ assertTrue(res.stream().map(Ref::getName)
+ .collect(Collectors.toSet()).contains("refs/tags/v1"));
+
+ res = git.tagList().setContains(c1).call();
+ assertEquals(1, res.size());
+ assertTrue(res.stream().map(Ref::getName)
+ .collect(Collectors.toSet()).contains("refs/tags/v2"));
+
+ res = git.tagList().setContains(c3).call();
+ assertEquals(0, res.size());
+ }
+ }
}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/dircache/DirCacheEntryTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/dircache/DirCacheEntryTest.java
index 8e84dfa..01d1e02 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/dircache/DirCacheEntryTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/dircache/DirCacheEntryTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2020 Google Inc. and others
+ * Copyright (C) 2009, 2023 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
@@ -46,6 +46,16 @@
assertFalse(isValidPath("a/"));
assertFalse(isValidPath("ab/cd/ef/"));
assertFalse(isValidPath("a\u0000b"));
+ assertFalse(isValidPath(".git"));
+ assertFalse(isValidPath(".GIT"));
+ assertFalse(isValidPath(".Git"));
+ assertFalse(isValidPath(".git/b"));
+ assertFalse(isValidPath(".GIT/b"));
+ assertFalse(isValidPath(".Git/b"));
+ assertFalse(isValidPath("x/y/.git/z/b"));
+ assertFalse(isValidPath("x/y/.GIT/z/b"));
+ assertFalse(isValidPath("x/y/.Git/z/b"));
+ assertTrue(isValidPath("git/b"));
}
@SuppressWarnings("unused")
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/dircache/InvalidPathCheckoutTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/dircache/InvalidPathCheckoutTest.java
new file mode 100644
index 0000000..e3bc85a
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/dircache/InvalidPathCheckoutTest.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2023 Thomas Wolf <twolf@apache.org> and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.dircache;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThrows;
+
+import java.io.File;
+
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.ResetCommand.ResetType;
+import org.eclipse.jgit.junit.RepositoryTestCase;
+import org.eclipse.jgit.junit.TestRepository;
+import org.eclipse.jgit.lib.FileMode;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.revwalk.RevBlob;
+import org.eclipse.jgit.revwalk.RevCommit;
+import org.junit.Test;
+
+/**
+ * Tests for checking out with invalid paths.
+ */
+public class InvalidPathCheckoutTest extends RepositoryTestCase {
+
+ private DirCacheEntry brokenEntry(String fileName, RevBlob blob) {
+ DirCacheEntry entry = new DirCacheEntry("XXXX/" + fileName);
+ entry.path[0] = '.';
+ entry.path[1] = 'g';
+ entry.path[2] = 'i';
+ entry.path[3] = 't';
+ entry.setFileMode(FileMode.REGULAR_FILE);
+ entry.setObjectId(blob);
+ return entry;
+ }
+
+ @Test
+ public void testCheckoutIntoDotGit() throws Exception {
+ try (TestRepository<Repository> repo = new TestRepository<>(db)) {
+ db.incrementOpen();
+ // DirCacheEntry does not allow any path component to contain
+ // ".git". C git also forbids this. But what if somebody creates
+ // such an entry explicitly?
+ RevCommit base = repo
+ .commit(repo.tree(brokenEntry("b", repo.blob("test"))));
+ try (Git git = new Git(db)) {
+ assertThrows(InvalidPathException.class, () -> git.reset()
+ .setMode(ResetType.HARD).setRef(base.name()).call());
+ File b = new File(new File(trash, ".git"), "b");
+ assertFalse(".git/b should not exist", b.exists());
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/commitgraph/GraphObjectIndexTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/commitgraph/GraphObjectIndexTest.java
new file mode 100644
index 0000000..b533d5c
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/commitgraph/GraphObjectIndexTest.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2023, Google LLC
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+package org.eclipse.jgit.internal.storage.commitgraph;
+
+import org.eclipse.jgit.lib.ObjectId;
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
+public class GraphObjectIndexTest {
+
+ @Test
+ public void findGraphPosition_noObjInBucket() throws CommitGraphFormatException {
+ GraphObjectIndex idx = new GraphObjectIndex(100,
+ new byte[256 * 4], new byte[] {});
+ int graphPosition = idx.findGraphPosition(
+ ObjectId.fromString("731dfd4c5eb6f88b98e983b9b0551b3562a0c46c"));
+ assertEquals(-1, graphPosition);
+ }
+
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackReverseIndexWriterTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackReverseIndexWriterTest.java
new file mode 100644
index 0000000..2209764
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackReverseIndexWriterTest.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2023, Google LLC and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.internal.storage.file;
+
+import static org.junit.Assert.assertThrows;
+import static org.junit.Assert.assertTrue;
+
+import java.io.ByteArrayOutputStream;
+
+import org.junit.Test;
+
+public class PackReverseIndexWriterTest {
+
+ @Test
+ public void createWriter_defaultVersion() {
+ PackReverseIndexWriter version1 = PackReverseIndexWriter
+ .createWriter(new ByteArrayOutputStream());
+
+ assertTrue(version1 instanceof PackReverseIndexWriterV1);
+ }
+
+ @Test
+ public void createWriter_version1() {
+ PackReverseIndexWriter version1 = PackReverseIndexWriter
+ .createWriter(new ByteArrayOutputStream(), 1);
+
+ assertTrue(version1 instanceof PackReverseIndexWriterV1);
+ }
+
+ @Test
+ public void createWriter_unsupportedVersion() {
+ assertThrows(IllegalArgumentException.class,
+ () -> PackReverseIndexWriter
+ .createWriter(new ByteArrayOutputStream(), 2));
+ }
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackReverseIndexWriterV1Test.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackReverseIndexWriterV1Test.java
new file mode 100644
index 0000000..0124887
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackReverseIndexWriterV1Test.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright (C) 2023, Google LLC and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.internal.storage.file;
+
+import static org.eclipse.jgit.lib.Constants.OBJECT_ID_STRING_LENGTH;
+import static org.eclipse.jgit.lib.Constants.OBJ_BLOB;
+import static org.eclipse.jgit.lib.Constants.OBJ_COMMIT;
+import static org.eclipse.jgit.lib.Constants.OBJ_TREE;
+import static org.junit.Assert.assertArrayEquals;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jgit.lib.ObjectId;
+import org.eclipse.jgit.transport.PackedObjectInfo;
+import org.junit.Test;
+
+public class PackReverseIndexWriterV1Test {
+
+ private static byte[] PACK_CHECKSUM = new byte[] { 'P', 'A', 'C', 'K', 'C',
+ 'H', 'E', 'C', 'K', 'S', 'U', 'M', '3', '4', '5', '6', '7', '8',
+ '9', '0', };
+
+ @Test
+ public void write_noObjects() throws IOException {
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ PackReverseIndexWriter writer = PackReverseIndexWriter.createWriter(out,
+ 1);
+ List<PackedObjectInfo> objectsSortedByName = new ArrayList<>();
+
+ writer.write(objectsSortedByName, PACK_CHECKSUM);
+
+ byte[] expected = new byte[] { 'R', 'I', 'D', 'X', // magic
+ 0x00, 0x00, 0x00, 0x01, // file version
+ 0x00, 0x00, 0x00, 0x01, // oid version
+ // pack checksum to copy into at byte 12
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ // checksum
+ (byte) 0xd1, 0x1d, 0x17, (byte) 0xd5, (byte) 0xa1, 0x5c,
+ (byte) 0x8f, 0x45, 0x7e, 0x06, (byte) 0x91, (byte) 0xf2, 0x7e,
+ 0x20, 0x35, 0x2c, (byte) 0xdc, 0x4c, 0x46, (byte) 0xe4, };
+ System.arraycopy(PACK_CHECKSUM, 0, expected, 12, PACK_CHECKSUM.length);
+ assertArrayEquals(expected, out.toByteArray());
+ }
+
+ @Test
+ public void write_oneObject() throws IOException {
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ PackReverseIndexWriter writer = PackReverseIndexWriter.createWriter(out,
+ 1);
+ PackedObjectInfo a = objectInfo("a", OBJ_COMMIT, 0);
+ List<PackedObjectInfo> objectsSortedByName = List.of(a);
+
+ writer.write(objectsSortedByName, PACK_CHECKSUM);
+
+ byte[] expected = new byte[] { 'R', 'I', 'D', 'X', // magic
+ 0x00, 0x00, 0x00, 0x01, // file version
+ 0x00, 0x00, 0x00, 0x01, // oid version
+ 0x00, 0x00, 0x00, 0x00, // 0: "a" -> 0
+ // pack checksum to copy into at byte 16
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ // checksum
+ 0x48, 0x04, 0x29, 0x69, 0x2f, (byte) 0xf3, (byte) 0x80,
+ (byte) 0xa1, (byte) 0xf5, (byte) 0x92, (byte) 0xc2, 0x21, 0x46,
+ (byte) 0xd5, 0x08, 0x44, (byte) 0xa4, (byte) 0xf4, (byte) 0xc0,
+ (byte) 0xec, };
+ System.arraycopy(PACK_CHECKSUM, 0, expected, 16, PACK_CHECKSUM.length);
+ assertArrayEquals(expected, out.toByteArray());
+ }
+
+ @Test
+ public void write_multipleObjects() throws IOException {
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ PackReverseIndexWriter writer = PackReverseIndexWriter.createWriter(out,
+ 1);
+ PackedObjectInfo a = objectInfo("a", OBJ_BLOB, 20);
+ PackedObjectInfo b = objectInfo("b", OBJ_COMMIT, 0);
+ PackedObjectInfo c = objectInfo("c", OBJ_COMMIT, 52);
+ PackedObjectInfo d = objectInfo("d", OBJ_TREE, 7);
+ PackedObjectInfo e = objectInfo("e", OBJ_COMMIT, 38);
+ List<PackedObjectInfo> objectsSortedByName = List.of(a, b, c, d, e);
+
+ writer.write(objectsSortedByName, PACK_CHECKSUM);
+
+ byte[] expected = new byte[] { 'R', 'I', 'D', 'X', // magic
+ 0x00, 0x00, 0x00, 0x01, // file version
+ 0x00, 0x00, 0x00, 0x01, // oid version
+ 0x00, 0x00, 0x00, 0x01, // offset 0: "b" -> index @ 1
+ 0x00, 0x00, 0x00, 0x03, // offset 7: "d" -> index @ 3
+ 0x00, 0x00, 0x00, 0x00, // offset 20: "a" -> index @ 0
+ 0x00, 0x00, 0x00, 0x04, // offset 38: "e" -> index @ 4
+ 0x00, 0x00, 0x00, 0x02, // offset 52: "c" -> index @ 2
+ // pack checksum to copy into at byte 32
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ // checksum
+ (byte) 0xe3, 0x1c, (byte) 0xd3, (byte) 0xeb, (byte) 0x83, 0x47,
+ (byte) 0x80, (byte) 0xb1, (byte) 0xe0, 0x3c, 0x2b, 0x25,
+ (byte) 0xd6, 0x3e, (byte) 0xdc, (byte) 0xde, (byte) 0xbe, 0x4b,
+ 0x0a, (byte) 0xe2, };
+ System.arraycopy(PACK_CHECKSUM, 0, expected, 32, PACK_CHECKSUM.length);
+ assertArrayEquals(expected, out.toByteArray());
+ }
+
+ private static PackedObjectInfo objectInfo(String objectId, int type,
+ long offset) {
+ assert (objectId.length() == 1);
+ PackedObjectInfo objectInfo = new PackedObjectInfo(
+ ObjectId.fromString(objectId.repeat(OBJECT_ID_STRING_LENGTH)));
+ objectInfo.setType(type);
+ objectInfo.setOffset(offset);
+ return objectInfo;
+ }
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackWriterTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackWriterTest.java
index 2a403c7..24a81b6 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackWriterTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackWriterTest.java
@@ -542,6 +542,39 @@
}
@Test
+ public void testWriteReverseIndexConfig() {
+ assertFalse(config.isWriteReverseIndex());
+ config.setWriteReverseIndex(true);
+ assertTrue(config.isWriteReverseIndex());
+ }
+
+ @Test
+ public void testWriteReverseIndexOff() throws Exception {
+ config.setWriteReverseIndex(false);
+ writer = new PackWriter(config, db.newObjectReader());
+ ByteArrayOutputStream reverseIndexOutput = new ByteArrayOutputStream();
+
+ writer.writeReverseIndex(reverseIndexOutput);
+
+ assertEquals(0, reverseIndexOutput.size());
+ }
+
+ @Test
+ public void testWriteReverseIndexOn() throws Exception {
+ config.setWriteReverseIndex(true);
+ writeVerifyPack4(false);
+ ByteArrayOutputStream reverseIndexOutput = new ByteArrayOutputStream();
+ int headerBytes = 12;
+ int bodyBytes = 12;
+ int footerBytes = 40;
+
+ writer.writeReverseIndex(reverseIndexOutput);
+
+ assertTrue(reverseIndexOutput.size() == headerBytes + bodyBytes
+ + footerBytes);
+ }
+
+ @Test
public void testExclude() throws Exception {
// TestRepository closes repo
FileRepository repo = createBareRepository();
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/RefDirectoryTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/RefDirectoryTest.java
index 4b80f18..619e585 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/RefDirectoryTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/RefDirectoryTest.java
@@ -58,13 +58,13 @@
public class RefDirectoryTest extends LocalDiskRepositoryTestCase {
private Repository diskRepo;
- private TestRepository<Repository> repo;
+ TestRepository<Repository> repo;
- private RefDirectory refdir;
+ RefDirectory refdir;
- private RevCommit A;
+ RevCommit A;
- private RevCommit B;
+ RevCommit B;
private RevTag v1_0;
@@ -555,10 +555,6 @@
@Test
public void testGetRefs_LooseSorting_Bug_348834() throws IOException {
Map<String, Ref> refs;
-
- writeLooseRef("refs/heads/my/a+b", A);
- writeLooseRef("refs/heads/my/a/b/c", B);
-
final int[] count = new int[1];
ListenerHandle listener = Repository.getGlobalListenerList()
@@ -566,14 +562,27 @@
count[0]++;
});
+ // RefsChangedEvent on the first attempt to read a ref is not expected
+ // to be triggered (See Iea3a5035b0a1410b80b09cf53387b22b78b18018), so
+ // create an update and fire pending events to ensure subsequent events
+ // are fired.
+ writeLooseRef("refs/heads/test", A);
refs = refdir.getRefs(RefDatabase.ALL);
+ count[0] = 0;
+ int origSize = refs.size();
+
+ writeLooseRef("refs/heads/my/a+b", A);
+ writeLooseRef("refs/heads/my/a/b/c", B);
+
refs = refdir.getRefs(RefDatabase.ALL);
- listener.remove();
- assertEquals(1, count[0]); // Bug 348834 multiple RefsChangedEvents
- assertEquals(2, refs.size());
+ assertEquals(1, count[0]);
+ assertEquals(2, refs.size() - origSize);
assertEquals(A, refs.get("refs/heads/my/a+b").getObjectId());
assertEquals(B, refs.get("refs/heads/my/a/b/c").getObjectId());
+ refs = refdir.getRefs(RefDatabase.ALL);
+ assertEquals(1, count[0]); // Bug 348834 multiple RefsChangedEvents
+ listener.remove();
}
@Test
@@ -1340,6 +1349,17 @@
assertEquals(Storage.LOOSE, ref.getStorage());
}
+ void writePackedRef(String name, AnyObjectId id) throws IOException {
+ writePackedRefs(id.name() + " " + name + "\n");
+ }
+
+ void writePackedRefs(String content) throws IOException {
+ File pr = new File(diskRepo.getDirectory(), "packed-refs");
+ write(pr, content);
+ FS fs = diskRepo.getFS();
+ fs.setLastModified(pr.toPath(), Instant.now().minusSeconds(3600));
+ }
+
private void writeLooseRef(String name, AnyObjectId id) throws IOException {
writeLooseRef(name, id.name() + "\n");
}
@@ -1348,17 +1368,6 @@
write(new File(diskRepo.getDirectory(), name), content);
}
- private void writePackedRef(String name, AnyObjectId id) throws IOException {
- writePackedRefs(id.name() + " " + name + "\n");
- }
-
- private void writePackedRefs(String content) throws IOException {
- File pr = new File(diskRepo.getDirectory(), "packed-refs");
- write(pr, content);
- FS fs = diskRepo.getFS();
- fs.setLastModified(pr.toPath(), Instant.now().minusSeconds(3600));
- }
-
private void deleteLooseRef(String name) {
File path = new File(diskRepo.getDirectory(), name);
assertTrue("deleted " + name, path.delete());
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/SnapshottingRefDirectoryTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/SnapshottingRefDirectoryTest.java
new file mode 100644
index 0000000..c3dafe4
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/SnapshottingRefDirectoryTest.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc.
+ * and other copyright owners as documented in the project's IP log.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+package org.eclipse.jgit.internal.storage.file;
+
+import org.eclipse.jgit.lib.NullProgressMonitor;
+import org.eclipse.jgit.transport.ReceiveCommand;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.junit.Assert.assertEquals;
+
+public class SnapshottingRefDirectoryTest extends RefDirectoryTest {
+ private RefDirectory originalRefDirectory;
+
+ /** {@inheritDoc} */
+ @Before
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ originalRefDirectory = refdir;
+ refdir = refdir.createSnapshottingRefDirectory();
+ }
+
+ @Test
+ public void testSnapshot_CannotSeeExternalPackedRefsUpdates()
+ throws IOException {
+ String refName = "refs/heads/new";
+
+ writePackedRef(refName, A);
+ assertEquals(A, originalRefDirectory.exactRef(refName).getObjectId());
+ assertEquals(A, refdir.exactRef(refName).getObjectId());
+
+ writePackedRef(refName, B);
+ assertEquals(B, originalRefDirectory.exactRef(refName).getObjectId());
+ assertEquals(A, refdir.exactRef(refName).getObjectId());
+ }
+
+ @Test
+ public void testSnapshot_WriteThrough() throws IOException {
+ String refName = "refs/heads/new";
+
+ writePackedRef(refName, A);
+ assertEquals(A, originalRefDirectory.exactRef(refName).getObjectId());
+ assertEquals(A, refdir.exactRef(refName).getObjectId());
+
+ PackedBatchRefUpdate update = refdir.newBatchUpdate();
+ update.addCommand(new ReceiveCommand(A, B, refName));
+ update.execute(repo.getRevWalk(), NullProgressMonitor.INSTANCE);
+
+ assertEquals(B, originalRefDirectory.exactRef(refName).getObjectId());
+ assertEquals(B, refdir.exactRef(refName).getObjectId());
+ }
+
+ @Test
+ public void testSnapshot_IncludeExternalPackedRefsUpdatesWithWrites()
+ throws IOException {
+ String refA = "refs/heads/refA";
+ String refB = "refs/heads/refB";
+ writePackedRefs("" + //
+ A.name() + " " + refA + "\n" + //
+ A.name() + " " + refB + "\n");
+ assertEquals(A, refdir.exactRef(refA).getObjectId());
+ assertEquals(A, refdir.exactRef(refB).getObjectId());
+
+ writePackedRefs("" + //
+ B.name() + " " + refA + "\n" + //
+ A.name() + " " + refB + "\n");
+ PackedBatchRefUpdate update = refdir.newBatchUpdate();
+ update.addCommand(new ReceiveCommand(A, B, refB));
+ update.execute(repo.getRevWalk(), NullProgressMonitor.INSTANCE);
+
+ assertEquals(B, originalRefDirectory.exactRef(refA).getObjectId());
+ assertEquals(B, refdir.exactRef(refA).getObjectId());
+ assertEquals(B, originalRefDirectory.exactRef(refB).getObjectId());
+ assertEquals(B, refdir.exactRef(refB).getObjectId());
+ }
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/patch/PatchApplierTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/patch/PatchApplierTest.java
index 893fd61..92d47c2 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/patch/PatchApplierTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/patch/PatchApplierTest.java
@@ -24,10 +24,9 @@
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
+
import org.eclipse.jgit.annotations.Nullable;
import org.eclipse.jgit.api.Git;
-import org.eclipse.jgit.api.errors.PatchApplyException;
-import org.eclipse.jgit.api.errors.PatchFormatException;
import org.eclipse.jgit.attributes.FilterCommand;
import org.eclipse.jgit.attributes.FilterCommandFactory;
import org.eclipse.jgit.attributes.FilterCommandRegistry;
@@ -95,12 +94,16 @@
}
protected void initPreImage(String aName) throws Exception {
- File f = new File(db.getWorkTree(), aName);
preImage = IO
.readWholeStream(getTestResource(aName + "_PreImage"), 0)
.array();
+ addFile(aName, preImage);
+ }
+
+ protected void addFile(String aName, byte[] b) throws Exception {
+ File f = new File(db.getWorkTree(), aName);
+ Files.write(f.toPath(), b);
try (Git git = new Git(db)) {
- Files.write(f.toPath(), preImage);
git.add().addFilepattern(aName).call();
}
}
@@ -112,15 +115,17 @@
return new String(postImage, StandardCharsets.UTF_8);
}
- protected Result applyPatch()
- throws PatchApplyException, PatchFormatException, IOException {
- InputStream patchStream = getTestResource(name + ".patch");
- if (inCore) {
- try (ObjectInserter oi = db.newObjectInserter()) {
- return new PatchApplier(db, baseTip, oi).applyPatch(patchStream);
+ protected Result applyPatch() throws IOException {
+ try (InputStream patchStream = getTestResource(name + ".patch")) {
+ Patch patch = new Patch();
+ patch.parse(patchStream);
+ if (inCore) {
+ try (ObjectInserter oi = db.newObjectInserter()) {
+ return new PatchApplier(db, baseTip, oi).applyPatch(patch);
+ }
}
+ return new PatchApplier(db).applyPatch(patch);
}
- return new PatchApplier(db).applyPatch(patchStream);
}
protected static InputStream getTestResource(String patchFile) {
@@ -159,6 +164,7 @@
void verifyChange(Result result, String aName, boolean exists)
throws Exception {
+ assertEquals(0, result.getErrors().size());
assertEquals(1, result.getPaths().size());
verifyContent(result, aName, exists);
}
@@ -181,6 +187,7 @@
protected void checkBinary(Result result, int numberOfFiles)
throws Exception {
+ assertEquals(0, result.getErrors().size());
assertEquals(numberOfFiles, result.getPaths().size());
if (inCore) {
assertArrayEquals(postImage,
@@ -371,6 +378,68 @@
}
@Test
+ public void testAddAlreadyExistingFile() throws Exception {
+ addFile("M1", "existing content".getBytes(StandardCharsets.UTF_8));
+ init("M1", false, false);
+
+ Result result = applyPatch();
+
+ assertEquals(1, result.getErrors().size());
+ assertEquals(0, result.getPaths().size());
+ }
+
+ @Test
+ public void testDeleteNonexistentFile() throws Exception {
+ init("NonASCIIDel", false, false);
+
+ Result result = applyPatch();
+
+ assertEquals(1, result.getErrors().size());
+ assertEquals(0, result.getPaths().size());
+ }
+
+ @Test
+ public void testModifyNonexistentFile() throws Exception {
+ init("ShiftDown", false, true);
+
+ Result result = applyPatch();
+
+ assertEquals(1, result.getErrors().size());
+ assertEquals(0, result.getPaths().size());
+ }
+
+ @Test
+ public void testRenameNonexistentFile() throws Exception {
+ init("RenameNoHunks", false, true);
+
+ Result result = applyPatch();
+
+ assertEquals(1, result.getErrors().size());
+ assertEquals(0, result.getPaths().size());
+ }
+
+ @Test
+ public void testCopyNonexistentFile() throws Exception {
+ init("CopyWithHunks", false, true);
+
+ Result result = applyPatch();
+
+ assertEquals(1, result.getErrors().size());
+ assertEquals(0, result.getPaths().size());
+ }
+
+ @Test
+ public void testCopyOnTopAlreadyExistingFile() throws Exception {
+ addFile("CopyResult", "existing content".getBytes(StandardCharsets.UTF_8));
+ init("CopyWithHunks", true, false);
+
+ Result result = applyPatch();
+
+ assertEquals(1, result.getErrors().size());
+ assertEquals(0, result.getPaths().size());
+ }
+
+ @Test
public void testDoesNotAffectUnrelatedFiles() throws Exception {
initPreImage("Unaffected");
String expectedUnaffectedText = initPostImage("Unaffected");
@@ -380,6 +449,14 @@
verifyChange(result, "X");
verifyContent(result, "Unaffected", expectedUnaffectedText);
}
+
+ @Test
+ public void testConflictFails() throws Exception {
+ init("conflict");
+
+ Result result = applyPatch();
+ assertEquals(1, result.getErrors().size());
+ }
}
public static class InCore extends Base {
@@ -726,14 +803,6 @@
}
@Test
- public void testEditExample() throws Exception {
- init("z_e", true, true);
-
- Result result = applyPatch();
- verifyChange(result, "z_e");
- }
-
- @Test
public void testEditNoNewline() throws Exception {
init("z_e_no_nl", true, true);
@@ -824,5 +893,30 @@
FilterCommandRegistry.unregister("jgit://builtin/a2e/smudge");
}
}
+
+ private void dotGitTest(String fileName) throws Exception {
+ init(fileName, false, false);
+ Result result = null;
+ IOException ex = null;
+ try {
+ result = applyPatch();
+ } catch (IOException e) {
+ ex = e;
+ }
+ assertTrue(ex != null
+ || (result != null && !result.getErrors().isEmpty()));
+ File b = new File(new File(trash, ".git"), "b");
+ assertFalse(".git/b should not exist", b.exists());
+ }
+
+ @Test
+ public void testDotGit() throws Exception {
+ dotGitTest("dotgit");
+ }
+
+ @Test
+ public void testDotGit2() throws Exception {
+ dotGitTest("dotgit2");
+ }
}
}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkCommitGraphTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkCommitGraphTest.java
index 97d3f81..3cc0368 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkCommitGraphTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkCommitGraphTest.java
@@ -10,6 +10,7 @@
package org.eclipse.jgit.revwalk;
+import static java.util.Arrays.asList;
import static org.eclipse.jgit.internal.storage.commitgraph.CommitGraph.EMPTY;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -18,12 +19,15 @@
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.internal.storage.file.GC;
+import org.eclipse.jgit.lib.AnyObjectId;
import org.eclipse.jgit.lib.ConfigConstants;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.Ref;
@@ -254,6 +258,95 @@
testRevWalkBehavior("commits/8", "merge/2");
}
+ @Test
+ public void testMergedInto() throws Exception {
+ RevCommit c1 = commit();
+ Ref branch1 = branch(c1, "commits/1");
+ RevCommit c2 = commit(c1);
+ Ref branch2 = branch(c2, "commits/2");
+ RevCommit c3 = commit(c2);
+ Ref branch3 = branch(c3, "commits/3");
+ RevCommit c4 = commit(c1);
+ Ref branch4 = branch(c4, "commits/4");
+ RevCommit c5 = commit(c4);
+ Ref branch5 = branch(c5, "commits/5");
+ enableAndWriteCommitGraph();
+ RevCommit c6 = commit(c1);
+ Ref branch6 = branch(c6, "commits/6");
+ RevCommit c7 = commit(c2, c4);
+ Ref branch7 = branch(c7, "commits/7");
+ RevCommit c8 = commit(c5);
+ Ref branch8 = branch(c8, "commits/8");
+ RevCommit c9 = commit(c4, c6);
+ Ref branch9 = branch(c9, "commits/9");
+
+ /*
+ * <pre>
+ * current graph structure:
+ * 8
+ * |
+ * 3 7 5 9
+ * |/ \|/ \
+ * 2 4 6
+ * |___/____/
+ * 1
+ * </pre>
+ *
+ * [6, 7, 8, 9] are not in commit-graph.
+ */
+
+ reinitializeRevWalk();
+ assertFalse(isObjectIdInGraph(c9));
+ assertRefsEquals(asList(branch9), allMergedInto(c9));
+
+ assertFalse(isObjectIdInGraph(c8));
+ assertRefsEquals(asList(branch8), allMergedInto(c8));
+
+ assertFalse(isObjectIdInGraph(c7));
+ assertRefsEquals(asList(branch7), allMergedInto(c7));
+
+ assertFalse(isObjectIdInGraph(c6));
+ assertRefsEquals(asList(branch6, branch9), allMergedInto(c6));
+
+ assertTrue(isObjectIdInGraph(c5));
+ assertRefsEquals(asList(branch5, branch8), allMergedInto(c5));
+
+ assertTrue(isObjectIdInGraph(c4));
+ assertRefsEquals(asList(branch4, branch5, branch7, branch8, branch9),
+ allMergedInto(c4));
+
+ assertTrue(isObjectIdInGraph(c3));
+ assertRefsEquals(asList(branch3), allMergedInto(c3));
+
+ assertTrue(isObjectIdInGraph(c2));
+ assertRefsEquals(asList(branch2, branch3, branch7), allMergedInto(c2));
+
+ assertTrue(isObjectIdInGraph(c1));
+ assertRefsEquals(asList(branch1, branch2, branch3, branch4, branch5,
+ branch6, branch7, branch8, branch9), allMergedInto(c1));
+ }
+
+ boolean isObjectIdInGraph(AnyObjectId id) {
+ return rw.commitGraph().findGraphPosition(id) >= 0;
+ }
+
+ List<Ref> allMergedInto(RevCommit needle) throws IOException {
+ List<Ref> refs = db.getRefDatabase().getRefs();
+ return rw.getMergedInto(rw.lookupCommit(needle), refs);
+ }
+
+ void assertRefsEquals(List<Ref> expecteds, List<Ref> actuals) {
+ assertEquals(expecteds.size(), actuals.size());
+ Collections.sort(expecteds, Comparator.comparing(Ref::getName));
+ Collections.sort(actuals, Comparator.comparing(Ref::getName));
+ for (int i = 0; i < expecteds.size(); i++) {
+ Ref expected = expecteds.get(i);
+ Ref actual = actuals.get(i);
+ assertEquals(expected.getName(), actual.getName());
+ assertEquals(expected.getObjectId(), actual.getObjectId());
+ }
+ }
+
void testRevWalkBehavior(String branch, String compare) throws Exception {
assertCommits(
travel(TreeFilter.ALL, RevFilter.MERGE_BASE, RevSort.NONE, true,
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RewriteGeneratorTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RewriteGeneratorTest.java
new file mode 100644
index 0000000..04e3729
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RewriteGeneratorTest.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2023, HIS eG
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.revwalk;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import org.junit.Test;
+
+public class RewriteGeneratorTest extends RevWalkTestCase {
+
+ @Test
+ public void testRewriteGeneratorDoesNotExhaustPreviousGenerator()
+ throws Exception {
+ RevCommit a = commit();
+ a.flags |= RevWalk.TREE_REV_FILTER_APPLIED;
+ RevCommit b = commit(a);
+
+ LIFORevQueue q = new LIFORevQueue();
+ q.add(a);
+ q.add(b);
+
+ /*
+ * Since the TREE_REV_FILTER has been applied to commit a and the
+ * REWRITE flag has not been applied to commit a, the RewriteGenerator
+ * must not rewrite the parent of b and thus must not call the previous
+ * generator (since b already has its correct parent).
+ */
+ RewriteGenerator rewriteGenerator = new RewriteGenerator(q);
+ rewriteGenerator.next();
+
+ assertNotNull(
+ "Previous generator was unnecessarily exhausted by RewriteGenerator",
+ q.next());
+ }
+
+ @Test
+ public void testRewriteGeneratorRewritesParent() throws Exception {
+ RevCommit a = commit();
+ a.flags |= RevWalk.TREE_REV_FILTER_APPLIED;
+ a.flags |= RevWalk.REWRITE;
+ RevCommit b = commit(a);
+ assertEquals(1, b.getParentCount());
+
+ LIFORevQueue q = new LIFORevQueue();
+ /*
+ * We are only adding commit b (and not a), because PendingGenerator
+ * should never emit a commit that has the REWRITE flag set.
+ */
+ q.add(b);
+
+ RewriteGenerator rewriteGenerator = new RewriteGenerator(q);
+ RevCommit returnedB = rewriteGenerator.next();
+ assertEquals(b.getId(), returnedB.getId());
+ assertEquals(0, returnedB.getParentCount());
+ }
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/symlinks/DirectoryTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/symlinks/DirectoryTest.java
new file mode 100644
index 0000000..490c45b
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/symlinks/DirectoryTest.java
@@ -0,0 +1,259 @@
+/*
+ * Copyright (C) 2023 Thomas Wolf <twolf@apache.org> and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.symlinks;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.LinkOption;
+import java.nio.file.Path;
+
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.ResetCommand.ResetType;
+import org.eclipse.jgit.junit.RepositoryTestCase;
+import org.eclipse.jgit.junit.TestRepository;
+import org.eclipse.jgit.lib.ConfigConstants;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.lib.StoredConfig;
+import org.eclipse.jgit.patch.Patch;
+import org.eclipse.jgit.patch.PatchApplier;
+import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.util.FS;
+import org.eclipse.jgit.util.FileUtils;
+import org.junit.Assume;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameter;
+import org.junit.runners.Parameterized.Parameters;
+
+@RunWith(Parameterized.class)
+public class DirectoryTest extends RepositoryTestCase {
+
+ @BeforeClass
+ public static void checkPrecondition() throws Exception {
+ Assume.assumeTrue(FS.DETECTED.supportsSymlinks());
+ Path tempDir = Files.createTempDirectory("jgit");
+ try {
+ Path a = tempDir.resolve("a");
+ Files.writeString(a, "test");
+ Path b = tempDir.resolve("A");
+ Assume.assumeTrue(Files.exists(b));
+ } finally {
+ FileUtils.delete(tempDir.toFile(),
+ FileUtils.RECURSIVE | FileUtils.IGNORE_ERRORS);
+ }
+ }
+
+ @Parameters(name = "core.symlinks={0}")
+ public static Boolean[] parameters() {
+ return new Boolean[] { Boolean.TRUE, Boolean.FALSE };
+ }
+
+ @Parameter(0)
+ public boolean useSymlinks;
+
+ private void checkFiles() throws Exception {
+ File a = new File(trash, "a");
+ assertTrue("a should be a directory",
+ Files.isDirectory(a.toPath(), LinkOption.NOFOLLOW_LINKS));
+ File b = new File(a, "b");
+ assertTrue("a/b should exist", b.isFile());
+ File x = new File(trash, "x");
+ assertTrue("x should be a directory",
+ Files.isDirectory(x.toPath(), LinkOption.NOFOLLOW_LINKS));
+ File y = new File(x, "y");
+ assertTrue("x/y should exist", y.isFile());
+ }
+
+ @Test
+ public void testCheckout() throws Exception {
+ StoredConfig config = db.getConfig();
+ config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null,
+ ConfigConstants.CONFIG_KEY_SYMLINKS, useSymlinks);
+ config.save();
+ try (TestRepository<Repository> repo = new TestRepository<>(db)) {
+ db.incrementOpen();
+ // Create links directly in the git repo, then use a hard reset
+ // to get them into the workspace.
+ RevCommit base = repo.commit(
+ repo.tree(
+ repo.link("A", repo.blob(".git")),
+ repo.file("a/b", repo.blob("test")),
+ repo.file("x/y", repo.blob("test2"))));
+ try (Git git = new Git(db)) {
+ git.reset().setMode(ResetType.HARD).setRef(base.name()).call();
+ File b = new File(new File(trash, ".git"), "b");
+ assertFalse(".git/b should not exist", b.exists());
+ checkFiles();
+ }
+ }
+ }
+
+ @Test
+ public void testCheckout2() throws Exception {
+ StoredConfig config = db.getConfig();
+ config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null,
+ ConfigConstants.CONFIG_KEY_SYMLINKS, useSymlinks);
+ config.save();
+ try (TestRepository<Repository> repo = new TestRepository<>(db)) {
+ db.incrementOpen();
+ RevCommit base = repo.commit(
+ repo.tree(
+ repo.link("A/B", repo.blob("../.git")),
+ repo.file("a/b/a/b", repo.blob("test")),
+ repo.file("x/y", repo.blob("test2"))));
+ try (Git git = new Git(db)) {
+ boolean testFiles = true;
+ try {
+ git.reset().setMode(ResetType.HARD).setRef(base.name())
+ .call();
+ } catch (Exception e) {
+ if (!useSymlinks) {
+ // There is a file in the middle of the path where we'd
+ // expect a directory. This case is not handled
+ // anywhere. What would be a better reply than an IOE?
+ testFiles = false;
+ } else {
+ throw e;
+ }
+ }
+ File a = new File(new File(trash, ".git"), "a");
+ assertFalse(".git/a should not exist", a.exists());
+ if (testFiles) {
+ a = new File(trash, "a");
+ assertTrue("a should be a directory", Files.isDirectory(
+ a.toPath(), LinkOption.NOFOLLOW_LINKS));
+ File b = new File(a, "b");
+ assertTrue("a/b should be a directory", Files.isDirectory(
+ a.toPath(), LinkOption.NOFOLLOW_LINKS));
+ a = new File(b, "a");
+ assertTrue("a/b/a should be a directory", Files.isDirectory(
+ a.toPath(), LinkOption.NOFOLLOW_LINKS));
+ b = new File(a, "b");
+ assertTrue("a/b/a/b should exist", b.isFile());
+ File x = new File(trash, "x");
+ assertTrue("x should be a directory", Files.isDirectory(
+ x.toPath(), LinkOption.NOFOLLOW_LINKS));
+ File y = new File(x, "y");
+ assertTrue("x/y should exist", y.isFile());
+ }
+ }
+ }
+ }
+
+ @Test
+ public void testMerge() throws Exception {
+ StoredConfig config = db.getConfig();
+ config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null,
+ ConfigConstants.CONFIG_KEY_SYMLINKS, useSymlinks);
+ config.save();
+ try (TestRepository<Repository> repo = new TestRepository<>(db)) {
+ db.incrementOpen();
+ RevCommit base = repo.commit(
+ repo.tree(repo.file("q", repo.blob("test"))));
+ RevCommit side = repo.commit(
+ repo.tree(
+ repo.link("A", repo.blob(".git")),
+ repo.file("a/b", repo.blob("test")),
+ repo.file("x/y", repo.blob("test2"))));
+ try (Git git = new Git(db)) {
+ git.reset().setMode(ResetType.HARD).setRef(base.name()).call();
+ git.merge().include(side)
+ .setMessage("merged").call();
+ File b = new File(new File(trash, ".git"), "b");
+ assertFalse(".git/b should not exist", b.exists());
+ checkFiles();
+ }
+ }
+ }
+
+ @Test
+ public void testMerge2() throws Exception {
+ StoredConfig config = db.getConfig();
+ config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null,
+ ConfigConstants.CONFIG_KEY_SYMLINKS, useSymlinks);
+ config.save();
+ try (TestRepository<Repository> repo = new TestRepository<>(db)) {
+ db.incrementOpen();
+ RevCommit base = repo.commit(
+ repo.tree(
+ repo.file("q", repo.blob("test")),
+ repo.link("A", repo.blob(".git"))));
+ RevCommit side = repo.commit(
+ repo.tree(
+ repo.file("a/b", repo.blob("test")),
+ repo.file("x/y", repo.blob("test2"))));
+ try (Git git = new Git(db)) {
+ git.reset().setMode(ResetType.HARD).setRef(base.name()).call();
+ git.merge().include(side)
+ .setMessage("merged").call();
+ File b = new File(new File(trash, ".git"), "b");
+ assertFalse(".git/b should not exist", b.exists());
+ checkFiles();
+ }
+ }
+ }
+
+ @Test
+ public void testApply() throws Exception {
+ StoredConfig config = db.getConfig();
+ config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null,
+ ConfigConstants.CONFIG_KEY_SYMLINKS, useSymlinks);
+ config.save();
+ // PatchApplier doesn't do symlinks yet.
+ try (TestRepository<Repository> repo = new TestRepository<>(db)) {
+ db.incrementOpen();
+ RevCommit base = repo.commit(
+ repo.tree(
+ repo.file("x", repo.blob("test")),
+ repo.link("A", repo.blob(".git"))));
+ try (Git git = new Git(db)) {
+ git.reset().setMode(ResetType.HARD).setRef(base.name()).call();
+ Patch patch = new Patch();
+ try (InputStream patchStream = this.getClass()
+ .getResourceAsStream("dirtest.patch")) {
+ patch.parse(patchStream);
+ }
+ boolean testFiles = true;
+ try {
+ PatchApplier.Result result = new PatchApplier(db)
+ .applyPatch(patch);
+ assertNotNull(result);
+ } catch (IOException e) {
+ if (!useSymlinks) {
+ // There is a file there, so the patch won't apply.
+ // Unclear whether an IOE is the correct response,
+ // though. Probably some negative PatchApplier.Result is
+ // more appropriate.
+ testFiles = false;
+ } else {
+ throw e;
+ }
+ }
+ File b = new File(new File(trash, ".git"), "b");
+ assertFalse(".git/b should not exist", b.exists());
+ if (testFiles) {
+ File a = new File(trash, "a");
+ assertTrue("a should be a directory",
+ Files.isDirectory(a.toPath(), LinkOption.NOFOLLOW_LINKS));
+ b = new File(a, "b");
+ assertTrue("a/b should exist", b.isFile());
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackTest.java
index 61458dd..9755ed1 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackTest.java
@@ -22,9 +22,12 @@
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
import org.eclipse.jgit.dircache.DirCache;
@@ -53,6 +56,7 @@
import org.eclipse.jgit.revwalk.RevTag;
import org.eclipse.jgit.revwalk.RevTree;
import org.eclipse.jgit.storage.pack.PackStatistics;
+import org.eclipse.jgit.transport.BasePackFetchConnection.FetchConfig;
import org.eclipse.jgit.transport.UploadPack.RequestPolicy;
import org.eclipse.jgit.util.io.NullOutputStream;
import org.junit.After;
@@ -63,6 +67,8 @@
* Tests for server upload-pack utilities.
*/
public class UploadPackTest {
+ private static final int MAX_HAVES = 64;
+
private URIish uri;
private TestProtocol<Object> testProtocol;
@@ -87,6 +93,7 @@
@After
public void tearDown() {
+ TestProtocol.setFetchConfig(null);
Transport.unregister(testProtocol);
}
@@ -2158,6 +2165,231 @@
assertFalse(client.getObjectDatabase().has(three.toObjectId()));
}
+ /**
+ * <pre>
+ * remote:
+ * foo <- foofoo <-- branchFoo
+ * bar <- barbar <-- branchBar
+ *
+ * client:
+ * foo <-- branchFoo
+ * bar <-- branchBar
+ *
+ * fetch(branchFoo) should send exactly 1 have (i.e. foo) from branchFoo
+ * </pre>
+ */
+ @Test
+ public void testNegotiationTip() throws Exception {
+ RevCommit fooParent = remote.commit().message("foo").create();
+ RevCommit fooChild = remote.commit().message("foofoo").parent(fooParent)
+ .create();
+ RevCommit barParent = remote.commit().message("bar").create();
+ RevCommit barChild = remote.commit().message("barbar").parent(barParent)
+ .create();
+
+ // Remote has branchFoo at fooChild and branchBar at barChild
+ remote.update("branchFoo", fooChild);
+ remote.update("branchBar", barChild);
+
+ AtomicReference<UploadPack> uploadPack = new AtomicReference<>();
+ CountHavesPreUploadHook countHavesHook = new CountHavesPreUploadHook();
+ RevCommit localFooParent = null;
+
+ // Client has lagging branchFoo at fooParent and branchBar at barParent
+ try (TestRepository<InMemoryRepository> clientRepo = new TestRepository<>(
+ client)) {
+ localFooParent = clientRepo.commit().message("foo")
+ .create();
+ RevCommit localBarParent = clientRepo.commit().message("bar")
+ .create();
+
+ clientRepo.update("branchFoo", localFooParent);
+ clientRepo.update("branchBar", localBarParent);
+
+ testProtocol = new TestProtocol<>((Object req, Repository db) -> {
+ UploadPack up = new UploadPack(db);
+ up.setPreUploadHook(countHavesHook);
+ uploadPack.set(up);
+ return up;
+ }, null);
+
+ uri = testProtocol.register(ctx, server);
+
+ TestProtocol.setFetchConfig(new FetchConfig(true, MAX_HAVES, true));
+ try (Transport tn = testProtocol.open(uri,
+ clientRepo.getRepository(), "server")) {
+
+ tn.fetch(NullProgressMonitor.INSTANCE, Collections
+ .singletonList(new RefSpec("refs/heads/branchFoo")),
+ "branchFoo");
+ }
+ }
+
+ assertTrue(client.getObjectDatabase().has(fooParent.toObjectId()));
+ assertTrue(client.getObjectDatabase().has(fooChild.toObjectId()));
+ assertFalse(client.getObjectDatabase().has(barChild.toObjectId()));
+
+ assertEquals(1, uploadPack.get().getStatistics().getHaves());
+ assertTrue(countHavesHook.havesSentDuringNegotiation
+ .contains(localFooParent.toObjectId()));
+ }
+
+ /**
+ * Remote has 2 branches branchFoo and branchBar, each of them have 128 (2 x
+ * MAX_HAVES) commits each. Local has both the branches with lagging
+ * commits. Only 64 (1 x MAX_HAVES) from each branch and lagging 64.
+ * fetch(branchFoo) should send all 64 (MAX_HAVES) commits on branchFoo as
+ * haves and none from branchBar.
+ *
+ * Visual representation of the same:
+ *
+ * <pre>
+ * remote:
+ * parent
+ * / \
+ * branchFoo-0 branchBar-0
+ * branchFoo-1 branchBar-1
+ * ... ...
+ * ... ...
+ * branchFoo-128 branchBar-128
+ * ^-- branchFoo ^--branchBar
+ *
+ * local:
+ * parent
+ * / \
+ * branchFoo-0 branchBar-0
+ * branchFoo-1 branchBar-1
+ * ... ...
+ * ... ...
+ * branchFoo-64 branchBar-64
+ * ^-- branchFoo ^--branchBar
+ *
+ * fetch(branchFoo) should send all 64 (MAX_HAVES) commits on branchFoo as haves
+ * </pre>
+ */
+ @Test
+ public void testNegotiationTipWithLongerHistoryThanMaxHaves()
+ throws Exception {
+ Set<RevCommit> remoteFooCommits = new HashSet<>();
+ Set<RevCommit> remoteBarCommits = new HashSet<>();
+
+ RevCommit parent = remote.commit().message("branchFoo-0").create();
+ RevCommit parentFoo = parent;
+ remoteFooCommits.add(parentFoo);
+ for (int i = 1; i < 2 * MAX_HAVES; i++) {
+ RevCommit child = remote.commit()
+ .message("branchFoo-" + Integer.toString(i))
+ .parent(parentFoo)
+ .create();
+ parentFoo = child;
+ remoteFooCommits.add(parentFoo);
+
+ }
+ remote.update("branchFoo", parentFoo);
+
+ RevCommit parentBar = parent;
+ remoteBarCommits.add(parentBar);
+ for (int i = 1; i < 2 * MAX_HAVES; i++) {
+ RevCommit child = remote.commit()
+ .message("branchBar-" + Integer.toString(i))
+ .parent(parentBar)
+ .create();
+ parentBar = child;
+ remoteBarCommits.add(parentBar);
+ }
+ remote.update("branchBar", parentBar);
+
+ AtomicReference<UploadPack> uploadPack = new AtomicReference<>();
+ CountHavesPreUploadHook countHavesHook = new CountHavesPreUploadHook();
+ Set<ObjectId> localFooCommits = new HashSet<>();
+
+ try (TestRepository<InMemoryRepository> clientRepo = new TestRepository<>(
+ client)) {
+ RevCommit localParent = clientRepo.commit().message("branchBar-0")
+ .create();
+ RevCommit localParentFoo = localParent;
+ localFooCommits.add(localParentFoo);
+ for (int i = 1; i < 1 * MAX_HAVES; i++) {
+ RevCommit child = clientRepo.commit()
+ .message("branchFoo-" + Integer.toString(i))
+ .parent(localParentFoo).create();
+ localParentFoo = child;
+ localFooCommits.add(localParentFoo);
+ }
+ clientRepo.update("branchFoo", localParentFoo);
+
+ RevCommit localParentBar = localParent;
+ for (int i = 1; i < 1 * MAX_HAVES; i++) {
+ RevCommit child = clientRepo.commit()
+ .message("branchBar-" + Integer.toString(i))
+ .parent(localParentBar).create();
+ localParentBar = child;
+ }
+ clientRepo.update("branchBar", localParentBar);
+
+ testProtocol = new TestProtocol<>((Object req, Repository db) -> {
+ UploadPack up = new UploadPack(db);
+ up.setPreUploadHook(countHavesHook);
+ uploadPack.set(up);
+ return up;
+ }, null);
+
+ uri = testProtocol.register(ctx, server);
+ TestProtocol.setFetchConfig(new FetchConfig(true, MAX_HAVES, true));
+ try (Transport tn = testProtocol.open(uri,
+ clientRepo.getRepository(), "server")) {
+
+ tn.fetch(NullProgressMonitor.INSTANCE, Collections
+ .singletonList(new RefSpec("refs/heads/branchFoo")),
+ "branchFoo");
+ }
+ }
+
+ for (RevCommit c : remoteFooCommits) {
+ assertTrue(c.toObjectId() + "",
+ client.getObjectDatabase().has(c.toObjectId()));
+ }
+ remoteBarCommits.remove(parent);
+ for (RevCommit c : remoteBarCommits) {
+ assertFalse(client.getObjectDatabase().has(c.toObjectId()));
+ }
+
+ assertEquals(MAX_HAVES, uploadPack.get().getStatistics().getHaves());
+ // Verify that all the haves that were sent during negotiation are local
+ // commits from branchFoo
+ for (Object id : countHavesHook.havesSentDuringNegotiation) {
+ assertTrue(localFooCommits.contains(id));
+ }
+ }
+
+ private static class CountHavesPreUploadHook implements PreUploadHook {
+ Set<ObjectId> havesSentDuringNegotiation = new HashSet<>();
+
+ @Override
+ public void onSendPack(UploadPack unusedUploadPack,
+ Collection<? extends ObjectId> unusedWants,
+ Collection<? extends ObjectId> haves)
+ throws ServiceMayNotContinueException {
+ // record haves
+ havesSentDuringNegotiation.addAll(haves);
+ }
+
+ @Override
+ public void onEndNegotiateRound(UploadPack unusedUploadPack,
+ Collection<? extends ObjectId> unusedWants, int unusedCntCommon,
+ int unusedCntNotFound, boolean unusedReady)
+ throws ServiceMayNotContinueException {
+ // Do nothing.
+ }
+
+ @Override
+ public void onBeginNegotiateRound(UploadPack unusedUploadPack,
+ Collection<? extends ObjectId> unusedWants,
+ int unusedCntOffered) throws ServiceMayNotContinueException {
+ // Do nothing.
+ }
+ }
+
@Test
public void testV2FetchBadWantRef() throws Exception {
RevCommit one = remote.commit().message("1").create();
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FilterCommandsTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FilterCommandsTest.java
index 89d31c3..0513da2 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FilterCommandsTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FilterCommandsTest.java
@@ -100,8 +100,7 @@
}
@Test
- public void testBuiltinCleanFilter()
- throws IOException, GitAPIException {
+ public void testBuiltinCleanFilter() throws Exception {
String builtinCommandName = "jgit://builtin/test/clean";
FilterCommandRegistry.register(builtinCommandName,
new TestCommandFactory('c'));
@@ -113,28 +112,40 @@
git.add().addFilepattern(".gitattributes").call();
git.commit().setMessage("add filter").call();
- writeTrashFile("Test.txt", "Hello again");
+ File testFile = writeTrashFile("Test.txt", "Hello again");
+ // Wait a little bit to ensure that the call with setRenormalize(false)
+ // below doesn't consider the file "racily clean".
+ fsTick(testFile);
git.add().addFilepattern("Test.txt").call();
assertEquals(
- "[.gitattributes, mode:100644, content:*.txt filter=test][Test.txt, mode:100644, content:cHceclclcoc cacgcacicn]",
+ "[.gitattributes, mode:100644, content:*.txt filter=test]"
+ + "[Test.txt, mode:100644, content:cHceclclcoc cacgcacicn]",
indexState(CONTENT));
writeTrashFile("Test.bin", "Hello again");
git.add().addFilepattern("Test.bin").call();
assertEquals(
- "[.gitattributes, mode:100644, content:*.txt filter=test][Test.bin, mode:100644, content:Hello again][Test.txt, mode:100644, content:cHceclclcoc cacgcacicn]",
+ "[.gitattributes, mode:100644, content:*.txt filter=test]"
+ + "[Test.bin, mode:100644, content:Hello again]"
+ + "[Test.txt, mode:100644, content:cHceclclcoc cacgcacicn]",
indexState(CONTENT));
config.setString("filter", "test", "clean", null);
config.save();
+ git.add().addFilepattern("Test.txt").setRenormalize(false).call();
+ assertEquals("No index update expected with renormalize==false",
+ "[.gitattributes, mode:100644, content:*.txt filter=test]"
+ + "[Test.bin, mode:100644, content:Hello again]"
+ + "[Test.txt, mode:100644, content:cHceclclcoc cacgcacicn]",
+ indexState(CONTENT));
+
git.add().addFilepattern("Test.txt").call();
- assertEquals(
- "[.gitattributes, mode:100644, content:*.txt filter=test][Test.bin, mode:100644, content:Hello again][Test.txt, mode:100644, content:Hello again]",
+ assertEquals("Index update expected with renormalize==true",
+ "[.gitattributes, mode:100644, content:*.txt filter=test]"
+ + "[Test.bin, mode:100644, content:Hello again]"
+ + "[Test.txt, mode:100644, content:Hello again]",
indexState(CONTENT));
-
- config.setString("filter", "test", "clean", null);
- config.save();
}
@Test
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/IntListTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/IntListTest.java
index 6f4292c..2bb8596 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/IntListTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/IntListTest.java
@@ -15,6 +15,7 @@
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import org.eclipse.jgit.util.IntList.IntComparator;
import org.junit.Test;
public class IntListTest {
@@ -43,6 +44,15 @@
}
@Test
+ public void testFilledWithRange() {
+ IntList list = IntList.filledWithRange(-2, 13);
+ assertEquals(15, list.size());
+ for (int i = 0; i < list.size(); i++) {
+ assertEquals(i - 2, list.get(i));
+ }
+ }
+
+ @Test
public void testAdd_SmallGroup() {
final IntList i = new IntList();
final int n = 5;
@@ -164,6 +174,22 @@
}
@Test
+ public void testSort_byAbs() {
+ IntList list = new IntList();
+ list.add(-3);
+ list.add(-2);
+ list.add(0);
+ list.add(1);
+ list.add(4);
+ list.add(1);
+ list.sort(new AbsIntComparator());
+ int[] expected = { 0, 1, 1, -2, -3, 4 };
+ for (int i = 0; i < list.size(); i++) {
+ assertEquals(expected[i], list.get(i));
+ }
+ }
+
+ @Test
public void testToString() {
final IntList i = new IntList();
i.add(1);
@@ -173,4 +199,13 @@
assertEquals("[1, 13, 5]", i.toString());
}
+ private static class AbsIntComparator implements IntComparator {
+ private AbsIntComparator() {
+ }
+
+ @Override
+ public int compare(int a, int b) {
+ return Math.abs(a) - Math.abs(b);
+ }
+ }
}
diff --git a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF
index 2e61a7b..fd679f9 100644
--- a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF
@@ -4,14 +4,14 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit.ui
Bundle-SymbolicName: org.eclipse.jgit.ui
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Vendor: %Bundle-Vendor
Bundle-RequiredExecutionEnvironment: JavaSE-11
-Export-Package: org.eclipse.jgit.awtui;version="6.5.1"
-Import-Package: org.eclipse.jgit.errors;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.lib;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.nls;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revplot;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.revwalk;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.transport;version="[6.5.1,6.6.0)",
- org.eclipse.jgit.util;version="[6.5.1,6.6.0)"
+Export-Package: org.eclipse.jgit.awtui;version="6.6.2"
+Import-Package: org.eclipse.jgit.errors;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.lib;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.nls;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revplot;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.revwalk;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.transport;version="[6.6.2,6.7.0)",
+ org.eclipse.jgit.util;version="[6.6.2,6.7.0)"
diff --git a/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF
index edbf1f3..be9bb5d 100644
--- a/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit.ui/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
Bundle-Name: org.eclipse.jgit.ui - Sources
Bundle-SymbolicName: org.eclipse.jgit.ui.source
Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.5.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit.ui;version="6.5.1.qualifier";roots="."
+Bundle-Version: 6.6.2.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit.ui;version="6.6.2.qualifier";roots="."
diff --git a/org.eclipse.jgit.ui/pom.xml b/org.eclipse.jgit.ui/pom.xml
index 625b757..cdb6f84 100644
--- a/org.eclipse.jgit.ui/pom.xml
+++ b/org.eclipse.jgit.ui/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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
new file mode 100644
index 0000000..a6aff1b
--- /dev/null
+++ b/org.eclipse.jgit/.settings/.api_filters
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.jgit" version="2">
+ <resource path="src/org/eclipse/jgit/api/GarbageCollectCommand.java" type="org.eclipse.jgit.api.GarbageCollectCommand">
+ <filter id="1142947843">
+ <message_arguments>
+ <message_argument value="5.13.3"/>
+ <message_argument value="setPackKeptObjects(boolean)"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/jgit/dircache/Checkout.java" type="org.eclipse.jgit.dircache.Checkout">
+ <filter id="1109393411">
+ <message_arguments>
+ <message_argument value="6.6.1"/>
+ <message_argument value="org.eclipse.jgit.dircache.Checkout"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/jgit/errors/PackMismatchException.java" type="org.eclipse.jgit.errors.PackMismatchException">
+ <filter id="1142947843">
+ <message_arguments>
+ <message_argument value="5.9.1"/>
+ <message_argument value="isPermanent()"/>
+ </message_arguments>
+ </filter>
+ <filter id="1142947843">
+ <message_arguments>
+ <message_argument value="5.9.1"/>
+ <message_argument value="setPermanent(boolean)"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/jgit/lib/ConfigConstants.java" type="org.eclipse.jgit.lib.ConfigConstants">
+ <filter id="1142947843">
+ <message_arguments>
+ <message_argument value="5.13.2"/>
+ <message_argument value="CONFIG_KEY_SKIPHASH"/>
+ </message_arguments>
+ </filter>
+ <filter id="1142947843">
+ <message_arguments>
+ <message_argument value="5.13.3"/>
+ <message_argument value="CONFIG_KEY_PACK_KEPT_OBJECTS"/>
+ </message_arguments>
+ </filter>
+ <filter id="1142947843">
+ <message_arguments>
+ <message_argument value="5.13.3"/>
+ <message_argument value="CONFIG_REPACK_SECTION"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/jgit/lib/FileModeCache.java" type="org.eclipse.jgit.lib.FileModeCache">
+ <filter id="1109393411">
+ <message_arguments>
+ <message_argument value="6.6.1"/>
+ <message_argument value="org.eclipse.jgit.lib.FileModeCache"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/jgit/revwalk/RevCommit.java" type="org.eclipse.jgit.revwalk.RevCommit">
+ <filter id="1193279491">
+ <message_arguments>
+ <message_argument value="6.5.1"/>
+ <message_argument value="buffer"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/jgit/storage/pack/PackConfig.java" type="org.eclipse.jgit.storage.pack.PackConfig">
+ <filter id="336658481">
+ <message_arguments>
+ <message_argument value="org.eclipse.jgit.storage.pack.PackConfig"/>
+ <message_argument value="DEFAULT_PACK_KEPT_OBJECTS"/>
+ </message_arguments>
+ </filter>
+ <filter id="336658481">
+ <message_arguments>
+ <message_argument value="org.eclipse.jgit.storage.pack.PackConfig"/>
+ <message_argument value="DEFAULT_WRITE_REVERSE_INDEX"/>
+ </message_arguments>
+ </filter>
+ <filter id="1142947843">
+ <message_arguments>
+ <message_argument value="5.13.3"/>
+ <message_argument value="DEFAULT_PACK_KEPT_OBJECTS"/>
+ </message_arguments>
+ </filter>
+ <filter id="1142947843">
+ <message_arguments>
+ <message_argument value="5.13.3"/>
+ <message_argument value="isPackKeptObjects()"/>
+ </message_arguments>
+ </filter>
+ <filter id="1142947843">
+ <message_arguments>
+ <message_argument value="5.13.3"/>
+ <message_argument value="setPackKeptObjects(boolean)"/>
+ </message_arguments>
+ </filter>
+ </resource>
+</component>
diff --git a/org.eclipse.jgit/META-INF/MANIFEST.MF b/org.eclipse.jgit/META-INF/MANIFEST.MF
index c5b5369..bf40cfd 100644
--- a/org.eclipse.jgit/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit/META-INF/MANIFEST.MF
@@ -3,12 +3,12 @@
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.jgit
Bundle-SymbolicName: org.eclipse.jgit
-Bundle-Version: 6.5.1.qualifier
+Bundle-Version: 6.6.2.qualifier
Bundle-Localization: plugin
Bundle-Vendor: %Bundle-Vendor
Eclipse-ExtensibleAPI: true
-Export-Package: org.eclipse.jgit.annotations;version="6.5.1",
- org.eclipse.jgit.api;version="6.5.1";
+Export-Package: org.eclipse.jgit.annotations;version="6.6.2",
+ org.eclipse.jgit.api;version="6.6.2";
uses:="org.eclipse.jgit.transport,
org.eclipse.jgit.notes,
org.eclipse.jgit.dircache,
@@ -23,18 +23,18 @@
org.eclipse.jgit.revwalk.filter,
org.eclipse.jgit.blame,
org.eclipse.jgit.merge",
- org.eclipse.jgit.api.errors;version="6.5.1";
+ org.eclipse.jgit.api.errors;version="6.6.2";
uses:="org.eclipse.jgit.lib,
org.eclipse.jgit.errors",
- org.eclipse.jgit.attributes;version="6.5.1";
+ org.eclipse.jgit.attributes;version="6.6.2";
uses:="org.eclipse.jgit.lib,
org.eclipse.jgit.treewalk",
- org.eclipse.jgit.blame;version="6.5.1";
+ org.eclipse.jgit.blame;version="6.6.2";
uses:="org.eclipse.jgit.lib,
org.eclipse.jgit.revwalk,
org.eclipse.jgit.treewalk.filter,
org.eclipse.jgit.diff",
- org.eclipse.jgit.diff;version="6.5.1";
+ org.eclipse.jgit.diff;version="6.6.2";
uses:="org.eclipse.jgit.lib,
org.eclipse.jgit.attributes,
org.eclipse.jgit.revwalk,
@@ -42,53 +42,53 @@
org.eclipse.jgit.treewalk.filter,
org.eclipse.jgit.treewalk,
org.eclipse.jgit.util",
- org.eclipse.jgit.dircache;version="6.5.1";
+ org.eclipse.jgit.dircache;version="6.6.2";
uses:="org.eclipse.jgit.events,
org.eclipse.jgit.lib,
org.eclipse.jgit.attributes,
org.eclipse.jgit.treewalk,
org.eclipse.jgit.util",
- org.eclipse.jgit.errors;version="6.5.1";
+ org.eclipse.jgit.errors;version="6.6.2";
uses:="org.eclipse.jgit.transport,
org.eclipse.jgit.dircache,
org.eclipse.jgit.lib,
org.eclipse.jgit.internal.storage.pack",
- org.eclipse.jgit.events;version="6.5.1";
+ org.eclipse.jgit.events;version="6.6.2";
uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.fnmatch;version="6.5.1",
- org.eclipse.jgit.gitrepo;version="6.5.1";
+ org.eclipse.jgit.fnmatch;version="6.6.2",
+ org.eclipse.jgit.gitrepo;version="6.6.2";
uses:="org.xml.sax.helpers,
org.eclipse.jgit.api,
org.eclipse.jgit.lib,
org.eclipse.jgit.revwalk,
org.xml.sax",
- org.eclipse.jgit.gitrepo.internal;version="6.5.1";x-internal:=true,
- org.eclipse.jgit.hooks;version="6.5.1";uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.ignore;version="6.5.1",
- org.eclipse.jgit.ignore.internal;version="6.5.1";
+ org.eclipse.jgit.gitrepo.internal;version="6.6.2";x-internal:=true,
+ org.eclipse.jgit.hooks;version="6.6.2";uses:="org.eclipse.jgit.lib",
+ org.eclipse.jgit.ignore;version="6.6.2",
+ org.eclipse.jgit.ignore.internal;version="6.6.2";
x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal;version="6.5.1";
+ org.eclipse.jgit.internal;version="6.6.2";
x-friends:="org.eclipse.jgit.test,
org.eclipse.jgit.http.test",
- org.eclipse.jgit.internal.diff;version="6.5.1";
+ org.eclipse.jgit.internal.diff;version="6.6.2";
x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.diffmergetool;version="6.5.1";
+ org.eclipse.jgit.internal.diffmergetool;version="6.6.2";
x-friends:="org.eclipse.jgit.test,
org.eclipse.jgit.pgm.test,
org.eclipse.jgit.pgm,
org.eclipse.egit.ui",
- org.eclipse.jgit.internal.fsck;version="6.5.1";
+ org.eclipse.jgit.internal.fsck;version="6.6.2";
x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.revwalk;version="6.5.1";
+ org.eclipse.jgit.internal.revwalk;version="6.6.2";
x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.commitgraph;version="6.5.1";
+ org.eclipse.jgit.internal.storage.commitgraph;version="6.6.2";
x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.dfs;version="6.5.1";
+ org.eclipse.jgit.internal.storage.dfs;version="6.6.2";
x-friends:="org.eclipse.jgit.test,
org.eclipse.jgit.http.server,
org.eclipse.jgit.http.test,
org.eclipse.jgit.lfs.test",
- org.eclipse.jgit.internal.storage.file;version="6.5.1";
+ org.eclipse.jgit.internal.storage.file;version="6.6.2";
x-friends:="org.eclipse.jgit.test,
org.eclipse.jgit.junit,
org.eclipse.jgit.junit.http,
@@ -97,34 +97,34 @@
org.eclipse.jgit.pgm,
org.eclipse.jgit.pgm.test,
org.eclipse.jgit.ssh.apache",
- org.eclipse.jgit.internal.storage.io;version="6.5.1";
+ org.eclipse.jgit.internal.storage.io;version="6.6.2";
x-friends:="org.eclipse.jgit.junit,
org.eclipse.jgit.test,
org.eclipse.jgit.pgm",
- org.eclipse.jgit.internal.storage.memory;version="6.5.1";
+ org.eclipse.jgit.internal.storage.memory;version="6.6.2";
x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.storage.pack;version="6.5.1";
+ org.eclipse.jgit.internal.storage.pack;version="6.6.2";
x-friends:="org.eclipse.jgit.junit,
org.eclipse.jgit.test,
org.eclipse.jgit.pgm",
- org.eclipse.jgit.internal.storage.reftable;version="6.5.1";
+ org.eclipse.jgit.internal.storage.reftable;version="6.6.2";
x-friends:="org.eclipse.jgit.http.test,
org.eclipse.jgit.junit,
org.eclipse.jgit.test,
org.eclipse.jgit.pgm",
- org.eclipse.jgit.internal.submodule;version="6.5.1";x-internal:=true,
- org.eclipse.jgit.internal.transport.connectivity;version="6.5.1";
+ org.eclipse.jgit.internal.submodule;version="6.6.2";x-internal:=true,
+ org.eclipse.jgit.internal.transport.connectivity;version="6.6.2";
x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.http;version="6.5.1";
+ org.eclipse.jgit.internal.transport.http;version="6.6.2";
x-friends:="org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.parser;version="6.5.1";
+ org.eclipse.jgit.internal.transport.parser;version="6.6.2";
x-friends:="org.eclipse.jgit.http.server,
org.eclipse.jgit.test",
- org.eclipse.jgit.internal.transport.ssh;version="6.5.1";
+ org.eclipse.jgit.internal.transport.ssh;version="6.6.2";
x-friends:="org.eclipse.jgit.ssh.apache,
org.eclipse.jgit.ssh.jsch,
org.eclipse.jgit.test",
- org.eclipse.jgit.lib;version="6.5.1";
+ org.eclipse.jgit.lib;version="6.6.2";
uses:="org.eclipse.jgit.transport,
org.eclipse.jgit.util.sha1,
org.eclipse.jgit.dircache,
@@ -138,12 +138,12 @@
org.eclipse.jgit.util,
org.eclipse.jgit.submodule,
org.eclipse.jgit.util.time",
- org.eclipse.jgit.lib.internal;version="6.5.1";
+ org.eclipse.jgit.lib.internal;version="6.6.2";
x-friends:="org.eclipse.jgit.test,
org.eclipse.jgit.pgm,
org.eclipse.egit.ui",
- org.eclipse.jgit.logging;version="6.5.1",
- org.eclipse.jgit.merge;version="6.5.1";
+ org.eclipse.jgit.logging;version="6.6.2",
+ org.eclipse.jgit.merge;version="6.6.2";
uses:="org.eclipse.jgit.dircache,
org.eclipse.jgit.lib,
org.eclipse.jgit.revwalk,
@@ -152,40 +152,40 @@
org.eclipse.jgit.util,
org.eclipse.jgit.api,
org.eclipse.jgit.attributes",
- org.eclipse.jgit.nls;version="6.5.1",
- org.eclipse.jgit.notes;version="6.5.1";
+ org.eclipse.jgit.nls;version="6.6.2",
+ org.eclipse.jgit.notes;version="6.6.2";
uses:="org.eclipse.jgit.lib,
org.eclipse.jgit.revwalk,
org.eclipse.jgit.treewalk,
org.eclipse.jgit.merge",
- org.eclipse.jgit.patch;version="6.5.1";
+ org.eclipse.jgit.patch;version="6.6.2";
uses:="org.eclipse.jgit.lib,
org.eclipse.jgit.diff",
- org.eclipse.jgit.revplot;version="6.5.1";
+ org.eclipse.jgit.revplot;version="6.6.2";
uses:="org.eclipse.jgit.lib,
org.eclipse.jgit.revwalk",
- org.eclipse.jgit.revwalk;version="6.5.1";
+ org.eclipse.jgit.revwalk;version="6.6.2";
uses:="org.eclipse.jgit.lib,
org.eclipse.jgit.diff,
org.eclipse.jgit.treewalk.filter,
org.eclipse.jgit.revwalk.filter,
org.eclipse.jgit.treewalk",
- org.eclipse.jgit.revwalk.filter;version="6.5.1";
+ org.eclipse.jgit.revwalk.filter;version="6.6.2";
uses:="org.eclipse.jgit.revwalk,
org.eclipse.jgit.lib,
org.eclipse.jgit.util",
- org.eclipse.jgit.storage.file;version="6.5.1";
+ org.eclipse.jgit.storage.file;version="6.6.2";
uses:="org.eclipse.jgit.lib,
org.eclipse.jgit.util",
- org.eclipse.jgit.storage.pack;version="6.5.1";
+ org.eclipse.jgit.storage.pack;version="6.6.2";
uses:="org.eclipse.jgit.lib",
- org.eclipse.jgit.submodule;version="6.5.1";
+ org.eclipse.jgit.submodule;version="6.6.2";
uses:="org.eclipse.jgit.lib,
org.eclipse.jgit.diff,
org.eclipse.jgit.treewalk.filter,
org.eclipse.jgit.treewalk,
org.eclipse.jgit.util",
- org.eclipse.jgit.transport;version="6.5.1";
+ org.eclipse.jgit.transport;version="6.6.2";
uses:="javax.crypto,
org.eclipse.jgit.util.io,
org.eclipse.jgit.lib,
@@ -198,21 +198,21 @@
org.eclipse.jgit.transport.resolver,
org.eclipse.jgit.storage.pack,
org.eclipse.jgit.errors",
- org.eclipse.jgit.transport.http;version="6.5.1";
+ org.eclipse.jgit.transport.http;version="6.6.2";
uses:="javax.net.ssl",
- org.eclipse.jgit.transport.resolver;version="6.5.1";
+ org.eclipse.jgit.transport.resolver;version="6.6.2";
uses:="org.eclipse.jgit.transport,
org.eclipse.jgit.lib",
- org.eclipse.jgit.treewalk;version="6.5.1";
+ org.eclipse.jgit.treewalk;version="6.6.2";
uses:="org.eclipse.jgit.dircache,
org.eclipse.jgit.lib,
org.eclipse.jgit.attributes,
org.eclipse.jgit.revwalk,
org.eclipse.jgit.treewalk.filter,
org.eclipse.jgit.util",
- org.eclipse.jgit.treewalk.filter;version="6.5.1";
+ org.eclipse.jgit.treewalk.filter;version="6.6.2";
uses:="org.eclipse.jgit.treewalk",
- org.eclipse.jgit.util;version="6.5.1";
+ org.eclipse.jgit.util;version="6.6.2";
uses:="org.eclipse.jgit.transport,
org.eclipse.jgit.hooks,
org.eclipse.jgit.revwalk,
@@ -225,12 +225,12 @@
org.eclipse.jgit.treewalk,
javax.net.ssl,
org.eclipse.jgit.util.time",
- org.eclipse.jgit.util.io;version="6.5.1";
+ org.eclipse.jgit.util.io;version="6.6.2";
uses:="org.eclipse.jgit.attributes,
org.eclipse.jgit.lib,
org.eclipse.jgit.treewalk",
- org.eclipse.jgit.util.sha1;version="6.5.1",
- org.eclipse.jgit.util.time;version="6.5.1"
+ org.eclipse.jgit.util.sha1;version="6.6.2",
+ org.eclipse.jgit.util.time;version="6.6.2"
Bundle-RequiredExecutionEnvironment: JavaSE-11
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 ab07518..152ab2a 100644
--- a/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF
+++ b/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF
@@ -3,5 +3,5 @@
Bundle-Name: org.eclipse.jgit - Sources
Bundle-SymbolicName: org.eclipse.jgit.source
Bundle-Vendor: Eclipse.org - JGit
-Bundle-Version: 6.5.1.qualifier
-Eclipse-SourceBundle: org.eclipse.jgit;version="6.5.1.qualifier";roots="."
+Bundle-Version: 6.6.2.qualifier
+Eclipse-SourceBundle: org.eclipse.jgit;version="6.6.2.qualifier";roots="."
diff --git a/org.eclipse.jgit/pom.xml b/org.eclipse.jgit/pom.xml
index 48f2327..4d7336d 100644
--- a/org.eclipse.jgit/pom.xml
+++ b/org.eclipse.jgit/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-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 faea9cb..3ac1fde 100644
--- a/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
+++ b/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
@@ -17,7 +17,16 @@
applyBinaryForInCoreNotSupported=Applying binary patch for inCore repositories is not yet supported
applyBinaryOidTooShort=Binary patch for file {0} does not have full IDs
applyBinaryPatchTypeNotSupported=Couldn't apply binary patch of type {0}
-applyBinaryResultOidWrong=Result of binary patch for file {0} has wrong OID.
+applyTextPatchCannotApplyHunk=Hunk cannot be applied
+applyTextPatchSingleClearingHunk=Expected a single hunk for clearing all content
+applyBinaryResultOidWrong=Result of binary patch for file {0} has wrong OID
+applyPatchDestInvalid=Destination path in patch is invalid
+applyPatchSourceInvalid==Source path in patch is invalid
+applyPatchWithoutSourceOnAlreadyExistingSource=Cannot perform {0} action on an existing file
+applyPatchWithCreationOverAlreadyExistingDestination=Cannot perform {0} action which overrides an existing file
+applyPatchWithSourceOnNonExistentSource=Cannot perform {0} action on a non-existent file
+applyTextPatchUnorderedHunkApplications=Current hunk must be applied after the last hunk
+applyTextPatchUnorderedHunks=Got unordered hunks
applyingCommit=Applying {0}
archiveFormatAlreadyAbsent=Archive format already absent: {0}
archiveFormatAlreadyRegistered=Archive format already registered with different implementation: {0}
@@ -581,6 +590,8 @@
packWriterStatistics=Total {0,number,#0} (delta {1,number,#0}), reused {2,number,#0} (delta {3,number,#0})
panicCantRenameIndexFile=Panic: index file {0} must be renamed to replace {1}; until then repository is corrupt
patchApplyException=Cannot apply: {0}
+patchApplyErrorWithHunk=Error applying patch in {0}, hunk {1}: {2}
+patchApplyErrorWithoutHunk=Error applying patch in {0}: {1}
patchFormatException=Format error: {0}
pathNotConfigured=Submodule path is not configured
peeledLineBeforeRef=Peeled line before ref.
@@ -830,6 +841,7 @@
unsupportedMark=Mark not supported
unsupportedOperationNotAddAtEnd=Not add-at-end: {0}
unsupportedPackIndexVersion=Unsupported pack index version {0}
+unsupportedPackReverseIndexVersion=Unsupported pack reverse index version {0}
unsupportedPackVersion=Unsupported pack version {0}.
unsupportedReftableVersion=Unsupported reftable version {0}.
unsupportedRepositoryDescription=Repository description not supported
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/AddCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/AddCommand.java
index ae75d46..cb32324 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/AddCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/AddCommand.java
@@ -39,7 +39,10 @@
import org.eclipse.jgit.treewalk.NameConflictTreeWalk;
import org.eclipse.jgit.treewalk.TreeWalk.OperationType;
import org.eclipse.jgit.treewalk.WorkingTreeIterator;
+import org.eclipse.jgit.treewalk.filter.AndTreeFilter;
+import org.eclipse.jgit.treewalk.filter.IndexDiffFilter;
import org.eclipse.jgit.treewalk.filter.PathFilterGroup;
+import org.eclipse.jgit.treewalk.filter.TreeFilter;
/**
* A class used to execute a {@code Add} command. It has setters for all
@@ -58,6 +61,10 @@
private boolean update = false;
+ // This defaults to true because it's what JGit has been doing
+ // traditionally. The C git default would be false.
+ private boolean renormalize = true;
+
/**
* Constructor for AddCommand
*
@@ -127,8 +134,20 @@
workingTreeIterator = new FileTreeIterator(repo);
workingTreeIterator.setDirCacheIterator(tw, 0);
tw.addTree(workingTreeIterator);
- if (!addAll)
- tw.setFilter(PathFilterGroup.createFromStrings(filepatterns));
+ TreeFilter pathFilter = null;
+ if (!addAll) {
+ pathFilter = PathFilterGroup.createFromStrings(filepatterns);
+ }
+ if (!renormalize) {
+ if (pathFilter == null) {
+ tw.setFilter(new IndexDiffFilter(0, 1));
+ } else {
+ tw.setFilter(AndTreeFilter.create(new IndexDiffFilter(0, 1),
+ pathFilter));
+ }
+ } else if (pathFilter != null) {
+ tw.setFilter(pathFilter);
+ }
byte[] lastAdded = null;
@@ -260,4 +279,39 @@
public boolean isUpdate() {
return update;
}
+
+ /**
+ * Defines whether the command will renormalize by re-applying the "clean"
+ * process to tracked files.
+ * <p>
+ * This does not automatically call {@link #setUpdate(boolean)}.
+ * </p>
+ *
+ * @param renormalize
+ * whether to renormalize tracked files
+ * @return {@code this}
+ * @since 6.6
+ */
+ public AddCommand setRenormalize(boolean renormalize) {
+ this.renormalize = renormalize;
+ return this;
+ }
+
+ /**
+ * Tells whether the command will renormalize by re-applying the "clean"
+ * process to tracked files.
+ * <p>
+ * For legacy reasons, this is {@code true} by default.
+ * </p>
+ * <p>
+ * This setting is independent of {@link #isUpdate()}. In C git,
+ * command-line option --renormalize implies --update.
+ * </p>
+ *
+ * @return whether files will be renormalized
+ * @since 6.6
+ */
+ public boolean isRenormalize() {
+ return renormalize;
+ }
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/ApplyCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/ApplyCommand.java
index 49f225f..e612924 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/ApplyCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/ApplyCommand.java
@@ -10,10 +10,16 @@
package org.eclipse.jgit.api;
import java.io.File;
+import java.io.IOException;
import java.io.InputStream;
+import java.text.MessageFormat;
+
import org.eclipse.jgit.api.errors.GitAPIException;
+import org.eclipse.jgit.api.errors.PatchApplyException;
+import org.eclipse.jgit.api.errors.PatchFormatException;
import org.eclipse.jgit.internal.JGitText;
import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.patch.Patch;
import org.eclipse.jgit.patch.PatchApplier;
import org.eclipse.jgit.patch.PatchApplier.Result;
@@ -67,11 +73,31 @@
public ApplyResult call() throws GitAPIException {
checkCallable();
setCallable(false);
+ Patch patch = new Patch();
+ try (InputStream inStream = in) {
+ patch.parse(inStream);
+ if (!patch.getErrors().isEmpty()) {
+ throw new PatchFormatException(patch.getErrors());
+ }
+ } catch (IOException e) {
+ throw new PatchApplyException(MessageFormat.format(
+ JGitText.get().patchApplyException, e.getMessage()), e);
+ }
ApplyResult r = new ApplyResult();
- PatchApplier patchApplier = new PatchApplier(repo);
- Result applyResult = patchApplier.applyPatch(in);
- for (String p : applyResult.getPaths()) {
- r.addUpdatedFile(new File(repo.getWorkTree(), p));
+ try {
+ PatchApplier patchApplier = new PatchApplier(repo);
+ Result applyResult = patchApplier.applyPatch(patch);
+ if (!applyResult.getErrors().isEmpty()) {
+ throw new PatchApplyException(
+ MessageFormat.format(JGitText.get().patchApplyException,
+ applyResult.getErrors()));
+ }
+ for (String p : applyResult.getPaths()) {
+ r.addUpdatedFile(new File(repo.getWorkTree(), p));
+ }
+ } catch (IOException e) {
+ throw new PatchApplyException(MessageFormat.format(JGitText.get().patchApplyException,
+ e.getMessage(), e));
}
return r;
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java
index 7319ff4..8edae5a 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2010, Chris Aniszczyk <caniszczyk@gmail.com>
- * Copyright (C) 2011, 2020 Matthias Sohn <matthias.sohn@sap.com> and others
+ * Copyright (C) 2011, 2023 Matthias Sohn <matthias.sohn@sap.com> and others
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0 which is available at
@@ -28,6 +28,7 @@
import org.eclipse.jgit.api.errors.JGitInternalException;
import org.eclipse.jgit.api.errors.RefAlreadyExistsException;
import org.eclipse.jgit.api.errors.RefNotFoundException;
+import org.eclipse.jgit.dircache.Checkout;
import org.eclipse.jgit.dircache.DirCache;
import org.eclipse.jgit.dircache.DirCacheCheckout;
import org.eclipse.jgit.dircache.DirCacheCheckout.CheckoutMetadata;
@@ -55,7 +56,6 @@
import org.eclipse.jgit.revwalk.RevTree;
import org.eclipse.jgit.revwalk.RevWalk;
import org.eclipse.jgit.treewalk.TreeWalk;
-import org.eclipse.jgit.treewalk.WorkingTreeOptions;
import org.eclipse.jgit.treewalk.filter.PathFilterGroup;
/**
@@ -412,8 +412,7 @@
protected CheckoutCommand checkoutPaths() throws IOException,
RefNotFoundException {
actuallyModifiedPaths = new HashSet<>();
- WorkingTreeOptions options = repo.getConfig()
- .get(WorkingTreeOptions.KEY);
+ Checkout checkout = new Checkout(repo).setRecursiveDeletion(true);
DirCache dc = repo.lockDirCache();
try (RevWalk revWalk = new RevWalk(repo);
TreeWalk treeWalk = new TreeWalk(repo,
@@ -422,10 +421,10 @@
if (!checkoutAllPaths)
treeWalk.setFilter(PathFilterGroup.createFromStrings(paths));
if (isCheckoutIndex())
- checkoutPathsFromIndex(treeWalk, dc, options);
+ checkoutPathsFromIndex(treeWalk, dc, checkout);
else {
RevCommit commit = revWalk.parseCommit(getStartPointObjectId());
- checkoutPathsFromCommit(treeWalk, dc, commit, options);
+ checkoutPathsFromCommit(treeWalk, dc, commit, checkout);
}
} finally {
try {
@@ -443,7 +442,7 @@
}
private void checkoutPathsFromIndex(TreeWalk treeWalk, DirCache dc,
- WorkingTreeOptions options)
+ Checkout checkout)
throws IOException {
DirCacheIterator dci = new DirCacheIterator(dc);
treeWalk.addTree(dci);
@@ -469,7 +468,7 @@
if (stage > DirCacheEntry.STAGE_0) {
if (checkoutStage != null) {
if (stage == checkoutStage.number) {
- checkoutPath(ent, r, options,
+ checkoutPath(ent, r, checkout, path,
new CheckoutMetadata(eolStreamType,
filterCommand));
actuallyModifiedPaths.add(path);
@@ -480,7 +479,7 @@
throw new JGitInternalException(e.getMessage(), e);
}
} else {
- checkoutPath(ent, r, options,
+ checkoutPath(ent, r, checkout, path,
new CheckoutMetadata(eolStreamType,
filterCommand));
actuallyModifiedPaths.add(path);
@@ -494,7 +493,7 @@
}
private void checkoutPathsFromCommit(TreeWalk treeWalk, DirCache dc,
- RevCommit commit, WorkingTreeOptions options) throws IOException {
+ RevCommit commit, Checkout checkout) throws IOException {
treeWalk.addTree(commit.getTree());
final ObjectReader r = treeWalk.getObjectReader();
DirCacheEditor editor = dc.editor();
@@ -516,7 +515,7 @@
}
ent.setObjectId(blobId);
ent.setFileMode(mode);
- checkoutPath(ent, r, options,
+ checkoutPath(ent, r, checkout, path,
new CheckoutMetadata(eolStreamType, filterCommand));
actuallyModifiedPaths.add(path);
}
@@ -526,10 +525,9 @@
}
private void checkoutPath(DirCacheEntry entry, ObjectReader reader,
- WorkingTreeOptions options, CheckoutMetadata checkoutMetadata) {
+ Checkout checkout, String path, CheckoutMetadata checkoutMetadata) {
try {
- DirCacheCheckout.checkoutEntry(repo, entry, reader, true,
- checkoutMetadata, options);
+ checkout.checkout(entry, checkoutMetadata, reader, path);
} catch (IOException e) {
throw new JGitInternalException(MessageFormat.format(
JGitText.get().checkoutConflictWithFile,
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 ceba89d..5f8c2b7 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java
@@ -142,7 +142,9 @@
new String[] { "BASE", ourName, cherryPickName }); //$NON-NLS-1$
resolveMerger
.setWorkingTreeIterator(new FileTreeIterator(repo));
- resolveMerger.setBase(srcParent.getTree());
+ if (srcParent != null) {
+ resolveMerger.setBase(srcParent.getTree());
+ }
noProblems = merger.merge(newHead, srcCommit);
failingPaths = resolveMerger.getFailingPaths();
unmergedPaths = resolveMerger.getUnmergedPaths();
@@ -217,12 +219,16 @@
IOException {
final RevCommit srcParent;
if (mainlineParentNumber == null) {
- if (srcCommit.getParentCount() != 1)
+ int nOfParents = srcCommit.getParentCount();
+ if (nOfParents == 0) {
+ return null;
+ } else if (nOfParents != 1) {
throw new MultipleParentsNotAllowedException(
MessageFormat.format(
JGitText.get().canOnlyCherryPickCommitsWithOneParent,
srcCommit.name(),
Integer.valueOf(srcCommit.getParentCount())));
+ }
srcParent = srcCommit.getParent(0);
} else {
if (mainlineParentNumber.intValue() > srcCommit.getParentCount()) {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/ListTagCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/ListTagCommand.java
index d7b34ab..27a5288 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/ListTagCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/ListTagCommand.java
@@ -16,9 +16,13 @@
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.api.errors.JGitInternalException;
+import org.eclipse.jgit.errors.IncorrectObjectTypeException;
+import org.eclipse.jgit.errors.MissingObjectException;
+import org.eclipse.jgit.lib.AnyObjectId;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevWalk;
/**
@@ -29,6 +33,9 @@
*/
public class ListTagCommand extends GitCommand<List<Ref>> {
+ private final RevWalk rw;
+ private RevCommit commit;
+
/**
* Constructor for ListTagCommand.
*
@@ -37,21 +44,49 @@
*/
protected ListTagCommand(Repository repo) {
super(repo);
+ rw = new RevWalk(repo);
+ }
+
+ /**
+ * Only list tags which contain the specified commit.
+ *
+ * @param commit
+ * the specified commit
+ * @return this command
+ * @throws IOException
+ * @throws IncorrectObjectTypeException
+ * @throws MissingObjectException
+ *
+ * @since 6.6
+ */
+ public ListTagCommand setContains(AnyObjectId commit)
+ throws MissingObjectException, IncorrectObjectTypeException,
+ IOException {
+ checkCallable();
+ this.commit = rw.parseCommit(commit);
+ return this;
}
/** {@inheritDoc} */
@Override
public List<Ref> call() throws GitAPIException {
checkCallable();
- List<Ref> tags = new ArrayList<>();
- try (RevWalk revWalk = new RevWalk(repo)) {
+ List<Ref> tags;
+ try {
List<Ref> refList = repo.getRefDatabase()
.getRefsByPrefix(Constants.R_TAGS);
- for (Ref ref : refList) {
- tags.add(ref);
+ if (commit != null) {
+ // if body is retained #getMergedInto needs to access data not
+ // available in commit graph which is slower
+ rw.setRetainBody(false);
+ tags = rw.getMergedInto(commit, refList);
+ } else {
+ tags = new ArrayList<>(refList);
}
} catch (IOException e) {
throw new JGitInternalException(e.getMessage(), e);
+ } finally {
+ rw.close();
}
Collections.sort(tags,
(Ref o1, Ref o2) -> o1.getName().compareTo(o2.getName()));
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 1e5523f..19fd3bb 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java
@@ -1217,7 +1217,7 @@
Iterator<RevCommit> commitsToUse = r.iterator();
while (commitsToUse.hasNext()) {
RevCommit commit = commitsToUse.next();
- if (preserveMerges || commit.getParentCount() == 1) {
+ if (preserveMerges || commit.getParentCount() <= 1) {
cherryPickList.add(commit);
}
}
@@ -1234,23 +1234,31 @@
walk.markStart(upstreamCommit);
walk.markStart(headCommit);
RevCommit base;
- while ((base = walk.next()) != null)
+ while ((base = walk.next()) != null) {
RebaseState.createFile(rewrittenDir, base.getName(),
upstreamCommit.getName());
-
+ }
Iterator<RevCommit> iterator = cherryPickList.iterator();
pickLoop: while(iterator.hasNext()){
RevCommit commit = iterator.next();
- for (int i = 0; i < commit.getParentCount(); i++) {
- boolean parentRewritten = new File(rewrittenDir, commit
- .getParent(i).getName()).exists();
- if (parentRewritten) {
- new File(rewrittenDir, commit.getName()).createNewFile();
- continue pickLoop;
+ int nOfParents = commit.getParentCount();
+ if (nOfParents == 0) {
+ // Must be the very first commit in the cherryPickList. We
+ // have independent branches.
+ new File(rewrittenDir, commit.getName()).createNewFile();
+ } else {
+ for (int i = 0; i < nOfParents; i++) {
+ boolean parentRewritten = new File(rewrittenDir,
+ commit.getParent(i).getName()).exists();
+ if (parentRewritten) {
+ new File(rewrittenDir, commit.getName())
+ .createNewFile();
+ continue pickLoop;
+ }
}
+ // commit is only merged in, needs not be rewritten
+ iterator.remove();
}
- // commit is only merged in, needs not be rewritten
- iterator.remove();
}
}
return cherryPickList;
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 17036a9..e415728 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, 2021 GitHub Inc. and others
+ * Copyright (C) 2012, 2023 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
@@ -23,6 +23,7 @@
import org.eclipse.jgit.api.errors.NoHeadException;
import org.eclipse.jgit.api.errors.StashApplyFailureException;
import org.eclipse.jgit.api.errors.WrongRepositoryStateException;
+import org.eclipse.jgit.dircache.Checkout;
import org.eclipse.jgit.dircache.DirCache;
import org.eclipse.jgit.dircache.DirCacheBuilder;
import org.eclipse.jgit.dircache.DirCacheCheckout;
@@ -48,7 +49,6 @@
import org.eclipse.jgit.treewalk.AbstractTreeIterator;
import org.eclipse.jgit.treewalk.FileTreeIterator;
import org.eclipse.jgit.treewalk.TreeWalk;
-import org.eclipse.jgit.treewalk.WorkingTreeOptions;
/**
* Command class to apply a stashed commit.
@@ -383,8 +383,7 @@
private void resetUntracked(RevTree tree) throws CheckoutConflictException,
IOException {
Set<String> actuallyModifiedPaths = new HashSet<>();
- WorkingTreeOptions options = repo.getConfig()
- .get(WorkingTreeOptions.KEY);
+ Checkout checkout = new Checkout(repo).setRecursiveDeletion(true);
// TODO maybe NameConflictTreeWalk ?
try (TreeWalk walk = new TreeWalk(repo)) {
walk.addTree(tree);
@@ -408,17 +407,17 @@
FileTreeIterator fIter = walk
.getTree(1, FileTreeIterator.class);
+ String gitPath = entry.getPathString();
if (fIter != null) {
if (fIter.isModified(entry, true, reader)) {
// file exists and is dirty
- throw new CheckoutConflictException(
- entry.getPathString());
+ throw new CheckoutConflictException(gitPath);
}
}
- checkoutPath(entry, reader, options,
+ checkoutPath(entry, gitPath, reader, checkout,
new CheckoutMetadata(eolStreamType, null));
- actuallyModifiedPaths.add(entry.getPathString());
+ actuallyModifiedPaths.add(gitPath);
}
} finally {
if (!actuallyModifiedPaths.isEmpty()) {
@@ -428,11 +427,11 @@
}
}
- private void checkoutPath(DirCacheEntry entry, ObjectReader reader,
- WorkingTreeOptions options, CheckoutMetadata checkoutMetadata) {
+ private void checkoutPath(DirCacheEntry entry, String gitPath,
+ ObjectReader reader,
+ Checkout checkout, CheckoutMetadata checkoutMetadata) {
try {
- DirCacheCheckout.checkoutEntry(repo, entry, reader, true,
- checkoutMetadata, options);
+ checkout.checkout(entry, checkoutMetadata, reader, gitPath);
} catch (IOException e) {
throw new JGitInternalException(MessageFormat.format(
JGitText.get().checkoutConflictWithFile,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/blame/Candidate.java b/org.eclipse.jgit/src/org/eclipse/jgit/blame/Candidate.java
index ca5370e..ccf99ff 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/blame/Candidate.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/blame/Candidate.java
@@ -12,6 +12,7 @@
import java.io.IOException;
import java.util.List;
+import java.util.Objects;
import org.eclipse.jgit.blame.ReverseWalk.ReverseCommit;
import org.eclipse.jgit.diff.Edit;
@@ -269,7 +270,7 @@
}
boolean canMergeRegions(Candidate other) {
- return sourceCommit == other.sourceCommit
+ return Objects.equals(sourceCommit, other.sourceCommit)
&& sourcePath.getPath().equals(other.sourcePath.getPath());
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/Checkout.java b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/Checkout.java
new file mode 100644
index 0000000..accf732
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/Checkout.java
@@ -0,0 +1,238 @@
+/*
+ * Copyright (C) 2023, Thomas Wolf <twolf@apache.org> and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.dircache;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.LinkOption;
+import java.nio.file.StandardCopyOption;
+import java.text.MessageFormat;
+
+import org.eclipse.jgit.annotations.NonNull;
+import org.eclipse.jgit.dircache.DirCacheCheckout.CheckoutMetadata;
+import org.eclipse.jgit.internal.JGitText;
+import org.eclipse.jgit.lib.FileMode;
+import org.eclipse.jgit.lib.FileModeCache;
+import org.eclipse.jgit.lib.ObjectLoader;
+import org.eclipse.jgit.lib.ObjectReader;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.lib.CoreConfig.EolStreamType;
+import org.eclipse.jgit.lib.CoreConfig.SymLinks;
+import org.eclipse.jgit.lib.FileModeCache.CacheItem;
+import org.eclipse.jgit.treewalk.WorkingTreeOptions;
+import org.eclipse.jgit.util.FS;
+import org.eclipse.jgit.util.FileUtils;
+import org.eclipse.jgit.util.RawParseUtils;
+
+/**
+ * An object that can be used to check out many files.
+ *
+ * @since 6.6.1
+ */
+public class Checkout {
+
+ private final FileModeCache cache;
+
+ private final WorkingTreeOptions options;
+
+ private boolean recursiveDelete;
+
+ /**
+ * Creates a new {@link Checkout} for checking out from the given
+ * repository.
+ *
+ * @param repo
+ * the {@link Repository} to check out from
+ */
+ public Checkout(@NonNull Repository repo) {
+ this(repo, null);
+ }
+
+ /**
+ * Creates a new {@link Checkout} for checking out from the given
+ * repository.
+ *
+ * @param repo
+ * the {@link Repository} to check out from
+ * @param options
+ * the {@link WorkingTreeOptions} to use; if {@code null},
+ * read from the {@code repo} config when this object is
+ * created
+ */
+ public Checkout(@NonNull Repository repo, WorkingTreeOptions options) {
+ this.cache = new FileModeCache(repo);
+ this.options = options != null ? options
+ : repo.getConfig().get(WorkingTreeOptions.KEY);
+ }
+
+ /**
+ * Retrieves the {@link WorkingTreeOptions} of the repository that are
+ * used.
+ *
+ * @return the {@link WorkingTreeOptions}
+ */
+ public WorkingTreeOptions getWorkingTreeOptions() {
+ return options;
+ }
+
+ /**
+ * Defines whether directories that are in the way of the file to be checked
+ * out shall be deleted recursively.
+ *
+ * @param recursive
+ * whether to delete such directories recursively
+ * @return {@code this}
+ */
+ public Checkout setRecursiveDeletion(boolean recursive) {
+ this.recursiveDelete = recursive;
+ return this;
+ }
+
+ /**
+ * Ensure that the given parent directory exists, and cache the information
+ * that gitPath refers to a file.
+ *
+ * @param gitPath
+ * of the file to be written
+ * @param parentDir
+ * directory in which the file shall be placed, assumed to be the
+ * parent of the {@code gitPath}
+ * @param makeSpace
+ * whether to delete a possibly existing file at
+ * {@code parentDir}
+ * @throws IOException
+ * if the directory cannot be created, if necessary
+ */
+ public void safeCreateParentDirectory(String gitPath, File parentDir,
+ boolean makeSpace) throws IOException {
+ cache.safeCreateParentDirectory(gitPath, parentDir, makeSpace);
+ }
+
+ /**
+ * Checks out the gitlink given by the {@link DirCacheEntry}.
+ *
+ * @param entry
+ * {@link DirCacheEntry} to check out
+ * @param gitPath
+ * the git path of the entry, if known already; otherwise
+ * {@code null} and it's read from the entry itself
+ * @throws IOException
+ * if the gitlink cannot be checked out
+ */
+ public void checkoutGitlink(DirCacheEntry entry, String gitPath)
+ throws IOException {
+ FS fs = cache.getRepository().getFS();
+ File workingTree = cache.getRepository().getWorkTree();
+ String path = gitPath != null ? gitPath : entry.getPathString();
+ File gitlinkDir = new File(workingTree, path);
+ File parentDir = gitlinkDir.getParentFile();
+ CacheItem cachedParent = cache.safeCreateDirectory(path, parentDir,
+ false);
+ FileUtils.mkdirs(gitlinkDir, true);
+ cachedParent.insert(path.substring(path.lastIndexOf('/') + 1),
+ FileMode.GITLINK);
+ entry.setLastModified(fs.lastModifiedInstant(gitlinkDir));
+ }
+
+ /**
+ * Checks out the file given by the {@link DirCacheEntry}.
+ *
+ * @param entry
+ * {@link DirCacheEntry} to check out
+ * @param metadata
+ * {@link CheckoutMetadata} to use for CR/LF handling and
+ * smudge filtering
+ * @param reader
+ * {@link ObjectReader} to use
+ * @param gitPath
+ * the git path of the entry, if known already; otherwise
+ * {@code null} and it's read from the entry itself
+ * @throws IOException
+ * if the file cannot be checked out
+ */
+ public void checkout(DirCacheEntry entry, CheckoutMetadata metadata,
+ ObjectReader reader, String gitPath) throws IOException {
+ if (metadata == null) {
+ metadata = CheckoutMetadata.EMPTY;
+ }
+ FS fs = cache.getRepository().getFS();
+ ObjectLoader ol = reader.open(entry.getObjectId());
+ String path = gitPath != null ? gitPath : entry.getPathString();
+ File f = new File(cache.getRepository().getWorkTree(), path);
+ File parentDir = f.getParentFile();
+ CacheItem cachedParent = cache.safeCreateDirectory(path, parentDir,
+ true);
+ if (entry.getFileMode() == FileMode.SYMLINK
+ && options.getSymLinks() == SymLinks.TRUE) {
+ byte[] bytes = ol.getBytes();
+ String target = RawParseUtils.decode(bytes);
+ if (recursiveDelete && Files.isDirectory(f.toPath(),
+ LinkOption.NOFOLLOW_LINKS)) {
+ FileUtils.delete(f, FileUtils.RECURSIVE);
+ }
+ fs.createSymLink(f, target);
+ cachedParent.insert(f.getName(), FileMode.SYMLINK);
+ entry.setLength(bytes.length);
+ entry.setLastModified(fs.lastModifiedInstant(f));
+ return;
+ }
+
+ String name = f.getName();
+ if (name.length() > 200) {
+ name = name.substring(0, 200);
+ }
+ File tmpFile = File.createTempFile("._" + name, null, parentDir); //$NON-NLS-1$
+
+ DirCacheCheckout.getContent(cache.getRepository(), path, metadata, ol,
+ options,
+ new FileOutputStream(tmpFile));
+
+ // The entry needs to correspond to the on-disk file size. If the
+ // content was filtered (either by autocrlf handling or smudge
+ // filters) ask the file system again for the length. Otherwise the
+ // object loader knows the size
+ if (metadata.eolStreamType == EolStreamType.DIRECT
+ && metadata.smudgeFilterCommand == null) {
+ entry.setLength(ol.getSize());
+ } else {
+ entry.setLength(tmpFile.length());
+ }
+
+ if (options.isFileMode() && fs.supportsExecute()) {
+ if (FileMode.EXECUTABLE_FILE.equals(entry.getRawMode())) {
+ if (!fs.canExecute(tmpFile))
+ fs.setExecute(tmpFile, true);
+ } else {
+ if (fs.canExecute(tmpFile))
+ fs.setExecute(tmpFile, false);
+ }
+ }
+ try {
+ if (recursiveDelete && Files.isDirectory(f.toPath(),
+ LinkOption.NOFOLLOW_LINKS)) {
+ FileUtils.delete(f, FileUtils.RECURSIVE);
+ }
+ FileUtils.rename(tmpFile, f, StandardCopyOption.ATOMIC_MOVE);
+ cachedParent.remove(f.getName());
+ } catch (IOException e) {
+ throw new IOException(
+ MessageFormat.format(JGitText.get().renameFileFailed,
+ tmpFile.getPath(), f.getPath()),
+ e);
+ } finally {
+ if (tmpFile.exists()) {
+ FileUtils.delete(tmpFile);
+ }
+ }
+ entry.setLastModified(fs.lastModifiedInstant(f));
+ }
+}
\ No newline at end of file
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java
index 1fb81b7..d54df8d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java
@@ -5,7 +5,7 @@
* Copyright (C) 2006, Shawn O. Pearce <spearce@spearce.org>
* Copyright (C) 2010, Chrisian Halstrick <christian.halstrick@sap.com>
* Copyright (C) 2019, 2020, Andre Bossert <andre.bossert@siemens.com>
- * Copyright (C) 2017, 2022, Thomas Wolf <thomas.wolf@paranor.ch> and others
+ * Copyright (C) 2017, 2023, Thomas Wolf <twolf@apache.org> and others
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0 which is available at
@@ -19,11 +19,9 @@
import static org.eclipse.jgit.treewalk.TreeWalk.OperationType.CHECKOUT_OP;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.nio.file.StandardCopyOption;
import java.text.MessageFormat;
import java.time.Instant;
import java.util.ArrayList;
@@ -49,7 +47,6 @@
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.CoreConfig.AutoCRLF;
import org.eclipse.jgit.lib.CoreConfig.EolStreamType;
-import org.eclipse.jgit.lib.CoreConfig.SymLinks;
import org.eclipse.jgit.lib.FileMode;
import org.eclipse.jgit.lib.NullProgressMonitor;
import org.eclipse.jgit.lib.ObjectChecker;
@@ -69,9 +66,7 @@
import org.eclipse.jgit.treewalk.filter.PathFilter;
import org.eclipse.jgit.util.FS;
import org.eclipse.jgit.util.FS.ExecutionResult;
-import org.eclipse.jgit.util.FileUtils;
import org.eclipse.jgit.util.IntList;
-import org.eclipse.jgit.util.RawParseUtils;
import org.eclipse.jgit.util.SystemReader;
import org.eclipse.jgit.util.io.EolStreamTypeUtil;
import org.slf4j.Logger;
@@ -144,7 +139,7 @@
private boolean performingCheckout;
- private WorkingTreeOptions options;
+ private Checkout checkout;
private ProgressMonitor monitor = NullProgressMonitor.INSTANCE;
@@ -495,9 +490,8 @@
MissingObjectException, IncorrectObjectTypeException,
CheckoutConflictException, IndexWriteException, CanceledException {
toBeDeleted.clear();
- options = repo.getConfig()
- .get(WorkingTreeOptions.KEY);
try (ObjectReader objectReader = repo.getObjectDatabase().newReader()) {
+ checkout = new Checkout(repo, null);
if (headCommitTree != null)
preScanTwoTrees();
else
@@ -564,10 +558,9 @@
CheckoutMetadata meta = e.getValue();
DirCacheEntry entry = dc.getEntry(path);
if (FileMode.GITLINK.equals(entry.getRawMode())) {
- checkoutGitlink(path, entry);
+ checkout.checkoutGitlink(entry, path);
} else {
- checkoutEntry(repo, entry, objectReader, false, meta,
- options);
+ checkout.checkout(entry, meta, objectReader, path);
}
e = null;
@@ -602,8 +595,8 @@
break;
}
if (entry.getStage() == DirCacheEntry.STAGE_3) {
- checkoutEntry(repo, entry, objectReader, false,
- null, options);
+ checkout.checkout(entry, null, objectReader,
+ conflict);
break;
}
++entryIdx;
@@ -626,14 +619,6 @@
return toBeDeleted.isEmpty();
}
- private void checkoutGitlink(String path, DirCacheEntry entry)
- throws IOException {
- File gitlinkDir = new File(repo.getWorkTree(), path);
- FileUtils.mkdirs(gitlinkDir, true);
- FS fs = repo.getFS();
- entry.setLastModified(fs.lastModifiedInstant(gitlinkDir));
- }
-
private static ArrayList<String> filterOut(ArrayList<String> strings,
IntList indicesToRemove) {
int n = indicesToRemove.size();
@@ -1232,10 +1217,11 @@
if (force) {
if (f == null || f.isModified(e, true, walk.getObjectReader())) {
kept.add(path);
- checkoutEntry(repo, e, walk.getObjectReader(), false,
+ checkout.checkout(e,
new CheckoutMetadata(walk.getEolStreamType(CHECKOUT_OP),
walk.getFilterCommand(
- Constants.ATTR_FILTER_TYPE_SMUDGE)), options);
+ Constants.ATTR_FILTER_TYPE_SMUDGE)),
+ walk.getObjectReader(), path);
}
}
}
@@ -1494,83 +1480,16 @@
* they are loaded from the repository config
* @throws java.io.IOException
* @since 6.3
+ * @deprecated since 6.6.1; use {@link Checkout} instead
*/
+ @Deprecated
public static void checkoutEntry(Repository repo, DirCacheEntry entry,
ObjectReader or, boolean deleteRecursive,
CheckoutMetadata checkoutMetadata, WorkingTreeOptions options)
throws IOException {
- if (checkoutMetadata == null) {
- checkoutMetadata = CheckoutMetadata.EMPTY;
- }
- ObjectLoader ol = or.open(entry.getObjectId());
- File f = new File(repo.getWorkTree(), entry.getPathString());
- File parentDir = f.getParentFile();
- if (parentDir.isFile()) {
- FileUtils.delete(parentDir);
- }
- FileUtils.mkdirs(parentDir, true);
- FS fs = repo.getFS();
- WorkingTreeOptions opt = options != null ? options
- : repo.getConfig().get(WorkingTreeOptions.KEY);
- if (entry.getFileMode() == FileMode.SYMLINK
- && opt.getSymLinks() == SymLinks.TRUE) {
- byte[] bytes = ol.getBytes();
- String target = RawParseUtils.decode(bytes);
- if (deleteRecursive && f.isDirectory()) {
- FileUtils.delete(f, FileUtils.RECURSIVE);
- }
- fs.createSymLink(f, target);
- entry.setLength(bytes.length);
- entry.setLastModified(fs.lastModifiedInstant(f));
- return;
- }
-
- String name = f.getName();
- if (name.length() > 200) {
- name = name.substring(0, 200);
- }
- File tmpFile = File.createTempFile(
- "._" + name, null, parentDir); //$NON-NLS-1$
-
- getContent(repo, entry.getPathString(), checkoutMetadata, ol, opt,
- new FileOutputStream(tmpFile));
-
- // The entry needs to correspond to the on-disk filesize. If the content
- // was filtered (either by autocrlf handling or smudge filters) ask the
- // filesystem again for the length. Otherwise the objectloader knows the
- // size
- if (checkoutMetadata.eolStreamType == EolStreamType.DIRECT
- && checkoutMetadata.smudgeFilterCommand == null) {
- entry.setLength(ol.getSize());
- } else {
- entry.setLength(tmpFile.length());
- }
-
- if (opt.isFileMode() && fs.supportsExecute()) {
- if (FileMode.EXECUTABLE_FILE.equals(entry.getRawMode())) {
- if (!fs.canExecute(tmpFile))
- fs.setExecute(tmpFile, true);
- } else {
- if (fs.canExecute(tmpFile))
- fs.setExecute(tmpFile, false);
- }
- }
- try {
- if (deleteRecursive && f.isDirectory()) {
- FileUtils.delete(f, FileUtils.RECURSIVE);
- }
- FileUtils.rename(tmpFile, f, StandardCopyOption.ATOMIC_MOVE);
- } catch (IOException e) {
- throw new IOException(
- MessageFormat.format(JGitText.get().renameFileFailed,
- tmpFile.getPath(), f.getPath()),
- e);
- } finally {
- if (tmpFile.exists()) {
- FileUtils.delete(tmpFile);
- }
- }
- entry.setLastModified(fs.lastModifiedInstant(f));
+ Checkout checkout = new Checkout(repo, options)
+ .setRecursiveDeletion(deleteRecursive);
+ checkout.checkout(entry, checkoutMetadata, or, null);
}
/**
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 39cc749..3b5cc3d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java
@@ -46,6 +46,16 @@
/***/ public String applyBinaryOidTooShort;
/***/ public String applyBinaryPatchTypeNotSupported;
/***/ public String applyBinaryResultOidWrong;
+ /***/ public String applyPatchDestInvalid;
+ /***/ public String applyPatchSourceInvalid;
+ /***/ public String applyPatchWithoutSourceOnAlreadyExistingSource;
+ /***/ public String applyPatchWithCreationOverAlreadyExistingDestination;
+ /***/ public String applyPatchWithSourceOnNonExistentSource;
+ /***/ public String applyTextPatchCannotApplyHunk;
+ /***/ public String applyTextPatchSingleClearingHunk;
+ /***/ public String applyTextPatchUnorderedHunkApplications;
+ /***/ public String applyTextPatchUnorderedHunks;
+
/***/ public String applyingCommit;
/***/ public String archiveFormatAlreadyAbsent;
/***/ public String archiveFormatAlreadyRegistered;
@@ -609,6 +619,8 @@
/***/ public String packWriterStatistics;
/***/ public String panicCantRenameIndexFile;
/***/ public String patchApplyException;
+ /***/ public String patchApplyErrorWithHunk;
+ /***/ public String patchApplyErrorWithoutHunk;
/***/ public String patchFormatException;
/***/ public String pathNotConfigured;
/***/ public String peeledLineBeforeRef;
@@ -858,6 +870,7 @@
/***/ public String unsupportedMark;
/***/ public String unsupportedOperationNotAddAtEnd;
/***/ public String unsupportedPackIndexVersion;
+ /***/ public String unsupportedPackReverseIndexVersion;
/***/ public String unsupportedPackVersion;
/***/ public String unsupportedReftableVersion;
/***/ public String unsupportedRepositoryDescription;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/commitgraph/GraphObjectIndex.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/commitgraph/GraphObjectIndex.java
index b0df467..22b4011 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/commitgraph/GraphObjectIndex.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/commitgraph/GraphObjectIndex.java
@@ -80,7 +80,7 @@
if (levelOne > 0) {
low = fanoutTable[levelOne - 1];
}
- do {
+ while (low < high) {
int mid = (low + high) >>> 1;
int pos = objIdOffset(mid);
int cmp = id.compareTo(oidLookup, pos);
@@ -91,7 +91,7 @@
} else {
low = mid + 1;
}
- } while (low < high);
+ }
return -1;
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollector.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollector.java
index 66bcf73..92e23b8 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollector.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollector.java
@@ -577,6 +577,7 @@
cfg.setReuseObjects(true);
cfg.setDeltaCompress(false);
cfg.setBuildBitmaps(false);
+ cfg.setWriteReverseIndex(false);
try (PackWriter pw = new PackWriter(cfg, ctx);
RevWalk pool = new RevWalk(ctx)) {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java
index 411777c..c745b8e 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java
@@ -1042,15 +1042,7 @@
ctx.stats.readIdx++;
long start = System.nanoTime();
try (ReadableChannel rc = ctx.db.openFile(desc, INDEX)) {
- InputStream in = Channels.newInputStream(rc);
- int wantSize = 8192;
- int bs = rc.blockSize();
- if (0 < bs && bs < wantSize) {
- bs = (wantSize / bs) * bs;
- } else if (bs <= 0) {
- bs = wantSize;
- }
- PackIndex idx = PackIndex.read(new BufferedInputStream(in, bs));
+ PackIndex idx = PackIndex.read(alignTo8kBlocks(rc));
ctx.stats.readIdxBytes += rc.position();
index = idx;
return new DfsBlockCache.Ref<>(
@@ -1094,17 +1086,8 @@
long size;
PackBitmapIndex bmidx;
try {
- InputStream in = Channels.newInputStream(rc);
- int wantSize = 8192;
- int bs = rc.blockSize();
- if (0 < bs && bs < wantSize) {
- bs = (wantSize / bs) * bs;
- } else if (bs <= 0) {
- bs = wantSize;
- }
- in = new BufferedInputStream(in, bs);
- bmidx = PackBitmapIndex.read(in, () -> idx(ctx),
- () -> getReverseIdx(ctx),
+ bmidx = PackBitmapIndex.read(alignTo8kBlocks(rc),
+ () -> idx(ctx), () -> getReverseIdx(ctx),
ctx.getOptions().shouldLoadRevIndexInParallel());
} finally {
size = rc.position();
@@ -1133,16 +1116,7 @@
long size;
CommitGraph cg;
try {
- InputStream in = Channels.newInputStream(rc);
- int wantSize = 8192;
- int bs = rc.blockSize();
- if (0 < bs && bs < wantSize) {
- bs = (wantSize / bs) * bs;
- } else if (bs <= 0) {
- bs = wantSize;
- }
- in = new BufferedInputStream(in, bs);
- cg = CommitGraphLoader.read(in);
+ cg = CommitGraphLoader.read(alignTo8kBlocks(rc));
} finally {
size = rc.position();
ctx.stats.readCommitGraphBytes += size;
@@ -1157,4 +1131,19 @@
e);
}
}
+
+ private static InputStream alignTo8kBlocks(ReadableChannel rc) {
+ // TODO(ifrade): This is not reading from DFS, so the channel should
+ // know better the right blocksize. I don't know why this was done in
+ // the first place, verify and remove if not needed.
+ InputStream in = Channels.newInputStream(rc);
+ int wantSize = 8192;
+ int bs = rc.blockSize();
+ if (0 < bs && bs < wantSize) {
+ bs = (wantSize / bs) * bs;
+ } else if (bs <= 0) {
+ bs = wantSize;
+ }
+ return new BufferedInputStream(in, bs);
+ }
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
index 06ec80c..8d624bc 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
@@ -11,6 +11,7 @@
package org.eclipse.jgit.internal.storage.file;
import static org.eclipse.jgit.internal.storage.pack.PackExt.BITMAP_INDEX;
+import static org.eclipse.jgit.internal.storage.pack.PackExt.COMMIT_GRAPH;
import static org.eclipse.jgit.internal.storage.pack.PackExt.INDEX;
import static org.eclipse.jgit.internal.storage.pack.PackExt.KEEP;
import static org.eclipse.jgit.internal.storage.pack.PackExt.PACK;
@@ -948,7 +949,8 @@
try (RevWalk walk = new RevWalk(repo)) {
CommitGraphWriter writer = new CommitGraphWriter(
GraphCommits.fromWalk(pm, wants, walk));
- tmpFile = File.createTempFile("commit_", ".graph_tmp", //$NON-NLS-1$//$NON-NLS-2$
+ tmpFile = File.createTempFile("commit_", //$NON-NLS-1$
+ COMMIT_GRAPH.getTmpExtension(),
repo.getObjectDatabase().getInfoDirectory());
// write the commit-graph file
try (FileOutputStream fos = new FileOutputStream(tmpFile);
@@ -1298,10 +1300,11 @@
ObjectId id = pw.computeName();
File packdir = repo.getObjectDatabase().getPackDirectory();
packdir.mkdirs();
- tmpPack = File.createTempFile("gc_", ".pack_tmp", packdir); //$NON-NLS-1$ //$NON-NLS-2$
- final String tmpBase = tmpPack.getName()
+ tmpPack = File.createTempFile("gc_", //$NON-NLS-1$
+ PACK.getTmpExtension(), packdir);
+ String tmpBase = tmpPack.getName()
.substring(0, tmpPack.getName().lastIndexOf('.'));
- File tmpIdx = new File(packdir, tmpBase + ".idx_tmp"); //$NON-NLS-1$
+ File tmpIdx = new File(packdir, tmpBase + INDEX.getTmpExtension());
tmpExts.put(INDEX, tmpIdx);
if (!tmpIdx.createNewFile())
@@ -1327,7 +1330,8 @@
}
if (pw.prepareBitmapIndex(pm)) {
- File tmpBitmapIdx = new File(packdir, tmpBase + ".bitmap_tmp"); //$NON-NLS-1$
+ File tmpBitmapIdx = new File(packdir,
+ tmpBase + BITMAP_INDEX.getTmpExtension());
tmpExts.put(BITMAP_INDEX, tmpBitmapIdx);
if (!tmpBitmapIdx.createNewFile())
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackReverseIndexWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackReverseIndexWriter.java
new file mode 100644
index 0000000..4c8417b
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackReverseIndexWriter.java
@@ -0,0 +1,149 @@
+/*
+ * Copyright (C) 2023, Google LLC and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.internal.storage.file;
+
+import java.io.BufferedOutputStream;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.security.DigestOutputStream;
+import java.text.MessageFormat;
+import java.util.List;
+
+import org.eclipse.jgit.internal.JGitText;
+import org.eclipse.jgit.lib.Constants;
+import org.eclipse.jgit.transport.PackedObjectInfo;
+
+/**
+ * Writes reverse index files conforming to the requested version.
+ * <p>
+ * The reverse index file format is specified at
+ * https://git-scm.com/docs/pack-format#_pack_rev_files_have_the_format.
+ */
+public abstract class PackReverseIndexWriter {
+ /**
+ * Magic bytes that uniquely identify git reverse index files.
+ */
+ protected static byte[] MAGIC = { 'R', 'I', 'D', 'X' };
+
+ /**
+ * The first reverse index file version.
+ */
+ protected static final int VERSION_1 = 1;
+
+ /**
+ * Stream to write contents to while maintaining a checksum.
+ */
+ protected final DigestOutputStream out;
+
+ /**
+ * Stream to write primitive type contents to while maintaining a checksum.
+ */
+ protected final DataOutput dataOutput;
+
+ private static final int DEFAULT_VERSION = VERSION_1;
+
+ /**
+ * Construct the components of a PackReverseIndexWriter that are shared
+ * between subclasses.
+ *
+ * @param dst
+ * the OutputStream that the instance will write contents to
+ */
+ protected PackReverseIndexWriter(OutputStream dst) {
+ out = new DigestOutputStream(
+ dst instanceof BufferedOutputStream ? dst
+ : new BufferedOutputStream(dst),
+ Constants.newMessageDigest());
+ dataOutput = new SimpleDataOutput(out);
+ }
+
+ /**
+ * Create a writer instance for the default file format version.
+ *
+ * @param dst
+ * the OutputStream that contents will be written to
+ * @return the new writer instance
+ */
+ public static PackReverseIndexWriter createWriter(OutputStream dst) {
+ return createWriter(dst, DEFAULT_VERSION);
+ }
+
+ /**
+ * Create a writer instance for the specified file format version.
+ *
+ * @param dst
+ * the OutputStream that contents will be written to
+ * @param version
+ * the reverse index format version to write contents as
+ * @return the new writer instance
+ */
+ public static PackReverseIndexWriter createWriter(OutputStream dst,
+ int version) {
+ if (version == VERSION_1) {
+ return new PackReverseIndexWriterV1(dst);
+ }
+ throw new IllegalArgumentException(MessageFormat.format(
+ JGitText.get().unsupportedPackReverseIndexVersion,
+ Integer.toString(version)));
+ }
+
+ /**
+ * Write the contents of a reverse index file for the given objects.
+ *
+ * @param objectsByIndexPos
+ * the objects whose forward index file positions should be
+ * written, sorted by forward index file position (currently SHA1
+ * ordering)
+ * @param packChecksum
+ * the checksum of the corresponding pack file
+ * @throws IOException
+ * if writing the output fails
+ */
+ public void write(
+ List<? extends PackedObjectInfo> objectsByIndexPos,
+ byte[] packChecksum) throws IOException {
+ writeHeader();
+ writeBody(objectsByIndexPos);
+ writeFooter(packChecksum);
+ out.flush();
+ }
+
+ /**
+ * Write the header of a reverse index file, usually the magic bytes and the
+ * file format version.
+ *
+ * @throws IOException
+ * if writing the output fails
+ */
+ protected abstract void writeHeader() throws IOException;
+
+ /**
+ * Write the body of a reverse index file, usually the forward index
+ * positions of the given objects, sorted by those objects' pack file
+ * offsets.
+ *
+ * @param objectsSortedByIndexPosition
+ * the objects whose forward index file positions should be
+ * written, sorted by forward index file position; not modified
+ * during method
+ * @throws IOException
+ * if writing the output fails
+ */
+ protected abstract void writeBody(
+ List<? extends PackedObjectInfo> objectsSortedByIndexPosition)
+ throws IOException;
+
+ private void writeFooter(byte[] packChecksum) throws IOException {
+ out.write(packChecksum);
+ byte[] selfChecksum = out.getMessageDigest().digest();
+ out.write(selfChecksum);
+ }
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackReverseIndexWriterV1.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackReverseIndexWriterV1.java
new file mode 100644
index 0000000..7630724
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackReverseIndexWriterV1.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2023, Google LLC and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.internal.storage.file;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.List;
+
+import org.eclipse.jgit.transport.PackedObjectInfo;
+import org.eclipse.jgit.util.IntList;
+import org.eclipse.jgit.util.IntList.IntComparator;
+
+/**
+ * Writes reverse index files following the version 1 format.
+ * <p>
+ * The file format is specified at
+ * https://git-scm.com/docs/pack-format#_pack_rev_files_have_the_format.
+ */
+final class PackReverseIndexWriterV1 extends PackReverseIndexWriter {
+ private static final int OID_VERSION_SHA1 = 1;
+
+ private static final int DEFAULT_OID_VERSION = OID_VERSION_SHA1;
+
+ PackReverseIndexWriterV1(final OutputStream dst) {
+ super(dst);
+ }
+
+ @Override
+ protected void writeHeader() throws IOException {
+ out.write(MAGIC);
+ dataOutput.writeInt(VERSION_1);
+ dataOutput.writeInt(DEFAULT_OID_VERSION);
+ }
+
+ @Override
+ protected void writeBody(List<? extends PackedObjectInfo> objectsByIndexPos)
+ throws IOException {
+ IntList positionsByOffset = IntList.filledWithRange(0,
+ objectsByIndexPos.size());
+ positionsByOffset
+ .sort(new IndexPositionsByOffsetComparator(objectsByIndexPos));
+
+ for (int i = 0; i < positionsByOffset.size(); i++) {
+ int indexPosition = positionsByOffset.get(i);
+ dataOutput.writeInt(indexPosition);
+ }
+ }
+
+ private static class IndexPositionsByOffsetComparator
+ implements IntComparator {
+ private List<? extends PackedObjectInfo> objectsByIndexPos;
+
+ private IndexPositionsByOffsetComparator(
+ List<? extends PackedObjectInfo> objectsByIndexPos) {
+ this.objectsByIndexPos = objectsByIndexPos;
+ }
+
+ @Override
+ public int compare(int firstIndexPosition, int secondIndexPosition) {
+ return Long.compare(getOffset(firstIndexPosition),
+ getOffset(secondIndexPosition));
+ }
+
+ private long getOffset(int indexPosition) {
+ return objectsByIndexPos.get(indexPosition).getOffset();
+ }
+ }
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackedBatchRefUpdate.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackedBatchRefUpdate.java
index 8b0ea4f..106313d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackedBatchRefUpdate.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackedBatchRefUpdate.java
@@ -158,36 +158,40 @@
}
Map<String, LockFile> locks = null;
+ LockFile packedRefsLock = null;
refdb.inProcessPackedRefsLock.lock();
try {
- PackedRefList oldPackedList;
+ // During clone locking isn't needed since no refs exist yet.
+ // This also helps to avoid problems with refs only differing in
+ // case on a case insensitive filesystem (bug 528497)
if (!refdb.isInClone() && shouldLockLooseRefs) {
locks = lockLooseRefs(pending);
if (locks == null) {
return;
}
- oldPackedList = refdb.pack(locks);
- } else {
- // During clone locking isn't needed since no refs exist yet.
- // This also helps to avoid problems with refs only differing in
- // case on a case insensitive filesystem (bug 528497)
- oldPackedList = refdb.getPackedRefs();
+ refdb.pack(locks);
}
+
+ packedRefsLock = refdb.lockPackedRefsOrThrow();
+ PackedRefList oldPackedList = refdb.refreshPackedRefs();
RefList<Ref> newRefs = applyUpdates(walk, oldPackedList, pending);
if (newRefs == null) {
return;
}
- LockFile packedRefsLock = refdb.lockPackedRefs();
- if (packedRefsLock == null) {
- lockFailure(pending.get(0), pending);
- return;
- }
- // commitPackedRefs removes lock file (by renaming over real file).
refdb.commitPackedRefs(packedRefsLock, newRefs, oldPackedList,
true);
+ } catch (LockFailedException e) {
+ lockFailure(pending.get(0), pending);
+ return;
} finally {
try {
unlockAll(locks);
+ if (packedRefsLock != null) {
+ // This will be no-op if commitPackedRefs is successful as
+ // it will remove the lock file (by renaming over real
+ // file).
+ packedRefsLock.unlock();
+ }
} finally {
refdb.inProcessPackedRefsLock.unlock();
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java
index e9abb02..9f31e68 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java
@@ -155,7 +155,7 @@
* {@code RepositoryCache} is used, this lock instance will be used by all
* threads.
*/
- final ReentrantLock inProcessPackedRefsLock = new ReentrantLock(true);
+ final ReentrantLock inProcessPackedRefsLock;
/**
* Number of modifications made to this database.
@@ -179,6 +179,20 @@
private final TrustPackedRefsStat trustPackedRefsStat;
+ RefDirectory(RefDirectory refDb) {
+ parent = refDb.parent;
+ gitDir = refDb.gitDir;
+ refsDir = refDb.refsDir;
+ logsDir = refDb.logsDir;
+ logsRefsDir = refDb.logsRefsDir;
+ packedRefsFile = refDb.packedRefsFile;
+ looseRefs.set(refDb.looseRefs.get());
+ packedRefs.set(refDb.packedRefs.get());
+ trustFolderStat = refDb.trustFolderStat;
+ trustPackedRefsStat = refDb.trustPackedRefsStat;
+ inProcessPackedRefsLock = refDb.inProcessPackedRefsLock;
+ }
+
RefDirectory(FileRepository db) {
final FS fs = db.getFS();
parent = db;
@@ -197,6 +211,7 @@
.getEnum(ConfigConstants.CONFIG_CORE_SECTION, null,
ConfigConstants.CONFIG_KEY_TRUST_PACKED_REFS_STAT,
TrustPackedRefsStat.UNSET);
+ inProcessPackedRefsLock = new ReentrantLock(true);
}
Repository getRepository() {
@@ -223,6 +238,15 @@
return new File(logsDir, name);
}
+ /**
+ * Create a cache of this {@link RefDirectory}.
+ *
+ * @return a cached RefDirectory.
+ */
+ public SnapshottingRefDirectory createSnapshottingRefDirectory() {
+ return new SnapshottingRefDirectory(this);
+ }
+
/** {@inheritDoc} */
@Override
public void create() throws IOException {
@@ -575,18 +599,26 @@
else {
detachingSymbolicRef = detach && ref.isSymbolic();
}
- RefDirectoryUpdate refDirUpdate = new RefDirectoryUpdate(this, ref);
+ RefDirectoryUpdate refDirUpdate = createRefDirectoryUpdate(ref);
if (detachingSymbolicRef)
refDirUpdate.setDetachingSymbolicRef();
return refDirUpdate;
}
+ RefDirectoryUpdate createRefDirectoryUpdate(Ref ref) {
+ return new RefDirectoryUpdate(this, ref);
+ }
+
/** {@inheritDoc} */
@Override
public RefDirectoryRename newRename(String fromName, String toName)
throws IOException {
RefDirectoryUpdate from = newUpdate(fromName, false);
RefDirectoryUpdate to = newUpdate(toName, false);
+ return createRefDirectoryRename(from, to);
+ }
+
+ RefDirectoryRename createRefDirectoryRename(RefDirectoryUpdate from, RefDirectoryUpdate to) {
return new RefDirectoryRename(from, to);
}
@@ -643,16 +675,16 @@
// Write the packed-refs file using an atomic update. We might
// wind up reading it twice, before and after the lock, to ensure
// we don't miss an edit made externally.
- final PackedRefList packed = getPackedRefs();
+ PackedRefList packed = getPackedRefs();
if (packed.contains(name)) {
inProcessPackedRefsLock.lock();
try {
LockFile lck = lockPackedRefsOrThrow();
try {
- PackedRefList cur = readPackedRefs();
- int idx = cur.find(name);
+ packed = refreshPackedRefs();
+ int idx = packed.find(name);
if (0 <= idx) {
- commitPackedRefs(lck, cur.remove(idx), packed, true);
+ commitPackedRefs(lck, packed.remove(idx), packed, true);
}
} finally {
lck.unlock();
@@ -697,17 +729,17 @@
pack(refs, Collections.emptyMap());
}
- PackedRefList pack(Map<String, LockFile> heldLocks) throws IOException {
- return pack(heldLocks.keySet(), heldLocks);
+ void pack(Map<String, LockFile> heldLocks) throws IOException {
+ pack(heldLocks.keySet(), heldLocks);
}
- private PackedRefList pack(Collection<String> refs,
+ private void pack(Collection<String> refs,
Map<String, LockFile> heldLocks) throws IOException {
for (LockFile ol : heldLocks.values()) {
ol.requireLock();
}
if (refs.isEmpty()) {
- return null;
+ return;
}
FS fs = parent.getFS();
@@ -716,13 +748,13 @@
try {
LockFile lck = lockPackedRefsOrThrow();
try {
- final PackedRefList packed = getPackedRefs();
- RefList<Ref> cur = readPackedRefs();
+ PackedRefList oldPacked = refreshPackedRefs();
+ RefList<Ref> newPacked = oldPacked;
// Iterate over all refs to be packed
boolean dirty = false;
for (String refName : refs) {
- Ref oldRef = readRef(refName, cur);
+ Ref oldRef = readRef(refName, newPacked);
if (oldRef == null) {
continue; // A non-existent ref is already correctly packed.
}
@@ -739,21 +771,20 @@
}
dirty = true;
- int idx = cur.find(refName);
+ int idx = newPacked.find(refName);
if (idx >= 0) {
- cur = cur.set(idx, newRef);
+ newPacked = newPacked.set(idx, newRef);
} else {
- cur = cur.add(idx, newRef);
+ newPacked = newPacked.add(idx, newRef);
}
}
if (!dirty) {
// All requested refs were already packed accurately
- return packed;
+ return;
}
// The new content for packed-refs is collected. Persist it.
- PackedRefList result = commitPackedRefs(lck, cur, packed,
- false);
+ commitPackedRefs(lck, newPacked, oldPacked,false);
// Now delete the loose refs which are now packed
for (String refName : refs) {
@@ -780,9 +811,9 @@
if (currentLooseRef == null || currentLooseRef.isSymbolic()) {
continue;
}
- Ref packedRef = cur.get(refName);
+ Ref packedRef = newPacked.get(refName);
ObjectId clr_oid = currentLooseRef.getObjectId();
- if (clr_oid != null
+ if (clr_oid != null && packedRef != null
&& clr_oid.equals(packedRef.getObjectId())) {
RefList<LooseRef> curLoose, newLoose;
do {
@@ -804,7 +835,6 @@
}
// Don't fire refsChanged. The refs have not change, only their
// storage.
- return result;
} finally {
lck.unlock();
}
@@ -825,7 +855,7 @@
return null;
}
- private LockFile lockPackedRefsOrThrow() throws IOException {
+ LockFile lockPackedRefsOrThrow() throws IOException {
LockFile lck = lockPackedRefs();
if (lck == null) {
throw new LockFailedException(packedRefsFile);
@@ -924,9 +954,18 @@
break;
}
+ return refreshPackedRefs(curList);
+ }
+
+ PackedRefList refreshPackedRefs() throws IOException {
+ return refreshPackedRefs(packedRefs.get());
+ }
+
+ private PackedRefList refreshPackedRefs(PackedRefList curList)
+ throws IOException {
final PackedRefList newList = readPackedRefs();
- if (packedRefs.compareAndSet(curList, newList)
- && !curList.id.equals(newList.id)) {
+ if (packedRefs.compareAndSet(curList, newList) && !curList.id.equals(
+ newList.id)) {
modCnt.incrementAndGet();
}
return newList;
@@ -957,6 +996,13 @@
}
}
+ void compareAndSetPackedRefs(PackedRefList curList, PackedRefList newList) {
+ if (packedRefs.compareAndSet(curList, newList)
+ && !curList.id.equals(newList.id)) {
+ modCnt.incrementAndGet();
+ }
+ }
+
private RefList<Ref> parsePackedRefs(BufferedReader br)
throws IOException {
RefList.Builder<Ref> all = new RefList.Builder<>();
@@ -1015,12 +1061,9 @@
return new StringBuilder(end - off).append(src, off, end).toString();
}
- PackedRefList commitPackedRefs(final LockFile lck, final RefList<Ref> refs,
+ void commitPackedRefs(final LockFile lck, final RefList<Ref> refs,
final PackedRefList oldPackedList, boolean changed)
throws IOException {
- // Can't just return packedRefs.get() from this method; it might have been
- // updated again after writePackedRefs() returns.
- AtomicReference<PackedRefList> result = new AtomicReference<>();
new RefWriter(refs) {
@Override
protected void writeFile(String name, byte[] content)
@@ -1051,10 +1094,8 @@
if (changed) {
modCnt.incrementAndGet();
}
- result.set(newPackedList);
}
}.writePackedRefs();
- return result.get();
}
private Ref readRef(String name, RefList<Ref> packed) throws IOException {
@@ -1234,7 +1275,7 @@
File tmp = File.createTempFile("renamed_", "_ref", refsDir); //$NON-NLS-1$ //$NON-NLS-2$
String name = Constants.R_REFS + tmp.getName();
Ref ref = new ObjectIdRef.Unpeeled(NEW, name, null);
- return new RefDirectoryUpdate(this, ref);
+ return createRefDirectoryUpdate(ref);
}
/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectoryRename.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectoryRename.java
index 2c0ade6..d07299e 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectoryRename.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectoryRename.java
@@ -59,6 +59,15 @@
refdb = src.getRefDatabase();
}
+ /**
+ * Get the ref directory associated with this rename.
+ *
+ * @return the ref directory.
+ */
+ protected RefDirectory getRefDirectory() {
+ return refdb;
+ }
+
/** {@inheritDoc} */
@Override
protected Result doRename() throws IOException {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/SnapshottingRefDirectory.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/SnapshottingRefDirectory.java
new file mode 100644
index 0000000..0b97480
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/SnapshottingRefDirectory.java
@@ -0,0 +1,258 @@
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc.
+ * and other copyright owners as documented in the project's IP log.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+package org.eclipse.jgit.internal.storage.file;
+
+import org.eclipse.jgit.lib.ProgressMonitor;
+import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.lib.RefDatabase;
+import org.eclipse.jgit.lib.RefUpdate;
+import org.eclipse.jgit.revwalk.RevWalk;
+
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * Snapshotting write-through cache of a {@link RefDirectory}.
+ * <p>
+ * This is intended to be short-term write-through snapshot based cache used in
+ * a request scope to avoid re-reading packed-refs on each read. A future
+ * improvement could also snapshot loose refs.
+ * <p>
+ * Only use this class when concurrent writes from other requests (not using the
+ * same instance of SnapshottingRefDirectory) generally need not be visible to
+ * the current request. The exception to this is when such writes would cause
+ * writes from this snapshot to fail due to their base ref value being
+ * outdated.
+ */
+class SnapshottingRefDirectory extends RefDirectory {
+ final RefDirectory refDb;
+
+ private volatile boolean isValid;
+
+ /**
+ * Create a snapshotting write-through cache of a {@link RefDirectory}.
+ *
+ * @param refDb
+ * a reference to the ref database
+ */
+ SnapshottingRefDirectory(RefDirectory refDb) {
+ super(refDb);
+ this.refDb = refDb;
+ }
+
+ /**
+ * Lazily initializes and returns a PackedRefList snapshot.
+ * <p>
+ * A newer snapshot will be returned when a ref update is performed using
+ * this {@link SnapshottingRefDirectory}.
+ */
+ @Override
+ PackedRefList getPackedRefs() throws IOException {
+ if (!isValid) {
+ synchronized (this) {
+ if (!isValid) {
+ refreshSnapshot();
+ }
+ }
+ }
+ return packedRefs.get();
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ void delete(RefDirectoryUpdate update) throws IOException {
+ refreshSnapshot();
+ super.delete(update);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public RefDirectoryUpdate newUpdate(String name, boolean detach)
+ throws IOException {
+ refreshSnapshot();
+ return super.newUpdate(name, detach);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public PackedBatchRefUpdate newBatchUpdate() {
+ return new SnapshotPackedBatchRefUpdate(this);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public PackedBatchRefUpdate newBatchUpdate(boolean shouldLockLooseRefs) {
+ return new SnapshotPackedBatchRefUpdate(this, shouldLockLooseRefs);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ RefDirectoryUpdate newTemporaryUpdate() throws IOException {
+ refreshSnapshot();
+ return super.newTemporaryUpdate();
+ }
+
+ @Override
+ RefDirectoryUpdate createRefDirectoryUpdate(Ref ref) {
+ return new SnapshotRefDirectoryUpdate(this, ref);
+ }
+
+ @Override
+ RefDirectoryRename createRefDirectoryRename(RefDirectoryUpdate from,
+ RefDirectoryUpdate to) {
+ return new SnapshotRefDirectoryRename(from, to);
+ }
+
+ synchronized void invalidateSnapshot() {
+ isValid = false;
+ }
+
+ /**
+ * Refresh our snapshot by calling the underlying RefDirectory's
+ * getPackedRefs().
+ * <p>
+ * Update the in-memory copy of the underlying RefDirectory's packed-refs to
+ * avoid the overhead of re-reading packed-refs on each new snapshot as the
+ * packed-refs of the underlying RefDirectory may not get updated if most
+ * threads use this snapshot.
+ *
+ * @throws IOException
+ */
+ private synchronized void refreshSnapshot() throws IOException {
+ compareAndSetPackedRefs(packedRefs.get(), refDb.getPackedRefs());
+ isValid = true;
+ }
+
+ @FunctionalInterface
+ private interface SupplierThrowsException<R, E extends Exception> {
+ R call() throws E;
+ }
+
+ @FunctionalInterface
+ private interface FunctionThrowsException<A, R, E extends Exception> {
+ R apply(A a) throws E;
+ }
+
+ @FunctionalInterface
+ private interface TriConsumerThrowsException<A1, A2, A3, E extends Exception> {
+ void accept(A1 a1, A2 a2, A3 a3) throws E;
+ }
+
+ private static <T> T invalidateSnapshotOnError(
+ SupplierThrowsException<T, IOException> f, RefDatabase refDb)
+ throws IOException {
+ return invalidateSnapshotOnError(a -> f.call(), null, refDb);
+ }
+
+ private static <A, R> R invalidateSnapshotOnError(
+ FunctionThrowsException<A, R, IOException> f, A a,
+ RefDatabase refDb) throws IOException {
+ try {
+ return f.apply(a);
+ } catch (IOException e) {
+ ((SnapshottingRefDirectory) refDb).invalidateSnapshot();
+ throw e;
+ }
+ }
+
+ private static <A1, A2, A3> void invalidateSnapshotOnError(
+ TriConsumerThrowsException<A1, A2, A3, IOException> f, A1 a1, A2 a2,
+ A3 a3, RefDatabase refDb) throws IOException {
+ try {
+ f.accept(a1, a2, a3);
+ } catch (IOException e) {
+ ((SnapshottingRefDirectory) refDb).invalidateSnapshot();
+ throw e;
+ }
+ }
+
+ private static class SnapshotRefDirectoryUpdate extends RefDirectoryUpdate {
+ SnapshotRefDirectoryUpdate(RefDirectory r, Ref ref) {
+ super(r, ref);
+ }
+
+ @Override
+ public Result forceUpdate() throws IOException {
+ return invalidateSnapshotOnError(() -> super.forceUpdate(),
+ getRefDatabase());
+ }
+
+ @Override
+ public Result update() throws IOException {
+ return invalidateSnapshotOnError(() -> super.update(),
+ getRefDatabase());
+ }
+
+ @Override
+ public Result update(RevWalk walk) throws IOException {
+ return invalidateSnapshotOnError(rw -> super.update(rw), walk,
+ getRefDatabase());
+ }
+
+ @Override
+ public Result delete() throws IOException {
+ return invalidateSnapshotOnError(() -> super.delete(),
+ getRefDatabase());
+ }
+
+ @Override
+ public Result delete(RevWalk walk) throws IOException {
+ return invalidateSnapshotOnError(rw -> super.delete(rw), walk,
+ getRefDatabase());
+ }
+
+ @Override
+ public Result link(String target) throws IOException {
+ return invalidateSnapshotOnError(t -> super.link(t), target,
+ getRefDatabase());
+ }
+ }
+
+ private static class SnapshotRefDirectoryRename extends RefDirectoryRename {
+ SnapshotRefDirectoryRename(RefDirectoryUpdate src,
+ RefDirectoryUpdate dst) {
+ super(src, dst);
+ }
+
+ @Override
+ public RefUpdate.Result rename() throws IOException {
+ return invalidateSnapshotOnError(() -> super.rename(),
+ getRefDirectory());
+ }
+ }
+
+ private static class SnapshotPackedBatchRefUpdate
+ extends PackedBatchRefUpdate {
+ SnapshotPackedBatchRefUpdate(RefDirectory refdb) {
+ super(refdb);
+ }
+
+ SnapshotPackedBatchRefUpdate(RefDirectory refdb,
+ boolean shouldLockLooseRefs) {
+ super(refdb, shouldLockLooseRefs);
+ }
+
+ @Override
+ public void execute(RevWalk walk, ProgressMonitor monitor,
+ List<String> options) throws IOException {
+ invalidateSnapshotOnError((rw, m, o) -> super.execute(rw, m, o),
+ walk, monitor, options, getRefDatabase());
+ }
+
+ @Override
+ public void execute(RevWalk walk, ProgressMonitor monitor)
+ throws IOException {
+ invalidateSnapshotOnError((rw, m, a3) -> super.execute(rw, m), walk,
+ monitor, null, getRefDatabase());
+ }
+ }
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackExt.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackExt.java
index adad411..d580083 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackExt.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackExt.java
@@ -71,6 +71,15 @@
return 1 << getPosition();
}
+ /**
+ * Format a temporary file extension for this PackExt.
+ *
+ * @return a temporary file extension
+ */
+ public String getTmpExtension() {
+ return String.format(".%s_tmp", ext); //$NON-NLS-1$
+ }
+
/** {@inheritDoc} */
@Override
public String toString() {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
index 60edc76..9f8ab35 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
@@ -62,6 +62,7 @@
import org.eclipse.jgit.internal.storage.file.PackBitmapIndexWriterV1;
import org.eclipse.jgit.internal.storage.file.PackIndexWriter;
import org.eclipse.jgit.internal.storage.file.PackObjectSizeIndexWriter;
+import org.eclipse.jgit.internal.storage.file.PackReverseIndexWriter;
import org.eclipse.jgit.lib.AnyObjectId;
import org.eclipse.jgit.lib.AsyncObjectSizeQueue;
import org.eclipse.jgit.lib.BatchingProgressMonitor;
@@ -1159,6 +1160,38 @@
}
/**
+ * Whether the writer will write a reverse index file. The configuration
+ * flag must be on and the writer must be able to write corresponding
+ * forward index.
+ *
+ * @return whether the writer will write a reverse index file
+ */
+ public boolean isReverseIndexEnabled() {
+ // Only write the reverse index if the writer is configured to and the
+ // forward index that it would correspond to will be written.
+ return config.isWriteReverseIndex() && !isIndexDisabled();
+ }
+
+ /**
+ * Write the pack's reverse index file to the output stream.
+ *
+ * @param stream
+ * where to write the file contents to
+ * @throws IOException
+ * if writing to the stream fails
+ */
+ public void writeReverseIndex(OutputStream stream) throws IOException {
+ if (!isReverseIndexEnabled()) {
+ return;
+ }
+ long writeStart = System.currentTimeMillis();
+ PackReverseIndexWriter writer = PackReverseIndexWriter
+ .createWriter(stream);
+ writer.write(sortByName(), packcsum);
+ stats.timeWriting += System.currentTimeMillis() - writeStart;
+ }
+
+ /**
* Create a bitmap index file to match the pack file just written.
* <p>
* Called after {@link #prepareBitmapIndex(ProgressMonitor)}.
@@ -1712,6 +1745,11 @@
}
throw new IOException(JGitText
.get().packingCancelledDuringObjectsWriting, e);
+ } catch (Throwable e) {
+ if (e1 != null) {
+ e.addSuppressed(e1);
+ }
+ throw e;
}
}
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/BatchRefUpdate.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/BatchRefUpdate.java
index e2bebfe..d2367cc 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/BatchRefUpdate.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/BatchRefUpdate.java
@@ -521,6 +521,16 @@
monitor.endTask();
}
+ /**
+ * Get the ref database associated with this update.
+ *
+ * @return the ref database.
+ * @since 6.6
+ */
+ protected RefDatabase getRefDatabase() {
+ return refdb;
+ }
+
private static boolean isMissing(RevWalk walk, ObjectId id)
throws IOException {
if (id.equals(ObjectId.zeroId())) {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
index 7d6f40a..056861d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
@@ -751,6 +751,13 @@
public static final String CONFIG_KEY_BITMAP_RECENT_COMMIT_COUNT = "bitmaprecentcommitspan";
/**
+ * The "pack.writeReverseIndex" key
+ *
+ * @since 6.6
+ */
+ public static final String CONFIG_KEY_WRITE_REVERSE_INDEX = "writeReverseIndex";
+
+ /**
* The "pack.buildBitmaps" key
* @since 5.8
*/
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/FileModeCache.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/FileModeCache.java
new file mode 100644
index 0000000..073bf7a
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/FileModeCache.java
@@ -0,0 +1,309 @@
+/*
+ * Copyright (C) 2023, Thomas Wolf <twolf@apache.org> and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.lib;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.InvalidPathException;
+import java.nio.file.LinkOption;
+import java.nio.file.Path;
+import java.nio.file.attribute.BasicFileAttributeView;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.jgit.annotations.NonNull;
+import org.eclipse.jgit.util.FS;
+import org.eclipse.jgit.util.FileUtils;
+
+/**
+ * A hierarchical cache of {@link FileMode}s per git path.
+ *
+ * @since 6.6.1
+ */
+public class FileModeCache {
+
+ @NonNull
+ private final CacheItem root = new CacheItem(FileMode.TREE);
+
+ @NonNull
+ private final Repository repo;
+
+ /**
+ * Creates a new {@link FileModeCache} for a {@link Repository}.
+ *
+ * @param repo
+ * {@link Repository} this cache is for
+ */
+ public FileModeCache(@NonNull Repository repo) {
+ this.repo = repo;
+ }
+
+ /**
+ * Retrieves the {@link Repository}.
+ *
+ * @return the {@link Repository} this {@link FileModeCache} was created for
+ */
+ @NonNull
+ public Repository getRepository() {
+ return repo;
+ }
+
+ /**
+ * Obtains the {@link CacheItem} for the working tree root.
+ *
+ * @return the {@link CacheItem}
+ */
+ @NonNull
+ public CacheItem getRoot() {
+ return root;
+ }
+
+ /**
+ * Ensure that the given parent directory exists, and cache the information
+ * that gitPath refers to a file.
+ *
+ * @param gitPath
+ * of the file to be written
+ * @param parentDir
+ * directory in which the file shall be placed, assumed to be the
+ * parent of the {@code gitPath}
+ * @param makeSpace
+ * whether to delete a possibly existing file at
+ * {@code parentDir}
+ * @throws IOException
+ * if the directory cannot be created, if necessary
+ */
+ public void safeCreateParentDirectory(String gitPath, File parentDir,
+ boolean makeSpace) throws IOException {
+ CacheItem cachedParent = safeCreateDirectory(gitPath, parentDir,
+ makeSpace);
+ cachedParent.remove(gitPath.substring(gitPath.lastIndexOf('/') + 1));
+ }
+
+ /**
+ * Ensures the given directory {@code dir} with the given git path exists.
+ *
+ * @param gitPath
+ * of a file to be written
+ * @param dir
+ * directory in which the file shall be placed, assumed to be the
+ * parent of the {@code gitPath}
+ * @param makeSpace
+ * whether to remove a file that already at that name
+ * @return A {@link CacheItem} describing the directory, which is guaranteed
+ * to exist
+ * @throws IOException
+ * if the directory cannot be made to exist at the given
+ * location
+ */
+ public CacheItem safeCreateDirectory(String gitPath, File dir,
+ boolean makeSpace) throws IOException {
+ FS fs = repo.getFS();
+ int i = gitPath.lastIndexOf('/');
+ String parentPath = null;
+ if (i >= 0) {
+ if ((makeSpace && dir.isFile()) || fs.isSymLink(dir)) {
+ FileUtils.delete(dir);
+ }
+ parentPath = gitPath.substring(0, i);
+ deleteSymlinkParent(fs, parentPath, repo.getWorkTree());
+ }
+ FileUtils.mkdirs(dir, true);
+ CacheItem cachedParent = getRoot();
+ if (parentPath != null) {
+ cachedParent = add(parentPath, FileMode.TREE);
+ }
+ return cachedParent;
+ }
+
+ private void deleteSymlinkParent(FS fs, String gitPath, File workingTree)
+ throws IOException {
+ if (!fs.supportsSymlinks()) {
+ return;
+ }
+ String[] parts = gitPath.split("/"); //$NON-NLS-1$
+ int n = parts.length;
+ CacheItem cached = getRoot();
+ File p = workingTree;
+ for (int i = 0; i < n; i++) {
+ p = new File(p, parts[i]);
+ CacheItem cachedChild = cached != null ? cached.child(parts[i])
+ : null;
+ boolean delete = false;
+ if (cachedChild != null) {
+ if (FileMode.SYMLINK.equals(cachedChild.getMode())) {
+ delete = true;
+ }
+ } else {
+ try {
+ Path nioPath = FileUtils.toPath(p);
+ BasicFileAttributes attributes = nioPath.getFileSystem()
+ .provider()
+ .getFileAttributeView(nioPath,
+ BasicFileAttributeView.class,
+ LinkOption.NOFOLLOW_LINKS)
+ .readAttributes();
+ if (attributes.isSymbolicLink()) {
+ delete = p.isDirectory();
+ } else if (attributes.isRegularFile()) {
+ break;
+ }
+ } catch (InvalidPathException | IOException e) {
+ // If we can't get the attributes the path does not exist,
+ // or if it does a subsequent mkdirs() will also throw an
+ // exception.
+ break;
+ }
+ }
+ if (delete) {
+ // Deletes the symlink
+ FileUtils.delete(p, FileUtils.SKIP_MISSING);
+ if (cached != null) {
+ cached.remove(parts[i]);
+ }
+ break;
+ }
+ cached = cachedChild;
+ }
+ }
+
+ /**
+ * Records the given {@link FileMode} for the given git path in the cache.
+ * If an entry already exists for the given path, the previously cached file
+ * mode is overwritten.
+ *
+ * @param gitPath
+ * to cache the {@link FileMode} for
+ * @param finalMode
+ * {@link FileMode} to cache
+ * @return the {@link CacheItem} for the path
+ */
+ @NonNull
+ private CacheItem add(String gitPath, FileMode finalMode) {
+ if (gitPath.isEmpty()) {
+ throw new IllegalArgumentException();
+ }
+ String[] parts = gitPath.split("/"); //$NON-NLS-1$
+ int n = parts.length;
+ int i = 0;
+ CacheItem curr = getRoot();
+ while (i < n) {
+ CacheItem next = curr.child(parts[i]);
+ if (next == null) {
+ break;
+ }
+ curr = next;
+ i++;
+ }
+ if (i == n) {
+ curr.setMode(finalMode);
+ } else {
+ while (i < n) {
+ curr = curr.insert(parts[i],
+ i + 1 == n ? finalMode : FileMode.TREE);
+ i++;
+ }
+ }
+ return curr;
+ }
+
+ /**
+ * An item from a {@link FileModeCache}, recording information about a git
+ * path (known from context).
+ */
+ public static class CacheItem {
+
+ @NonNull
+ private FileMode mode;
+
+ private Map<String, CacheItem> children;
+
+ /**
+ * Creates a new {@link CacheItem}.
+ *
+ * @param mode
+ * {@link FileMode} to cache
+ */
+ public CacheItem(@NonNull FileMode mode) {
+ this.mode = mode;
+ }
+
+ /**
+ * Retrieves the cached {@link FileMode}.
+ *
+ * @return the {@link FileMode}
+ */
+ @NonNull
+ public FileMode getMode() {
+ return mode;
+ }
+
+ /**
+ * Retrieves an immediate child of this {@link CacheItem} by name.
+ *
+ * @param childName
+ * name of the child to get
+ * @return the {@link CacheItem}, or {@code null} if no such child is
+ * known
+ */
+ public CacheItem child(String childName) {
+ if (children == null) {
+ return null;
+ }
+ return children.get(childName);
+ }
+
+ /**
+ * Inserts a new cached {@link FileMode} as an immediate child of this
+ * {@link CacheItem}. If there is already a child with the same name, it
+ * is overwritten.
+ *
+ * @param childName
+ * name of the child to create
+ * @param childMode
+ * {@link FileMode} to cache
+ * @return the new {@link CacheItem} created for the child
+ */
+ public CacheItem insert(String childName, @NonNull FileMode childMode) {
+ if (!FileMode.TREE.equals(mode)) {
+ throw new IllegalArgumentException();
+ }
+ if (children == null) {
+ children = new HashMap<>();
+ }
+ CacheItem newItem = new CacheItem(childMode);
+ children.put(childName, newItem);
+ return newItem;
+ }
+
+ /**
+ * Removes the immediate child with the given name.
+ *
+ * @param childName
+ * name of the child to remove
+ * @return the previously cached {@link CacheItem}, if any
+ */
+ public CacheItem remove(String childName) {
+ if (children == null) {
+ return null;
+ }
+ return children.remove(childName);
+ }
+
+ void setMode(@NonNull FileMode mode) {
+ this.mode = mode;
+ if (!FileMode.TREE.equals(mode)) {
+ children = null;
+ }
+ }
+ }
+
+}
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 e56513d..04c17be 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
@@ -3,8 +3,8 @@
* Copyright (C) 2010-2012, Matthias Sohn <matthias.sohn@sap.com>
* Copyright (C) 2012, Research In Motion Limited
* Copyright (C) 2017, Obeo (mathieu.cartaud@obeo.fr)
- * Copyright (C) 2018, 2022 Thomas Wolf <twolf@apache.org>
- * Copyright (C) 2022, Google Inc. and others
+ * Copyright (C) 2018, 2023 Thomas Wolf <twolf@apache.org>
+ * Copyright (C) 2023, 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
@@ -47,6 +47,7 @@
import org.eclipse.jgit.diff.RawText;
import org.eclipse.jgit.diff.RawTextComparator;
import org.eclipse.jgit.diff.Sequence;
+import org.eclipse.jgit.dircache.Checkout;
import org.eclipse.jgit.dircache.DirCache;
import org.eclipse.jgit.dircache.DirCacheBuildIterator;
import org.eclipse.jgit.dircache.DirCacheBuilder;
@@ -79,7 +80,6 @@
import org.eclipse.jgit.treewalk.WorkingTreeIterator;
import org.eclipse.jgit.treewalk.WorkingTreeOptions;
import org.eclipse.jgit.treewalk.filter.TreeFilter;
-import org.eclipse.jgit.util.FS;
import org.eclipse.jgit.util.LfsFactory;
import org.eclipse.jgit.util.LfsFactory.LfsInputStream;
import org.eclipse.jgit.util.TemporaryBuffer;
@@ -205,6 +205,12 @@
private boolean indexChangesWritten;
/**
+ * {@link Checkout} to use for actually checking out files if
+ * {@link #inCore} is {@code false}.
+ */
+ private Checkout checkout;
+
+ /**
* @param repo
* the {@link Repository}.
* @param dirCache
@@ -223,6 +229,7 @@
this.inCoreFileSizeLimit = getInCoreFileSizeLimit(config);
this.checkoutMetadataByPath = new HashMap<>();
this.cleanupMetadataByPath = new HashMap<>();
+ this.checkout = new Checkout(nonNullRepo(), workingTreeOptions);
}
/**
@@ -350,9 +357,8 @@
}
// All content operations are successfully done. If we can now write
- // the
- // new index we are on quite safe ground. Even if the checkout of
- // files coming from "theirs" fails the user can work around such
+ // the new index we are on quite safe ground. Even if the checkout
+ // of files coming from "theirs" fails the user can work around such
// failures by checking out the index again.
if (!builder.commit()) {
revertModifiedFiles();
@@ -518,14 +524,14 @@
for (Map.Entry<String, DirCacheEntry> entry : toBeCheckedOut
.entrySet()) {
DirCacheEntry dirCacheEntry = entry.getValue();
+ String gitPath = entry.getKey();
if (dirCacheEntry.getFileMode() == FileMode.GITLINK) {
- new File(nonNullRepo().getWorkTree(), entry.getKey())
- .mkdirs();
+ checkout.checkoutGitlink(dirCacheEntry, gitPath);
} else {
- DirCacheCheckout.checkoutEntry(repo, dirCacheEntry, reader,
- false, checkoutMetadataByPath.get(entry.getKey()),
- workingTreeOptions);
- result.modifiedFiles.add(entry.getKey());
+ checkout.checkout(dirCacheEntry,
+ checkoutMetadataByPath.get(gitPath), reader,
+ gitPath);
+ result.modifiedFiles.add(gitPath);
}
}
}
@@ -550,9 +556,8 @@
for (String path : result.modifiedFiles) {
DirCacheEntry entry = dirCache.getEntry(path);
if (entry != null) {
- DirCacheCheckout.checkoutEntry(repo, entry, reader, false,
- cleanupMetadataByPath.get(path),
- workingTreeOptions);
+ checkout.checkout(entry, cleanupMetadataByPath.get(path),
+ reader, path);
}
}
}
@@ -586,6 +591,8 @@
if (inCore) {
return;
}
+ checkout.safeCreateParentDirectory(path, file.getParentFile(),
+ false);
CheckoutMetadata metadata = new CheckoutMetadata(streamType,
smudgeCommand);
@@ -1576,15 +1583,11 @@
Attributes attributes)
throws IOException {
File workTree = nonNullRepo().getWorkTree();
- FS fs = nonNullRepo().getFS();
- File of = new File(workTree, tw.getPathString());
- File parentFolder = of.getParentFile();
+ String gitPath = tw.getPathString();
+ File of = new File(workTree, gitPath);
EolStreamType eol = workTreeUpdater.detectCheckoutStreamType(attributes);
- if (!fs.exists(parentFolder)) {
- parentFolder.mkdirs();
- }
workTreeUpdater.updateFileWithContent(rawMerged::openInputStream,
- eol, tw.getSmudgeCommand(attributes), of.getPath(), of);
+ eol, tw.getSmudgeCommand(attributes), gitPath, of);
return of;
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/patch/PatchApplier.java b/org.eclipse.jgit/src/org/eclipse/jgit/patch/PatchApplier.java
index 98a2804..04300a9 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/patch/PatchApplier.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/patch/PatchApplier.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2022, Google Inc. and others
+ * Copyright (C) 2023, 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
@@ -9,6 +9,11 @@
*/
package org.eclipse.jgit.patch;
+import static org.eclipse.jgit.diff.DiffEntry.ChangeType.ADD;
+import static org.eclipse.jgit.diff.DiffEntry.ChangeType.COPY;
+import static org.eclipse.jgit.diff.DiffEntry.ChangeType.DELETE;
+import static org.eclipse.jgit.diff.DiffEntry.ChangeType.MODIFY;
+import static org.eclipse.jgit.diff.DiffEntry.ChangeType.RENAME;
import static org.eclipse.jgit.lib.Constants.OBJ_BLOB;
import java.io.ByteArrayInputStream;
@@ -33,7 +38,6 @@
import java.util.zip.InflaterInputStream;
import org.eclipse.jgit.annotations.Nullable;
import org.eclipse.jgit.api.errors.FilterFailedException;
-import org.eclipse.jgit.api.errors.PatchApplyException;
import org.eclipse.jgit.api.errors.PatchFormatException;
import org.eclipse.jgit.attributes.Attribute;
import org.eclipse.jgit.attributes.Attributes;
@@ -48,6 +52,7 @@
import org.eclipse.jgit.dircache.DirCacheCheckout.StreamSupplier;
import org.eclipse.jgit.dircache.DirCacheEntry;
import org.eclipse.jgit.dircache.DirCacheIterator;
+import org.eclipse.jgit.errors.CorruptObjectException;
import org.eclipse.jgit.errors.IndexWriteException;
import org.eclipse.jgit.internal.JGitText;
import org.eclipse.jgit.lib.Config;
@@ -55,6 +60,7 @@
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.CoreConfig.EolStreamType;
import org.eclipse.jgit.lib.FileMode;
+import org.eclipse.jgit.lib.FileModeCache;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.ObjectInserter;
import org.eclipse.jgit.lib.ObjectLoader;
@@ -77,6 +83,7 @@
import org.eclipse.jgit.util.LfsFactory.LfsInputStream;
import org.eclipse.jgit.util.RawParseUtils;
import org.eclipse.jgit.util.StringUtils;
+import org.eclipse.jgit.util.SystemReader;
import org.eclipse.jgit.util.TemporaryBuffer;
import org.eclipse.jgit.util.TemporaryBuffer.LocalFile;
import org.eclipse.jgit.util.io.BinaryDeltaInputStream;
@@ -134,11 +141,8 @@
* ID of the tree to apply the patch in
* @param oi
* to be used for modifying objects
- * @throws IOException
- * in case of I/O errors
*/
- public PatchApplier(Repository repo, RevTree beforeTree, ObjectInserter oi)
- throws IOException {
+ public PatchApplier(Repository repo, RevTree beforeTree, ObjectInserter oi) {
this.repo = repo;
this.beforeTree = beforeTree;
inserter = oi;
@@ -147,16 +151,48 @@
/**
* A wrapper for returning both the applied tree ID and the applied files
- * list.
+ * list, as well as file specific errors.
*
* @since 6.3
*/
public static class Result {
+ /**
+ * A wrapper for a patch applying error that affects a given file.
+ *
+ * @since 6.6
+ */
+ public static class Error {
+
+ private String msg;
+ private String oldFileName;
+ private @Nullable HunkHeader hh;
+
+ private Error(String msg, String oldFileName,
+ @Nullable HunkHeader hh) {
+ this.msg = msg;
+ this.oldFileName = oldFileName;
+ this.hh = hh;
+ }
+
+ @Override
+ public String toString() {
+ if (hh != null) {
+ return MessageFormat.format(JGitText.get().patchApplyErrorWithHunk,
+ oldFileName, hh, msg);
+ }
+ return MessageFormat.format(JGitText.get().patchApplyErrorWithoutHunk,
+ oldFileName, msg);
+ }
+
+ }
+
private ObjectId treeId;
private List<String> paths;
+ private List<Error> errors = new ArrayList<>();
+
/**
* @return List of modified paths.
*/
@@ -170,6 +206,19 @@
public ObjectId getTreeId() {
return treeId;
}
+
+ /**
+ * @return Errors occurred while applying the patch.
+ *
+ * @since 6.6
+ */
+ public List<Error> getErrors() {
+ return errors;
+ }
+
+ private void addError(String msg,String oldFileName, @Nullable HunkHeader hh) {
+ errors.add(new Error(msg, oldFileName, hh));
+ }
}
/**
@@ -180,12 +229,13 @@
* @return the result of the patch
* @throws PatchFormatException
* if the patch cannot be parsed
- * @throws PatchApplyException
- * if the patch cannot be applied
+ * @throws IOException
+ * if the patch read fails
+ * @deprecated use {@link #applyPatch(Patch)} instead
*/
+ @Deprecated
public Result applyPatch(InputStream patchInput)
- throws PatchFormatException, PatchApplyException {
- Result result = new Result();
+ throws PatchFormatException, IOException {
Patch p = new Patch();
try (InputStream inStream = patchInput) {
p.parse(inStream);
@@ -193,105 +243,107 @@
if (!p.getErrors().isEmpty()) {
throw new PatchFormatException(p.getErrors());
}
-
- DirCache dirCache = inCore() ? DirCache.read(reader, beforeTree)
- : repo.lockDirCache();
-
- DirCacheBuilder dirCacheBuilder = dirCache.builder();
- Set<String> modifiedPaths = new HashSet<>();
- for (FileHeader fh : p.getFiles()) {
- ChangeType type = fh.getChangeType();
- switch (type) {
- case ADD: {
- File f = getFile(fh.getNewPath());
- if (f != null) {
- try {
- FileUtils.mkdirs(f.getParentFile(), true);
- FileUtils.createNewFile(f);
- } catch (IOException e) {
- throw new PatchApplyException(MessageFormat.format(
- JGitText.get().createNewFileFailed, f), e);
- }
- }
- apply(fh.getNewPath(), dirCache, dirCacheBuilder, f, fh);
- }
- break;
- case MODIFY:
- apply(fh.getOldPath(), dirCache, dirCacheBuilder,
- getFile(fh.getOldPath()), fh);
- break;
- case DELETE:
- if (!inCore()) {
- File old = getFile(fh.getOldPath());
- if (!old.delete())
- throw new PatchApplyException(MessageFormat.format(
- JGitText.get().cannotDeleteFile, old));
- }
- break;
- case RENAME: {
- File src = getFile(fh.getOldPath());
- File dest = getFile(fh.getNewPath());
-
- if (!inCore()) {
- /*
- * this is odd: we rename the file on the FS, but
- * apply() will write a fresh stream anyway, which will
- * overwrite if there were hunks in the patch.
- */
- try {
- FileUtils.mkdirs(dest.getParentFile(), true);
- FileUtils.rename(src, dest,
- StandardCopyOption.ATOMIC_MOVE);
- } catch (IOException e) {
- throw new PatchApplyException(MessageFormat.format(
- JGitText.get().renameFileFailed, src, dest),
- e);
- }
- }
- String pathWithOriginalContent = inCore() ?
- fh.getOldPath() : fh.getNewPath();
- apply(pathWithOriginalContent, dirCache, dirCacheBuilder, dest, fh);
- break;
- }
- case COPY: {
- File dest = getFile(fh.getNewPath());
- if (!inCore()) {
- File src = getFile(fh.getOldPath());
- FileUtils.mkdirs(dest.getParentFile(), true);
- Files.copy(src.toPath(), dest.toPath());
- }
- apply(fh.getOldPath(), dirCache, dirCacheBuilder, dest, fh);
- break;
- }
- }
- if (fh.getChangeType() != ChangeType.DELETE)
- modifiedPaths.add(fh.getNewPath());
- if (fh.getChangeType() != ChangeType.COPY
- && fh.getChangeType() != ChangeType.ADD)
- modifiedPaths.add(fh.getOldPath());
- }
-
- // We processed the patch. Now add things that weren't changed.
- for (int i = 0; i < dirCache.getEntryCount(); i++) {
- DirCacheEntry dce = dirCache.getEntry(i);
- if (!modifiedPaths.contains(dce.getPathString())
- || dce.getStage() != DirCacheEntry.STAGE_0)
- dirCacheBuilder.add(dce);
- }
-
- if (inCore())
- dirCacheBuilder.finish();
- else if (!dirCacheBuilder.commit()) {
- throw new IndexWriteException();
- }
-
- result.treeId = dirCache.writeTree(inserter);
- result.paths = modifiedPaths.stream().sorted()
- .collect(Collectors.toList());
- } catch (IOException e) {
- throw new PatchApplyException(MessageFormat.format(
- JGitText.get().patchApplyException, e.getMessage()), e);
}
+ return applyPatch(p);
+ }
+
+ /**
+ * Applies the given patch
+ *
+ * @param p
+ * the patch to apply.
+ * @return the result of the patch
+ * @throws IOException
+ * @since 6.6
+ */
+ public Result applyPatch(Patch p) throws IOException {
+ Result result = new Result();
+ DirCache dirCache = inCore() ? DirCache.read(reader, beforeTree)
+ : repo.lockDirCache();
+
+ FileModeCache directoryCache = new FileModeCache(repo);
+ DirCacheBuilder dirCacheBuilder = dirCache.builder();
+ Set<String> modifiedPaths = new HashSet<>();
+ for (FileHeader fh : p.getFiles()) {
+ ChangeType type = fh.getChangeType();
+ File src = getFile(fh.getOldPath());
+ File dest = getFile(fh.getNewPath());
+ if (!verifyExistence(fh, src, dest, result)) {
+ continue;
+ }
+ switch (type) {
+ case ADD: {
+ if (dest != null) {
+ directoryCache.safeCreateParentDirectory(fh.getNewPath(),
+ dest.getParentFile(), false);
+ FileUtils.createNewFile(dest);
+ }
+ apply(fh.getNewPath(), dirCache, dirCacheBuilder, dest, fh, result);
+ }
+ break;
+ case MODIFY: {
+ apply(fh.getOldPath(), dirCache, dirCacheBuilder, src, fh, result);
+ break;
+ }
+ case DELETE: {
+ if (!inCore()) {
+ if (!src.delete())
+ throw new IOException(MessageFormat.format(
+ JGitText.get().cannotDeleteFile, src));
+ }
+ break;
+ }
+ case RENAME: {
+ if (!inCore()) {
+ /*
+ * this is odd: we rename the file on the FS, but
+ * apply() will write a fresh stream anyway, which will
+ * overwrite if there were hunks in the patch.
+ */
+ directoryCache.safeCreateParentDirectory(fh.getNewPath(),
+ dest.getParentFile(), false);
+ FileUtils.rename(src, dest,
+ StandardCopyOption.ATOMIC_MOVE);
+ }
+ String pathWithOriginalContent = inCore() ?
+ fh.getOldPath() : fh.getNewPath();
+ apply(pathWithOriginalContent, dirCache, dirCacheBuilder, dest, fh, result);
+ break;
+ }
+ case COPY: {
+ if (!inCore()) {
+ directoryCache.safeCreateParentDirectory(fh.getNewPath(),
+ dest.getParentFile(), false);
+ Files.copy(src.toPath(), dest.toPath());
+ }
+ apply(fh.getOldPath(), dirCache, dirCacheBuilder, dest, fh, result);
+ break;
+ }
+ }
+ if (fh.getChangeType() != DELETE)
+ modifiedPaths.add(fh.getNewPath());
+ if (fh.getChangeType() != COPY
+ && fh.getChangeType() != ADD)
+ modifiedPaths.add(fh.getOldPath());
+ }
+
+ // We processed the patch. Now add things that weren't changed.
+ for (int i = 0; i < dirCache.getEntryCount(); i++) {
+ DirCacheEntry dce = dirCache.getEntry(i);
+ if (!modifiedPaths.contains(dce.getPathString())
+ || dce.getStage() != DirCacheEntry.STAGE_0)
+ dirCacheBuilder.add(dce);
+ }
+
+ if (inCore())
+ dirCacheBuilder.finish();
+ else if (!dirCacheBuilder.commit()) {
+ throw new IndexWriteException();
+ }
+
+ result.treeId = dirCache.writeTree(inserter);
+ result.paths = modifiedPaths.stream().sorted()
+ .collect(Collectors.toList());
return result;
}
@@ -302,36 +354,81 @@
/* returns null if the path is not found. */
@Nullable
private TreeWalk getTreeWalkForFile(String path, DirCache cache)
- throws PatchApplyException {
- try {
- if (inCore()) {
- // Only this branch may return null.
- // TODO: it would be nice if we could return a TreeWalk at EOF
- // iso. null.
- return TreeWalk.forPath(repo, path, beforeTree);
- }
- TreeWalk walk = new TreeWalk(repo);
-
- // Use a TreeWalk with a DirCacheIterator to pick up the correct
- // clean/smudge filters.
- int cacheTreeIdx = walk.addTree(new DirCacheIterator(cache));
- FileTreeIterator files = new FileTreeIterator(repo);
- if (FILE_TREE_INDEX != walk.addTree(files))
- throw new IllegalStateException();
-
- walk.setFilter(AndTreeFilter.create(
- PathFilterGroup.createFromStrings(path),
- new NotIgnoredFilter(FILE_TREE_INDEX)));
- walk.setOperationType(OperationType.CHECKIN_OP);
- walk.setRecursive(true);
- files.setDirCacheIterator(walk, cacheTreeIdx);
- return walk;
- } catch (IOException e) {
- throw new PatchApplyException(MessageFormat.format(
- JGitText.get().patchApplyException, e.getMessage()), e);
+ throws IOException {
+ if (inCore()) {
+ // Only this branch may return null.
+ // TODO: it would be nice if we could return a TreeWalk at EOF
+ // iso. null.
+ return TreeWalk.forPath(repo, path, beforeTree);
}
+ TreeWalk walk = new TreeWalk(repo);
+
+ // Use a TreeWalk with a DirCacheIterator to pick up the correct
+ // clean/smudge filters.
+ int cacheTreeIdx = walk.addTree(new DirCacheIterator(cache));
+ FileTreeIterator files = new FileTreeIterator(repo);
+ if (FILE_TREE_INDEX != walk.addTree(files))
+ throw new IllegalStateException();
+
+ walk.setFilter(AndTreeFilter.create(
+ PathFilterGroup.createFromStrings(path),
+ new NotIgnoredFilter(FILE_TREE_INDEX)));
+ walk.setOperationType(OperationType.CHECKIN_OP);
+ walk.setRecursive(true);
+ files.setDirCacheIterator(walk, cacheTreeIdx);
+ return walk;
}
+ private boolean fileExists(String path, @Nullable File f)
+ throws IOException {
+ if (f != null) {
+ return f.exists();
+ }
+ return inCore() && TreeWalk.forPath(repo, path, beforeTree) != null;
+ }
+
+ private boolean verifyExistence(FileHeader fh, File src, File dest,
+ Result result) throws IOException {
+ boolean isValid = true;
+ boolean srcShouldExist = List.of(MODIFY, DELETE, RENAME, COPY)
+ .contains(fh.getChangeType());
+ boolean destShouldNotExist = List.of(ADD, RENAME, COPY)
+ .contains(fh.getChangeType());
+ if (srcShouldExist != fileExists(fh.getOldPath(), src)) {
+ result.addError(MessageFormat.format(srcShouldExist
+ ? JGitText.get().applyPatchWithSourceOnNonExistentSource
+ : JGitText
+ .get().applyPatchWithoutSourceOnAlreadyExistingSource,
+ fh.getPatchType()), fh.getOldPath(), null);
+ isValid = false;
+ }
+ if (destShouldNotExist && fileExists(fh.getNewPath(), dest)) {
+ result.addError(MessageFormat.format(JGitText
+ .get().applyPatchWithCreationOverAlreadyExistingDestination,
+ fh.getPatchType()), fh.getNewPath(), null);
+ isValid = false;
+ }
+ if (srcShouldExist && !validGitPath(fh.getOldPath())) {
+ result.addError(JGitText.get().applyPatchSourceInvalid,
+ fh.getOldPath(), null);
+ isValid = false;
+ }
+ if (destShouldNotExist && !validGitPath(fh.getNewPath())) {
+ result.addError(JGitText.get().applyPatchDestInvalid,
+ fh.getNewPath(), null);
+ isValid = false;
+ }
+ return isValid;
+ }
+
+ private boolean validGitPath(String path) {
+ try {
+ SystemReader.getInstance().checkPath(path);
+ return true;
+ } catch (CorruptObjectException e) {
+ return false;
+ }
+ }
private static final int FILE_TREE_INDEX = 1;
/**
@@ -348,135 +445,135 @@
* The file to update with new contents. Null for inCore usage.
* @param fh
* The patch header.
- * @throws PatchApplyException
+ * @param result
+ * The patch application result.
+ * @throws IOException
*/
private void apply(String pathWithOriginalContent, DirCache dirCache,
- DirCacheBuilder dirCacheBuilder, @Nullable File f, FileHeader fh)
- throws PatchApplyException {
+ DirCacheBuilder dirCacheBuilder, @Nullable File f, FileHeader fh, Result result)
+ throws IOException {
if (PatchType.BINARY.equals(fh.getPatchType())) {
// This patch type just says "something changed". We can't do
// anything with that.
// Maybe this should return an error code, though?
return;
}
- try {
- TreeWalk walk = getTreeWalkForFile(pathWithOriginalContent, dirCache);
- boolean loadedFromTreeWalk = false;
- // CR-LF handling is determined by whether the file or the patch
- // have CR-LF line endings.
- boolean convertCrLf = inCore() || needsCrLfConversion(f, fh);
- EolStreamType streamType = convertCrLf ? EolStreamType.TEXT_CRLF
+ TreeWalk walk = getTreeWalkForFile(pathWithOriginalContent, dirCache);
+ boolean loadedFromTreeWalk = false;
+ // CR-LF handling is determined by whether the file or the patch
+ // have CR-LF line endings.
+ boolean convertCrLf = inCore() || needsCrLfConversion(f, fh);
+ EolStreamType streamType = convertCrLf ? EolStreamType.TEXT_CRLF
+ : EolStreamType.DIRECT;
+ String smudgeFilterCommand = null;
+ StreamSupplier fileStreamSupplier = null;
+ ObjectId fileId = ObjectId.zeroId();
+ if (walk == null) {
+ // For new files with inCore()==true, TreeWalk.forPath can be
+ // null. Stay with defaults.
+ } else if (inCore()) {
+ fileId = walk.getObjectId(0);
+ ObjectLoader loader = LfsFactory.getInstance()
+ .applySmudgeFilter(repo, reader.open(fileId, OBJ_BLOB),
+ null);
+ byte[] data = loader.getBytes();
+ convertCrLf = RawText.isCrLfText(data);
+ fileStreamSupplier = () -> new ByteArrayInputStream(data);
+ streamType = convertCrLf ? EolStreamType.TEXT_CRLF
: EolStreamType.DIRECT;
- String smudgeFilterCommand = null;
- StreamSupplier fileStreamSupplier = null;
- ObjectId fileId = ObjectId.zeroId();
- if (walk == null) {
- // For new files with inCore()==true, TreeWalk.forPath can be
- // null. Stay with defaults.
- } else if (inCore()) {
- fileId = walk.getObjectId(0);
- ObjectLoader loader = LfsFactory.getInstance()
- .applySmudgeFilter(repo, reader.open(fileId, OBJ_BLOB),
- null);
- byte[] data = loader.getBytes();
- convertCrLf = RawText.isCrLfText(data);
- fileStreamSupplier = () -> new ByteArrayInputStream(data);
- streamType = convertCrLf ? EolStreamType.TEXT_CRLF
- : EolStreamType.DIRECT;
- smudgeFilterCommand = walk
- .getFilterCommand(Constants.ATTR_FILTER_TYPE_SMUDGE);
+ smudgeFilterCommand = walk
+ .getFilterCommand(Constants.ATTR_FILTER_TYPE_SMUDGE);
+ loadedFromTreeWalk = true;
+ } else if (walk.next()) {
+ // If the file on disk has no newline characters,
+ // convertCrLf will be false. In that case we want to honor the
+ // normal git settings.
+ streamType = convertCrLf ? EolStreamType.TEXT_CRLF
+ : walk.getEolStreamType(OperationType.CHECKOUT_OP);
+ smudgeFilterCommand = walk
+ .getFilterCommand(Constants.ATTR_FILTER_TYPE_SMUDGE);
+ FileTreeIterator file = walk.getTree(FILE_TREE_INDEX,
+ FileTreeIterator.class);
+ if (file != null) {
+ fileId = file.getEntryObjectId();
+ fileStreamSupplier = file::openEntryStream;
loadedFromTreeWalk = true;
- } else if (walk.next()) {
- // If the file on disk has no newline characters,
- // convertCrLf will be false. In that case we want to honor the
- // normal git settings.
- streamType = convertCrLf ? EolStreamType.TEXT_CRLF
- : walk.getEolStreamType(OperationType.CHECKOUT_OP);
- smudgeFilterCommand = walk
- .getFilterCommand(Constants.ATTR_FILTER_TYPE_SMUDGE);
- FileTreeIterator file = walk.getTree(FILE_TREE_INDEX,
- FileTreeIterator.class);
- if (file != null) {
- fileId = file.getEntryObjectId();
- fileStreamSupplier = file::openEntryStream;
- loadedFromTreeWalk = true;
- } else {
- throw new PatchApplyException(MessageFormat.format(
- JGitText.get().cannotReadFile,
- pathWithOriginalContent));
- }
- }
-
- if (fileStreamSupplier == null)
- fileStreamSupplier = inCore() ? InputStream::nullInputStream
- : () -> new FileInputStream(f);
-
- FileMode fileMode = fh.getNewMode() != null ? fh.getNewMode()
- : FileMode.REGULAR_FILE;
- ContentStreamLoader resultStreamLoader;
- if (PatchType.GIT_BINARY.equals(fh.getPatchType())) {
- // binary patches are processed in a streaming fashion. Some
- // binary patches do random access on the input data, so we can't
- // overwrite the file while we're streaming.
- resultStreamLoader = applyBinary(pathWithOriginalContent, f, fh,
- fileStreamSupplier, fileId);
} else {
- String filterCommand = walk != null
- ? walk.getFilterCommand(
- Constants.ATTR_FILTER_TYPE_CLEAN)
- : null;
- RawText raw = getRawText(f, fileStreamSupplier, fileId,
- pathWithOriginalContent, loadedFromTreeWalk, filterCommand,
- convertCrLf);
- resultStreamLoader = applyText(raw, fh);
- }
-
- if (f != null) {
- // Write to a buffer and copy to the file only if everything was
- // fine.
- TemporaryBuffer buffer = new TemporaryBuffer.LocalFile(null);
- try {
- CheckoutMetadata metadata = new CheckoutMetadata(streamType,
- smudgeFilterCommand);
-
- try (TemporaryBuffer buf = buffer) {
- DirCacheCheckout.getContent(repo, pathWithOriginalContent,
- metadata, resultStreamLoader.supplier, workingTreeOptions,
- buf);
- }
- try (InputStream bufIn = buffer.openInputStream()) {
- Files.copy(bufIn, f.toPath(),
- StandardCopyOption.REPLACE_EXISTING);
- }
- } finally {
- buffer.destroy();
- }
-
- repo.getFS().setExecute(f,
- fileMode == FileMode.EXECUTABLE_FILE);
- }
-
- Instant lastModified = f == null ? null
- : repo.getFS().lastModifiedInstant(f);
- Attributes attributes = walk != null ? walk.getAttributes()
- : new Attributes();
-
- DirCacheEntry dce = insertToIndex(
- resultStreamLoader.supplier.load(),
- fh.getNewPath().getBytes(StandardCharsets.UTF_8), fileMode,
- lastModified, resultStreamLoader.length,
- attributes.get(Constants.ATTR_FILTER));
- dirCacheBuilder.add(dce);
- if (PatchType.GIT_BINARY.equals(fh.getPatchType())
- && fh.getNewId() != null && fh.getNewId().isComplete()
- && !fh.getNewId().toObjectId().equals(dce.getObjectId())) {
- throw new PatchApplyException(MessageFormat.format(
- JGitText.get().applyBinaryResultOidWrong,
+ throw new IOException(MessageFormat.format(
+ JGitText.get().cannotReadFile,
pathWithOriginalContent));
}
- } catch (IOException | UnsupportedOperationException e) {
- throw new PatchApplyException(MessageFormat.format(
- JGitText.get().patchApplyException, e.getMessage()), e);
+ }
+
+ if (fileStreamSupplier == null)
+ fileStreamSupplier = inCore() ? InputStream::nullInputStream
+ : () -> new FileInputStream(f);
+
+ FileMode fileMode = fh.getNewMode() != null ? fh.getNewMode()
+ : FileMode.REGULAR_FILE;
+ ContentStreamLoader resultStreamLoader;
+ if (PatchType.GIT_BINARY.equals(fh.getPatchType())) {
+ // binary patches are processed in a streaming fashion. Some
+ // binary patches do random access on the input data, so we can't
+ // overwrite the file while we're streaming.
+ resultStreamLoader = applyBinary(pathWithOriginalContent, f, fh,
+ fileStreamSupplier, fileId, result);
+ } else {
+ String filterCommand = walk != null
+ ? walk.getFilterCommand(
+ Constants.ATTR_FILTER_TYPE_CLEAN)
+ : null;
+ RawText raw = getRawText(f, fileStreamSupplier, fileId,
+ pathWithOriginalContent, loadedFromTreeWalk, filterCommand,
+ convertCrLf);
+ resultStreamLoader = applyText(raw, fh, result);
+ }
+ if (resultStreamLoader == null || !result.getErrors().isEmpty()) {
+ return;
+ }
+
+ if (f != null) {
+ // Write to a buffer and copy to the file only if everything was
+ // fine.
+ TemporaryBuffer buffer = new TemporaryBuffer.LocalFile(null);
+ try {
+ CheckoutMetadata metadata = new CheckoutMetadata(streamType,
+ smudgeFilterCommand);
+
+ try (TemporaryBuffer buf = buffer) {
+ DirCacheCheckout.getContent(repo, pathWithOriginalContent,
+ metadata, resultStreamLoader.supplier, workingTreeOptions,
+ buf);
+ }
+ try (InputStream bufIn = buffer.openInputStream()) {
+ Files.copy(bufIn, f.toPath(),
+ StandardCopyOption.REPLACE_EXISTING);
+ }
+ } finally {
+ buffer.destroy();
+ }
+
+ repo.getFS().setExecute(f,
+ fileMode == FileMode.EXECUTABLE_FILE);
+ }
+
+ Instant lastModified = f == null ? null
+ : repo.getFS().lastModifiedInstant(f);
+ Attributes attributes = walk != null ? walk.getAttributes()
+ : new Attributes();
+
+ DirCacheEntry dce = insertToIndex(
+ resultStreamLoader.supplier.load(),
+ fh.getNewPath().getBytes(StandardCharsets.UTF_8), fileMode,
+ lastModified, resultStreamLoader.length,
+ attributes.get(Constants.ATTR_FILTER));
+ dirCacheBuilder.add(dce);
+ if (PatchType.GIT_BINARY.equals(fh.getPatchType())
+ && fh.getNewId() != null && fh.getNewId().isComplete()
+ && !fh.getNewId().toObjectId().equals(dce.getObjectId())) {
+ result.addError(MessageFormat.format(
+ JGitText.get().applyBinaryResultOidWrong,
+ pathWithOriginalContent), fh.getOldPath(), null);
}
}
@@ -640,12 +737,12 @@
}
}
- private void checkOid(ObjectId baseId, ObjectId id, ChangeType type, File f,
- String path) throws PatchApplyException, IOException {
+ private boolean checkOid(ObjectId baseId, ObjectId id, ChangeType type, File f,
+ String path, Result result) throws IOException {
boolean hashOk = false;
if (id != null) {
hashOk = baseId.equals(id);
- if (!hashOk && ChangeType.ADD.equals(type)
+ if (!hashOk && ADD.equals(type)
&& ObjectId.zeroId().equals(baseId)) {
// We create a new file. The OID of an empty file is not the
// zero id!
@@ -660,9 +757,10 @@
}
}
if (!hashOk) {
- throw new PatchApplyException(MessageFormat
- .format(JGitText.get().applyBinaryBaseOidWrong, path));
+ result.addError(MessageFormat
+ .format(JGitText.get().applyBinaryBaseOidWrong, path), path, null);
}
+ return hashOk;
}
private boolean inCore() {
@@ -700,18 +798,19 @@
* a supplier for the contents of the old file
* @param id
* SHA1 for the old content
- * @return a loader for the new content.
- * @throws PatchApplyException
+ * @param result
+ * The patch application result
+ * @return a loader for the new content, or null if invalid.
* @throws IOException
* @throws UnsupportedOperationException
*/
- private ContentStreamLoader applyBinary(String path, File f, FileHeader fh,
- StreamSupplier inputSupplier, ObjectId id)
- throws PatchApplyException, IOException,
- UnsupportedOperationException {
+ private @Nullable ContentStreamLoader applyBinary(String path, File f, FileHeader fh,
+ StreamSupplier inputSupplier, ObjectId id, Result result)
+ throws UnsupportedOperationException, IOException {
if (!fh.getOldId().isComplete() || !fh.getNewId().isComplete()) {
- throw new PatchApplyException(MessageFormat
- .format(JGitText.get().applyBinaryOidTooShort, path));
+ result.addError(MessageFormat
+ .format(JGitText.get().applyBinaryOidTooShort, path), path, null);
+ return null;
}
BinaryHunk hunk = fh.getForwardBinaryHunk();
// A BinaryHunk has the start at the "literal" or "delta" token. Data
@@ -723,8 +822,10 @@
case LITERAL_DEFLATED: {
// This just overwrites the file. We need to check the hash of
// the base.
- checkOid(fh.getOldId().toObjectId(), id, fh.getChangeType(), f,
- path);
+ if (!checkOid(fh.getOldId().toObjectId(), id, fh.getChangeType(), f,
+ path, result)) {
+ return null;
+ }
StreamSupplier supp = () -> new InflaterInputStream(
new BinaryHunkInputStream(new ByteArrayInputStream(
hunk.getBuffer(), start, length)));
@@ -756,8 +857,8 @@
}
}
- private ContentStreamLoader applyText(RawText rt, FileHeader fh)
- throws IOException, PatchApplyException {
+ private @Nullable ContentStreamLoader applyText(RawText rt, FileHeader fh, Result result)
+ throws IOException {
List<ByteBuffer> oldLines = new ArrayList<>(rt.size());
for (int i = 0; i < rt.size(); i++) {
oldLines.add(rt.getRawString(i));
@@ -771,8 +872,8 @@
for (HunkHeader hh : fh.getHunks()) {
// We assume hunks to be ordered
if (hh.getNewStartLine() <= lastHunkNewLine) {
- throw new PatchApplyException(MessageFormat
- .format(JGitText.get().patchApplyException, hh));
+ result.addError(JGitText.get().applyTextPatchUnorderedHunks, fh.getOldPath(), hh);
+ return null;
}
lastHunkNewLine = hh.getNewStartLine();
@@ -793,8 +894,9 @@
newLines.clear();
break;
}
- throw new PatchApplyException(MessageFormat
- .format(JGitText.get().patchApplyException, hh));
+ result.addError(JGitText.get().applyTextPatchSingleClearingHunk,
+ fh.getOldPath(), hh);
+ return null;
}
// Hunk lines as reported by the hunk may be off, so don't rely on
// them.
@@ -805,8 +907,9 @@
lineNumberShift = 0;
}
if (applyAt < afterLastHunk) {
- throw new PatchApplyException(MessageFormat
- .format(JGitText.get().patchApplyException, hh));
+ result.addError(JGitText.get().applyTextPatchUnorderedHunkApplications,
+ fh.getOldPath(), hh);
+ return null;
}
boolean applies = false;
int oldLinesInHunk = hh.getLinesContext()
@@ -844,8 +947,9 @@
}
}
if (!applies) {
- throw new PatchApplyException(MessageFormat
- .format(JGitText.get().patchApplyException, hh));
+ result.addError(JGitText.get().applyTextPatchCannotApplyHunk,
+ fh.getOldPath(), hh);
+ return null;
}
// Hunk applies at applyAt. Apply it, and update afterLastHunk and
// lineNumberShift
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 9da7105..3737c6b 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java
@@ -550,6 +550,12 @@
reset(~freeFlags & APP_FLAGS);
filter = RevFilter.ALL;
treeFilter = TreeFilter.ALL;
+
+ // Make sure commit is parsed from commit-graph
+ if ((needle.flags & PARSED) == 0) {
+ needle.parseHeaders(this);
+ }
+ int cutoff = needle.getGeneration();
for (Ref r : haystacks) {
if (monitor.isCancelled()) {
return result;
@@ -565,6 +571,10 @@
boolean commitFound = false;
RevCommit next;
while ((next = next()) != null) {
+ if (next.getGeneration() < cutoff) {
+ markUninteresting(next);
+ uninteresting.add(next);
+ }
if (References.isSameObject(next, needle)
|| (next.flags & TEMP_MARK) != 0) {
result.add(r);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackConfig.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackConfig.java
index a8180d1..be87e07 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackConfig.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackConfig.java
@@ -27,7 +27,11 @@
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_DELTA_COMPRESSION;
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_DEPTH;
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_INDEXVERSION;
+import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_MIN_BYTES_OBJ_SIZE_INDEX;
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_MIN_SIZE_PREVENT_RACYPACK;
+import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_PACK_KEPT_OBJECTS;
+import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_PRESERVE_OLD_PACKS;
+import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_PRUNE_PRESERVED;
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_REUSE_DELTAS;
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_REUSE_OBJECTS;
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_SEARCH_FOR_REUSE_TIMEOUT;
@@ -36,11 +40,8 @@
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_WAIT_PREVENT_RACYPACK;
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_WINDOW;
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_WINDOW_MEMORY;
-import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_MIN_BYTES_OBJ_SIZE_INDEX;
+import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_WRITE_REVERSE_INDEX;
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_PACK_SECTION;
-import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_PACK_KEPT_OBJECTS;
-import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_PRESERVE_OLD_PACKS;
-import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_PRUNE_PRESERVED;
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_REPACK_SECTION;
import java.time.Duration;
@@ -164,6 +165,14 @@
public static final int DEFAULT_INDEX_VERSION = 2;
/**
+ * Default value of the write reverse index option: {@value}
+ *
+ * @see #setWriteReverseIndex(boolean)
+ * @since 6.6
+ */
+ public static final boolean DEFAULT_WRITE_REVERSE_INDEX = false;
+
+ /**
* Default value of the build bitmaps option: {@value}
*
* @see #setBuildBitmaps(boolean)
@@ -304,6 +313,8 @@
private int indexVersion = DEFAULT_INDEX_VERSION;
+ private boolean writeReverseIndex = DEFAULT_WRITE_REVERSE_INDEX;
+
private boolean buildBitmaps = DEFAULT_BUILD_BITMAPS;
private boolean packKeptObjects = DEFAULT_PACK_KEPT_OBJECTS;
@@ -387,6 +398,7 @@
this.threads = cfg.threads;
this.executor = cfg.executor;
this.indexVersion = cfg.indexVersion;
+ this.writeReverseIndex = cfg.writeReverseIndex;
this.buildBitmaps = cfg.buildBitmaps;
this.packKeptObjects = cfg.packKeptObjects;
this.bitmapContiguousCommitCount = cfg.bitmapContiguousCommitCount;
@@ -989,6 +1001,31 @@
}
/**
+ * True if the writer should write reverse index files.
+ *
+ * Default setting: {@value #DEFAULT_WRITE_REVERSE_INDEX}
+ *
+ * @return whether the writer should write reverse index files
+ * @since 6.6
+ */
+ public boolean isWriteReverseIndex() {
+ return writeReverseIndex;
+ }
+
+ /**
+ * Set whether the writer will write reverse index files.
+ *
+ * Default setting: {@value #DEFAULT_WRITE_REVERSE_INDEX}
+ *
+ * @param writeReverseIndex
+ * whether the writer should write reverse index files
+ * @since 6.6
+ */
+ public void setWriteReverseIndex(boolean writeReverseIndex) {
+ this.writeReverseIndex = writeReverseIndex;
+ }
+
+ /**
* True if writer is allowed to build bitmaps for indexes.
*
* Default setting: {@value #DEFAULT_BUILD_BITMAPS}
@@ -1329,6 +1366,8 @@
setSinglePack(rc.getBoolean(CONFIG_PACK_SECTION,
CONFIG_KEY_SINGLE_PACK,
getSinglePack()));
+ setWriteReverseIndex(rc.getBoolean(CONFIG_PACK_SECTION,
+ CONFIG_KEY_WRITE_REVERSE_INDEX, isWriteReverseIndex()));
boolean buildBitmapsFromConfig = rc.getBoolean(CONFIG_PACK_SECTION,
CONFIG_KEY_BUILD_BITMAPS, isBuildBitmaps());
setBuildBitmaps(buildBitmapsFromConfig);
@@ -1394,6 +1433,7 @@
b.append(", reuseDeltas=").append(isReuseDeltas()); //$NON-NLS-1$
b.append(", reuseObjects=").append(isReuseObjects()); //$NON-NLS-1$
b.append(", deltaCompress=").append(isDeltaCompress()); //$NON-NLS-1$
+ b.append(", writeReverseIndex=").append(isWriteReverseIndex()); //$NON-NLS-1$
b.append(", buildBitmaps=").append(isBuildBitmaps()); //$NON-NLS-1$
b.append(", bitmapContiguousCommitCount=") //$NON-NLS-1$
.append(getBitmapContiguousCommitCount());
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/AmazonS3.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/AmazonS3.java
index 4fec5da..b873925 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/AmazonS3.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/AmazonS3.java
@@ -171,6 +171,9 @@
/** S3 Bucket Domain. */
private final String domain;
+ /** S3 Protocol, "https" or "http"; defaults to "http". */
+ private final String protocol;
+
/** S3 Region. */
private final String region;
@@ -183,6 +186,7 @@
String CRYPTO_ALG = "crypto.algorithm"; //$NON-NLS-1$
String CRYPTO_VER = "crypto.version"; //$NON-NLS-1$
String ACL = "acl"; //$NON-NLS-1$
+ String PROTOCOL = "protocol"; //$NON-NLS-1$
String DOMAIN = "domain"; //$NON-NLS-1$
String REGION = "region"; //$NON-NLS-1$
String HTTP_RETRY = "httpclient.retry-max"; //$NON-NLS-1$
@@ -246,6 +250,8 @@
awsApiSignatureVersion));
}
+ protocol = props.getProperty(Keys.PROTOCOL, "http"); //$NON-NLS-1$
+
domain = props.getProperty(Keys.DOMAIN, "s3.amazonaws.com"); //$NON-NLS-1$
publicKey = props.getProperty(Keys.ACCESS_KEY);
@@ -590,7 +596,8 @@
final String key, final Map<String, String> args)
throws IOException {
final StringBuilder urlstr = new StringBuilder();
- urlstr.append("http://"); //$NON-NLS-1$
+ urlstr.append(protocol);
+ urlstr.append("://"); //$NON-NLS-1$
urlstr.append(bucket);
urlstr.append('.');
urlstr.append(domain);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackFetchConnection.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackFetchConnection.java
index be36d2b..8909380 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackFetchConnection.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackFetchConnection.java
@@ -37,6 +37,7 @@
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
import org.eclipse.jgit.errors.PackProtocolException;
import org.eclipse.jgit.errors.RemoteRepositoryException;
@@ -215,6 +216,8 @@
private boolean allowOfsDelta;
+ private boolean useNegotiationTip;
+
private boolean noDone;
private boolean noProgress;
@@ -259,9 +262,11 @@
final FetchConfig cfg = getFetchConfig();
allowOfsDelta = cfg.allowOfsDelta;
maxHaves = cfg.maxHaves;
+ useNegotiationTip = cfg.useNegotiationTip;
} else {
allowOfsDelta = true;
maxHaves = Integer.MAX_VALUE;
+ useNegotiationTip = false;
}
includeTags = transport.getTagOpt() != TagOpt.NO_TAGS;
@@ -297,14 +302,35 @@
final int maxHaves;
+ final boolean useNegotiationTip;
+
FetchConfig(Config c) {
allowOfsDelta = c.getBoolean("repack", "usedeltabaseoffset", true); //$NON-NLS-1$ //$NON-NLS-2$
maxHaves = c.getInt("fetch", "maxhaves", Integer.MAX_VALUE); //$NON-NLS-1$ //$NON-NLS-2$
+ useNegotiationTip = c.getBoolean("fetch", "usenegotiationtip", //$NON-NLS-1$ //$NON-NLS-2$
+ false);
}
FetchConfig(boolean allowOfsDelta, int maxHaves) {
+ this(allowOfsDelta, maxHaves, false);
+ }
+
+ /**
+ * @param allowOfsDelta
+ * when true optimizes the pack size by deltafying base
+ * object
+ * @param maxHaves
+ * max haves to be sent per negotiation
+ * @param useNegotiationTip
+ * if true uses the wanted refs instead of all refs as source
+ * of the "have" list to send.
+ * @since 6.6
+ */
+ FetchConfig(boolean allowOfsDelta, int maxHaves,
+ boolean useNegotiationTip) {
this.allowOfsDelta = allowOfsDelta;
this.maxHaves = maxHaves;
+ this.useNegotiationTip = useNegotiationTip;
}
}
@@ -384,7 +410,7 @@
noProgress = monitor == NullProgressMonitor.INSTANCE;
markRefsAdvertised();
- markReachable(have, maxTimeWanted(want));
+ markReachable(want, have, maxTimeWanted(want));
if (TransferConfig.ProtocolVersion.V2
.equals(getProtocolVersion())) {
@@ -662,9 +688,17 @@
return maxTime;
}
- private void markReachable(Set<ObjectId> have, int maxTime)
+ private void markReachable(Collection<Ref> want, Set<ObjectId> have,
+ int maxTime)
throws IOException {
+ Set<String> wantRefs = want.stream().map(Ref::getName)
+ .collect(Collectors.toSet());
+
for (Ref r : local.getRefDatabase().getRefs()) {
+ if (useNegotiationTip && !wantRefs.contains(r.getName())) {
+ continue;
+ }
+
ObjectId id = r.getPeeledObjectId();
if (id == null)
id = r.getObjectId();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/FetchProcess.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/FetchProcess.java
index f02160e..c510194 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/FetchProcess.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/FetchProcess.java
@@ -111,7 +111,7 @@
for (PackLock lock : packLocks) {
lock.unlock();
}
- } catch (IOException e) {
+ } catch (Throwable e) {
if (e1 != null) {
e.addSuppressed(e1);
}
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 405373a..df034bd 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java
@@ -588,6 +588,17 @@
this.headers = headers;
}
+ /**
+ * Get additional headers on the HTTP connection
+ *
+ * @return unmodifiable map of additional name:values that are set as
+ * headers on the HTTP connection
+ * @since 6.6
+ */
+ public Map<String, String> getAdditionalHeaders() {
+ return Collections.unmodifiableMap(headers);
+ }
+
private NoRemoteRepositoryException createNotFoundException(URIish u,
URL url, String msg) {
String text;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java
index f245eae..3264f55 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java
@@ -1189,6 +1189,7 @@
PackStatistics.Accumulator accumulator = new PackStatistics.Accumulator();
Instant negotiateStart = Instant.now();
+ accumulator.advertised = advertised.size();
ProtocolV2Parser parser = new ProtocolV2Parser(transferConfig);
FetchV2Request req = parser.parseFetchRequest(pckIn);
@@ -1209,6 +1210,7 @@
// TODO(ifrade): Avoid mutating the parsed request.
req.getWantIds().addAll(wantedRefs.values());
wantIds = req.getWantIds();
+ accumulator.wants = wantIds.size();
boolean sectionSent = false;
boolean mayHaveShallow = req.getDepth() != 0
@@ -1766,7 +1768,6 @@
&& line.length() == PACKET_HAVE.length() + 40) {
peerHas.add(ObjectId
.fromString(line.substring(PACKET_HAVE.length())));
- accumulator.haves++;
} else if (line.equals(PACKET_DONE)) {
last = processHaveLines(peerHas, last, pckOut, accumulator, Option.NONE);
@@ -1798,6 +1799,7 @@
parseWants(accumulator);
if (peerHas.isEmpty())
return last;
+ accumulator.haves += peerHas.size();
sentReady = false;
int haveCnt = 0;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkFetchConnection.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkFetchConnection.java
index ed8f450..cc6c252 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkFetchConnection.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkFetchConnection.java
@@ -530,9 +530,10 @@
// are unusable and we shouldn't consult them again.
//
try {
- if (pack.tmpIdx != null)
+ if (pack.tmpIdx != null) {
FileUtils.delete(pack.tmpIdx);
- } catch (IOException e) {
+ }
+ } catch (Throwable e) {
if (e1 != null) {
e.addSuppressed(e1);
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java
index d8a61ec..b5d6610 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java
@@ -399,6 +399,35 @@
}
}
+ private long possiblyFilteredLength(Entry e, long len) throws IOException {
+ if (getCleanFilterCommand() == null && getEolStreamType(
+ OperationType.CHECKIN_OP) == EolStreamType.DIRECT) {
+ return len;
+ }
+
+ if (len <= MAXIMUM_FILE_SIZE_TO_READ_FULLY) {
+ InputStream is = e.openInputStream();
+ try {
+ ByteBuffer rawbuf = IO.readWholeStream(is, (int) len);
+ rawbuf = filterClean(rawbuf.array(), rawbuf.limit());
+ return rawbuf.limit();
+ } finally {
+ safeClose(is);
+ }
+ }
+
+ if (getCleanFilterCommand() == null && isBinary(e)) {
+ return len;
+ }
+
+ InputStream is = filterClean(e.openInputStream());
+ try {
+ return computeLength(is);
+ } finally {
+ safeClose(is);
+ }
+ }
+
private InputStream possiblyFilteredInputStream(final Entry e,
final InputStream is, final long len)
throws IOException {
@@ -417,11 +446,11 @@
}
if (getCleanFilterCommand() == null && isBinary(e)) {
- canonLen = len;
- return is;
- }
+ canonLen = len;
+ return is;
+ }
- final InputStream lenIs = filterClean(e.openInputStream());
+ final InputStream lenIs = filterClean(e.openInputStream());
try {
canonLen = computeLength(lenIs);
} finally {
@@ -595,15 +624,11 @@
public long getEntryContentLength() throws IOException {
if (canonLen == -1) {
long rawLen = getEntryLength();
- if (rawLen == 0)
+ if (rawLen == 0) {
canonLen = 0;
- InputStream is = current().openInputStream();
- try {
- // canonLen gets updated here
- possiblyFilteredInputStream(current(), is, current()
- .getLength());
- } finally {
- safeClose(is);
+ } else {
+ canonLen = possiblyFilteredLength(current(),
+ current().getLength());
}
}
return canonLen;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/IntList.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/IntList.java
index de8777f..635dd6a 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/IntList.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/IntList.java
@@ -37,6 +37,24 @@
}
/**
+ * Create a list initialized with the values of the given range.
+ *
+ * @param start
+ * the beginning of the range, inclusive
+ * @param end
+ * the end of the range, exclusive
+ * @return the list initialized with the given range
+ * @since 6.6
+ */
+ public static IntList filledWithRange(int start, int end) {
+ IntList list = new IntList(end - start);
+ for (int val = start; val < end; val++) {
+ list.add(val);
+ }
+ return list;
+ }
+
+ /**
* Get number of entries in this list.
*
* @return number of entries in this list.
@@ -126,6 +144,60 @@
add(val);
}
+ /**
+ * Sort the entries of the list in-place, according to the comparator.
+ *
+ * @param comparator
+ * provides the comparison values for sorting the entries
+ * @since 6.6
+ */
+ public void sort(IntComparator comparator) {
+ quickSort(0, count - 1, comparator);
+ }
+
+ /**
+ * Quick sort has average time complexity of O(n log n) and O(log n) space
+ * complexity (for recursion on the stack).
+ * <p>
+ * Implementation based on https://www.baeldung.com/java-quicksort.
+ *
+ * @param begin
+ * the index to begin partitioning at, inclusive
+ * @param end
+ * the index to end partitioning at, inclusive
+ * @param comparator
+ * provides the comparison values for sorting the entries
+ */
+ private void quickSort(int begin, int end, IntComparator comparator) {
+ if (begin < end) {
+ int partitionIndex = partition(begin, end, comparator);
+
+ quickSort(begin, partitionIndex - 1, comparator);
+ quickSort(partitionIndex + 1, end, comparator);
+ }
+ }
+
+ private int partition(int begin, int end, IntComparator comparator) {
+ int pivot = entries[end];
+ int writeSmallerIdx = (begin - 1);
+
+ for (int findSmallerIdx = begin; findSmallerIdx < end; findSmallerIdx++) {
+ if (comparator.compare(entries[findSmallerIdx], pivot) <= 0) {
+ writeSmallerIdx++;
+
+ int biggerVal = entries[writeSmallerIdx];
+ entries[writeSmallerIdx] = entries[findSmallerIdx];
+ entries[findSmallerIdx] = biggerVal;
+ }
+ }
+
+ int pivotIdx = writeSmallerIdx + 1;
+ entries[end] = entries[pivotIdx];
+ entries[pivotIdx] = pivot;
+
+ return pivotIdx;
+ }
+
private void grow() {
final int[] n = new int[(entries.length + 16) * 3 / 2];
System.arraycopy(entries, 0, n, 0, count);
@@ -145,4 +217,24 @@
r.append(']');
return r.toString();
}
+
+ /**
+ * A comparator of primitive ints.
+ *
+ * @since 6.6
+ */
+ public interface IntComparator {
+
+ /**
+ * Compares the two int arguments for order.
+ *
+ * @param first
+ * the first int to compare
+ * @param second
+ * the second int to compare
+ * @return a negative number if first < second, 0 if first == second, or
+ * a positive number if first > second
+ */
+ int compare(int first, int second);
+ }
}
diff --git a/pom.xml b/pom.xml
index 37c8613..873958c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,7 +18,7 @@
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit-parent</artifactId>
<packaging>pom</packaging>
- <version>6.5.1-SNAPSHOT</version>
+ <version>6.6.2-SNAPSHOT</version>
<name>JGit - Parent</name>
<url>${jgit-url}</url>
@@ -150,35 +150,36 @@
<java.version>11</java.version>
<bundle-manifest>${project.build.directory}/META-INF/MANIFEST.MF</bundle-manifest>
- <jgit-last-release-version>6.4.0.202211300538-r</jgit-last-release-version>
+ <jgit-last-release-version>6.5.0.202303070854-r</jgit-last-release-version>
<ant-version>1.10.12</ant-version>
- <apache-sshd-version>2.9.2</apache-sshd-version>
+ <apache-sshd-version>2.10.0</apache-sshd-version>
<jsch-version>0.1.55</jsch-version>
<jzlib-version>1.1.3</jzlib-version>
- <javaewah-version>1.1.13</javaewah-version>
+ <javaewah-version>1.2.3</javaewah-version>
<junit-version>4.13.2</junit-version>
<test-fork-count>1C</test-fork-count>
<args4j-version>2.33</args4j-version>
- <commons-compress-version>1.22</commons-compress-version>
+ <commons-compress-version>1.23.0</commons-compress-version>
<osgi-core-version>6.0.0</osgi-core-version>
- <servlet-api-version>4.0.0</servlet-api-version>
- <jetty-version>10.0.13</jetty-version>
- <japicmp-version>0.17.1</japicmp-version>
+ <servlet-api-version>4.0.4</servlet-api-version>
+ <jetty-version>10.0.15</jetty-version>
+ <japicmp-version>0.17.2</japicmp-version>
<httpclient-version>4.5.14</httpclient-version>
<httpcore-version>4.4.16</httpcore-version>
- <slf4j-version>1.7.30</slf4j-version>
- <maven-javadoc-plugin-version>3.4.1</maven-javadoc-plugin-version>
+ <slf4j-version>1.7.36</slf4j-version>
+ <maven-javadoc-plugin-version>3.5.0</maven-javadoc-plugin-version>
<gson-version>2.10.1</gson-version>
- <bouncycastle-version>1.72</bouncycastle-version>
- <spotbugs-maven-plugin-version>4.7.3.0</spotbugs-maven-plugin-version>
- <maven-project-info-reports-plugin-version>3.4.2</maven-project-info-reports-plugin-version>
+ <bouncycastle-version>1.73</bouncycastle-version>
+ <spotbugs-maven-plugin-version>4.7.3.4</spotbugs-maven-plugin-version>
+ <maven-project-info-reports-plugin-version>3.4.3</maven-project-info-reports-plugin-version>
<maven-jxr-plugin-version>3.3.0</maven-jxr-plugin-version>
- <maven-surefire-plugin-version>3.0.0-M8</maven-surefire-plugin-version>
+ <maven-surefire-plugin-version>3.0.0</maven-surefire-plugin-version>
<maven-surefire-report-plugin-version>${maven-surefire-plugin-version}</maven-surefire-report-plugin-version>
- <maven-compiler-plugin-version>3.10.1</maven-compiler-plugin-version>
- <plexus-compiler-version>2.12.1</plexus-compiler-version>
+ <maven-compiler-plugin-version>3.11.0</maven-compiler-plugin-version>
+ <plexus-compiler-version>2.13.0</plexus-compiler-version>
<hamcrest-version>2.2</hamcrest-version>
- <assertj-version>3.20.2</assertj-version>
+ <assertj-version>3.24.2</assertj-version>
+ <jna-version>5.13.0</jna-version>
<!-- Properties to enable jacoco code coverage analysis -->
<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
@@ -210,10 +211,6 @@
<id>repo.eclipse.org.dash-releases</id>
<url>https://repo.eclipse.org/content/repositories/dash-licenses-releases/</url>
</pluginRepository>
- <pluginRepository>
- <id>repo.eclipse.org.dash-snapshots</id>
- <url>https://repo.eclipse.org/content/repositories/dash-licenses-snapshots/</url>
- </pluginRepository>
</pluginRepositories>
<build>
@@ -282,7 +279,6 @@
<forkCount>${test-fork-count}</forkCount>
<reuseForks>true</reuseForks>
<argLine>@{argLine}</argLine>
- <rerunFailingTestsCount>3</rerunFailingTestsCount>
</configuration>
</plugin>
@@ -340,7 +336,7 @@
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
- <version>0.8.8</version>
+ <version>0.8.10</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -372,12 +368,12 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
- <version>3.0.0</version>
+ <version>3.1.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
- <version>3.1.0</version>
+ <version>3.1.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -387,17 +383,17 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
- <version>3.3.0</version>
+ <version>3.3.1</version>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
- <version>2.7.7</version>
+ <version>2.7.11</version>
</plugin>
<plugin>
<groupId>org.eclipse.dash</groupId>
<artifactId>license-tool-plugin</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>1.0.2</version>
</plugin>
</plugins>
</pluginManagement>
@@ -406,7 +402,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
- <version>3.1.0</version>
+ <version>3.3.0</version>
<executions>
<execution>
<id>enforce-maven</id>
@@ -694,8 +690,8 @@
</dependency>
<dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
<version>${servlet-api-version}</version>
</dependency>
@@ -789,6 +785,18 @@
<artifactId>assertj-core</artifactId>
<version>${assertj-version}</version>
</dependency>
+
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>${jna-version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna-platform</artifactId>
+ <version>${jna-version}</version>
+ </dependency>
</dependencies>
</dependencyManagement>
@@ -882,7 +890,7 @@
<dependency>
<groupId>org.eclipse.jdt</groupId>
<artifactId>ecj</artifactId>
- <version>3.31.0</version>
+ <version>3.33.0</version>
</dependency>
</dependencies>
</plugin>
diff --git a/tools/BUILD b/tools/BUILD
index 1e67108..dd081d9 100644
--- a/tools/BUILD
+++ b/tools/BUILD
@@ -68,7 +68,7 @@
"-Xep:LiteralClassName:ERROR",
"-Xep:MissingFail:ERROR",
"-Xep:MissingOverride:ERROR",
- "-Xep:MutableConstantField:ERROR",
+ "-Xep:MutableConstantField:WARN",
"-Xep:NarrowingCompoundAssignment:ERROR",
"-Xep:NonAtomicVolatileUpdate:ERROR",
"-Xep:NonOverridingEquals:ERROR",
diff --git a/tools/remote-bazelrc b/tools/remote-bazelrc
index 58f794e..0c558f8 100644
--- a/tools/remote-bazelrc
+++ b/tools/remote-bazelrc
@@ -30,8 +30,6 @@
# Set several flags related to specifying the platform, toolchain and java
# properties.
-build:remote --host_javabase=@rbe_jdk11//java:jdk
-build:remote --javabase=@rbe_jdk11//java:jdk
build:remote --crosstool_top=@rbe_jdk11//cc:toolchain
build:remote --extra_toolchains=@rbe_jdk11//config:cc-toolchain
build:remote --extra_execution_platforms=@rbe_jdk11//config:platform