]> source.dussan.org Git - jgit.git/log
jgit.git
16 months agoAdd missing @since tags for new API methods 40/203340/2
Matthias Sohn [Tue, 25 Jul 2023 20:07:02 +0000 (22:07 +0200)]
Add missing @since tags for new API methods

This was missed in d3b40e72acd3.

Change-Id: I6e90157c6be34ae6618e246b02cf77631c8e9732

16 months agoAdd missing package import needed to use MurmurHash3 39/203339/1
Matthias Sohn [Tue, 25 Jul 2023 20:06:27 +0000 (22:06 +0200)]
Add missing package import needed to use MurmurHash3

This was missed in 49beb5ae519e and broke the OSGi classpath.

Change-Id: I08a307e9e3aade4ed8a5b5e2cc5e5d03c57dfa56

16 months agoMerge "Identify a commit that generates a diffEntry on a rename Event."
Jonathan Tan [Tue, 25 Jul 2023 16:09:40 +0000 (12:09 -0400)]
Merge "Identify a commit that generates a diffEntry on a rename Event."

16 months agoIdentify a commit that generates a diffEntry on a rename Event. 57/203257/13
Ronald Bhuleskar [Wed, 19 Jul 2023 21:25:46 +0000 (14:25 -0700)]
Identify a commit that generates a diffEntry on a rename Event.

When using FollowFilter's rename callback, a callback is generated with the diff. The caller that is interested in the renames knows what the diff's are but have no idea what commit generated that diff.

This will allow FollowFilter's rename callback to track diffEntry for a given commit.

Change-Id: If1e63ccd19fdcb9c58c59137110fe24e0ce023d2

16 months agoMerge changes I60a92463,Ic3b68220
Jonathan Tan [Fri, 21 Jul 2023 18:05:38 +0000 (14:05 -0400)]
Merge changes I60a92463,Ic3b68220

* changes:
  PackReverseIndexV1: reverse index parsed from version 1 file
  ComputedPackReverseIndex: Clarify custom bucket sort algorithm

16 months agoPackReverseIndexV1: reverse index parsed from version 1 file 92/203192/3
Anna Papitto [Fri, 14 Jul 2023 19:19:27 +0000 (12:19 -0700)]
PackReverseIndexV1: reverse index parsed from version 1 file

The reverse index for a pack is used to quickly find an object's
position in the pack's forward index based on that object's pack offset.
It is currently computed from the forward index by sorting the index
entries by the corresponding pack offset. This computation uses
insertion sort, which has an average runtime of O(n^2).

Cgit persists a pack reverse index file
to avoid recomputing the reverse index ordering. Instead they write a
file with format
https://git-scm.com/docs/pack-format#_pack_rev_files_have_the_format
which can later be read and parsed into the in-memory reverse index
each time it is needed.

PackReverseIndexV1 parses a reverse index file with the official
version 1 format into an in-memory representation of the reverse index
which implements methods to find an object's forward index position
from its offset in logorithmic time.

Change-Id: I60a92463fbd6a8cc9c1c7451df1c14d0a21a0f64
Signed-off-by: Anna Papitto <annapapitto@google.com>
16 months agoComputedPackReverseIndex: Clarify custom bucket sort algorithm 90/203190/3
Anna Papitto [Fri, 14 Jul 2023 19:19:27 +0000 (12:19 -0700)]
ComputedPackReverseIndex: Clarify custom bucket sort algorithm

The ComputedPackReverseIndex uses a custom sorting algorithm, based on
bucket sort with insertion sort but with the data managed as a linked
list across two int arrays. This custom algorithm relies on the set of
values being sorted being exactly 0, ..., n-1; so that they can serve a
second purpose of being indexes into a second equally sized list.

This custom algorithm was introduced ~10 years ago in
https://eclipse.googlesource.com/jgit/jgit/+/6cc532a43cf28403cb623d3df8600a2542a40a43.
The original author is no longer an active contributor, so it is
valuable for the code to be readable, especially as there is currently
active work on reverse indexes.

Rename variables and add comments to clarify the algorithm and improve
readability. There are no functional changes to the algorithm.

Change-Id: Ic3b682203f20e06f9f865f81259e034230f9720a
Signed-off-by: Anna Papitto <annapapitto@google.com>
16 months agoCommitGraphWriter: add option for writing/using bloom filters 36/201936/18
Ronald Bhuleskar [Wed, 17 May 2023 23:29:14 +0000 (16:29 -0700)]
CommitGraphWriter: add option for writing/using bloom filters

Currently, bloom filters are written and used without any way to turn
them off. Add a per-repo config variable to control whether bloom
filters are written. As for reading, add a JGit option to control this.
(A JGit option is used instead of a per-repo config variable as there is
usually no reason not to use the bloom filters if they are present, but
a global control to disable them is useful if there turns out to be an
issue with the implementation of bloom filters.)

The config that controls reading is the same as C Git, but the config
for writing is not: C Git has no config to control writing, but whether
bloom filters are written depends on whether bloom filters are already
present and what arguments are passed to "git commit-graph write". See
the manpage of "git commit-graph" for more information.

Change-Id: I1b7b25340387673506252b9260b22bfe147bde58

16 months agoCommitGraphWriter: reuse changed path filters 54/201854/13
Jonathan Tan [Mon, 8 May 2023 20:51:28 +0000 (13:51 -0700)]
CommitGraphWriter: reuse changed path filters

Teach CommitGraphWriter to reuse changed path filters that have been
read from the commit graph file whenever possible.

Change-Id: I1acbfa1613ca7198386a49209028886af360ddb6
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
16 months agoRevWalk: use changed path filters 53/201853/13
Jonathan Tan [Tue, 2 May 2023 17:44:16 +0000 (10:44 -0700)]
RevWalk: use changed path filters

Teach RevWalk, TreeRevFilter, PathFilter, and FollowFilter to use
changed path filters, whenever available, to speed revision walks by
skipping commits that fail the changed path filter.

This work is based on earlier work by Kyle Zhao
(I441be984b609669cff77617ecfc838b080ce0816).

Change-Id: I7396f70241e571c63aabe337f6de1b8b9800f7ed
Signed-off-by: kylezhao <kylezhao@tencent.com>
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
16 months agoCommitGraphLoader: read changed-path filters 52/201852/13
Jonathan Tan [Mon, 24 Apr 2023 19:55:30 +0000 (12:55 -0700)]
CommitGraphLoader: read changed-path filters

As described in the parent commit, add support for reading the BIDX and
BDAT chunks of the commit graph file, as described in man gitformat-
commit-graph(5).

This work is based on earlier work by Kyle Zhao
(I160f6b022afaa842c331fb9a086974e49dced7b2).

Change-Id: I82e02e6a3a3b758e6bf9d7bbd2198f0ffe3a331b
Signed-off-by: kylezhao <kylezhao@tencent.com>
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
16 months agoCommitGraphWriter: write changed-path filters 51/201851/12
Jonathan Tan [Tue, 18 Apr 2023 22:20:02 +0000 (15:20 -0700)]
CommitGraphWriter: write changed-path filters

Add support for writing the BIDX and BDAT chunks of the commit graph
file, as described in man gitformat-commit-graph(5). The ability to read
such chunks will be added in a subsequent commit.

This work is based on earlier work by Kyle Zhao
(Ib863782af209f26381e3ca0a2c119b99e84b679c).

Change-Id: Ic18e6f0eeec7da1e1ff31751aabda5e6952dbe6e
Signed-off-by: kylezhao <kylezhao@tencent.com>
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
16 months agoMerge "ssh: PKCS#11 support"
Matthias Sohn [Mon, 17 Jul 2023 22:13:06 +0000 (18:13 -0400)]
Merge "ssh: PKCS#11 support"

16 months agossh: PKCS#11 support 78/203078/11
Thomas Wolf [Sun, 9 Jul 2023 18:06:37 +0000 (20:06 +0200)]
ssh: PKCS#11 support

Support PKCS#11 HSMs (like YubiKey PIV) for SSH authentication.

Use the SunPKCS11 provider as described at [1]. This provider
dynamically loads the library from the PKCS11Provider SSH configuration
and creates a Java KeyStore with that provider. A Java CallbackHandler
is needed to feed PIN prompts from the KeyStore into the JGit
CredentialsProvider framework. Because the JGit CredentialsProvider may
be specific to a SSH session but the PKCS11Provider may be used by
several sessions, the CallbackHandler needs to be configurable per
session.

PIN prompts respect the NumberOfPasswordPrompts SSH configuration. As
long as the library asks only for a PIN, we use the KeyPasswordProvider
to prompt for it. This gives automatic integration in Eclipse with the
Eclipse secure storage, so a user has even the option to store the PIN
there. (Eclipse will then ask for the secure storage master password on
first access, so the usefulness of this is debatable.)

By default the provider uses the first PKCS#11 token (slot list index
zero). This can be overridden by a non-standard PKCS11SlotListIndex
ssh configuration entry. (For OpenSSH interoperability, also set
"IgnoreUnknown PKCS11SlotListIndex" in the SSH config file then.)

Once loaded, the provider and its shared library and the keys
contained remain available until the application exits.

Manually tested using SoftHSM. See file manual_tests.txt. Kudos to
Christopher Lamb for additional manual testing with a real YubiKey,
also on Windows.[2]

[1] https://docs.oracle.com/en/java/javase/11/security/pkcs11-reference-guide1.html
[2] https://www.eclipse.org/forums/index.php/t/1113295/

Change-Id: I544c97e1e24d05e28a9f0e803fd4b9151a76ed11
Signed-off-by: Thomas Wolf <twolf@apache.org>
16 months agoGC: Remove handling of extra pack for RefTree 11/203211/2
Matthias Sohn [Sun, 16 Jul 2023 22:56:17 +0000 (00:56 +0200)]
GC: Remove handling of extra pack for RefTree

RefTree was packed in its own packfile, see
Icbb735be8fa91ccbf0708ca3a219b364e11a6b83.

RefTree was deleted in Ia3da7f2b82d9e365cec2ccf9397cbc47439cd150, since
it was experimental and never used productively. This change missed to
remove the extra pack handling for RefTree.

Change-Id: I8c0d0a66440c331c3d03d0e07d5629682af2a7a9

16 months agoRemove unnecessary @SuppressWarnings("serial") 10/203210/1
Matthias Sohn [Sun, 16 Jul 2023 13:14:19 +0000 (15:14 +0200)]
Remove unnecessary @SuppressWarnings("serial")

Change-Id: Ib07fd89541dbd4b5095d49b2696429cbacc5bb4c

16 months agoRemove unused API problem filters 09/203209/1
Matthias Sohn [Sun, 16 Jul 2023 13:13:05 +0000 (15:13 +0200)]
Remove unused API problem filters

Change-Id: Iea5fb0bf7b2c6a14d7d8b55558f6e78d3fd523f1

16 months agoRemove redundant specification of type arguments 68/203168/1
Matthias Sohn [Sun, 16 Jul 2023 13:11:17 +0000 (15:11 +0200)]
Remove redundant specification of type arguments

Change-Id: I8289e0a6ca9154d6411993d250176a35df7cb905

16 months agoDfsPackParser: Create object indices if config says so 93/191093/35
Ivan Frade [Wed, 15 Dec 2021 00:35:54 +0000 (16:35 -0800)]
DfsPackParser: Create object indices if config says so

The DfsInserter writes the pack and its indices in the flush() method,
but when the writing happens via DfsPackParser, it is the parser which
writes the pack and indices. When combined with a parser, flushing the
inserter is a noop.

Add the writing of the object size index to the packparser#parse
method, mirroring how the primary index is written.

Change-Id: I52c5db153fea7e4a8ecd8b3d5de7ad21f7f81a60

16 months agoPackParserTest: Extract pack-writing helper code to its own class 97/201397/13
Ivan Frade [Tue, 18 Apr 2023 22:28:33 +0000 (15:28 -0700)]
PackParserTest: Extract pack-writing helper code to its own class

PackParserTest has code to create a small pack in memory. We can use
it to test also the DfsPackParser.

Extract the helper functions to a new class (InMemoryPack).

Change-Id: I6dea4d6ea2cac2da8201702df92fd09a687e90a6

16 months agoDfsInserter: generate object size index if config says so 98/201198/19
Ivan Frade [Wed, 12 Apr 2023 22:05:22 +0000 (15:05 -0700)]
DfsInserter: generate object size index if config says so

DfsInserter receives objects and on flush() writes a pack and its
primary index.

Teach the DfsInserter to write also the object size index if the
config says so.

Change-Id: I89308312f8fd898d4c714a9b68ff948d3663800b

16 months agoDfsInserter: populate full size on object insertion 91/196491/29
Ivan Frade [Fri, 7 Oct 2022 21:21:48 +0000 (14:21 -0700)]
DfsInserter: populate full size on object insertion

We need the full size of the object to populate the object size index
later.

Save the size the PackedObjectInfo while adding objects to the
pack. Then we don't need to re-read it from the pack at indexing time.

Change-Id: I5bd7ad402df60b4637038def8ef7be2ab45faf87

16 months agoDFSGarbargeCollector: Write object size indices 94/191094/27
Ivan Frade [Wed, 29 Dec 2021 23:39:41 +0000 (15:39 -0800)]
DFSGarbargeCollector: Write object size indices

PackWriter knows how to add an object size index to the pack, but the
garbage collector is not using it yet.

Teach DfsGarbageCollector to write the object size index on
writePack(). Disable by default in the unreachable-garbage pack.

Callers control the content/presence of the index through the
PackConfig option (minBytesForObjSizeIndex) for all other packs, so
there is no need of a specific flag in DfsGarbageCollector.

Change-Id: I86f5f17310e6913381125bec4caab32dc45b7c9d

16 months agoDfsReader/PackFile: Implement isNotLargerThan using the obj size idx 92/191092/27
Ivan Frade [Thu, 30 Dec 2021 16:33:08 +0000 (08:33 -0800)]
DfsReader/PackFile: Implement isNotLargerThan using the obj size idx

isNotLargerThan() can avoid reading the size of a blob from disk using
the object size idx if available.

Load the object size index in the DfsPackfile following the same
pattern than the other indices. Override isNotLargerThan in DfsReader
to use the index when available.

Following CL introduces the writing of the object size index and the
tests cover this code.

Change-Id: I15c95b84c1424707c487a7d29c5c46b1a9d0ceba

16 months ago[releng] Use tycho 4.0.0 instead of 4.0.0-SNAPSHOT 10/203110/1
Thomas Wolf [Tue, 11 Jul 2023 16:23:40 +0000 (18:23 +0200)]
[releng] Use tycho 4.0.0 instead of 4.0.0-SNAPSHOT

Now that it is released there is no need anymore to use a snapshot
version.

Change-Id: Idd35c48022370abf18049ef4b6ddd6253613888e
Signed-off-by: Thomas Wolf <twolf@apache.org>
16 months agoUpdate mockito to 5.4.0 and bytebuddy to 1.14.5 71/202871/2
Matthias Sohn [Sat, 1 Jul 2023 06:55:42 +0000 (08:55 +0200)]
Update mockito to 5.4.0 and bytebuddy to 1.14.5

Change-Id: Ia9de3f9fb6f51ac55a7c551cab4ce199318c1114

16 months agoMerge branch 'stable-6.6' 70/202870/1
Matthias Sohn [Sat, 1 Jul 2023 06:53:59 +0000 (08:53 +0200)]
Merge branch 'stable-6.6'

* stable-6.6:
  Update Orbit to R20230531010532 for 2023-06
  Bazel: Fix remote build execution for Java 17
  Bump bazel vesion to 6.2.0

Change-Id: I107eb2cd1ce3cb7670e7418ffd74a7b94ab858a6

16 months agoFix S3Repository getSize to handle larger object sizes 59/202759/2
qin shulei [Wed, 28 Jun 2023 11:52:47 +0000 (19:52 +0800)]
Fix S3Repository getSize to handle larger object sizes

Update `getSize` method in `S3Repository` to handle larger object sizes.
The method previously used `Integer.parseInt`
to parse the `Content-Length` header of an HTTP response,

which limited the maximum object size to 2 GB.

Replaces `Integer.parseInt` with `Long.parseLong`,
allowing the method to handle object sizes larger than 2 GB.

- Use minio as local S3 service for gerrit lfs plugin
- The minio seems will return the Content-length

Change-Id: Ia3a5fd1a335643786714aff3fcc7d10a6b152058
Signed-off-by: qin shulei <qinsl0106@thundersoft.com>
16 months agoDfsPackFile: make #getReverseIdx public 52/202752/1
Anna Papitto [Tue, 27 Jun 2023 20:22:20 +0000 (13:22 -0700)]
DfsPackFile: make #getReverseIdx public

The DfsPackFile#getReverseIdx method, which wraps creating a
PackReverseIndex in caching, was package-private. This caused
implementations on top of DfsPackFile to directly instantiate a
PackReverseIndex in cases where it would benefit from caching.

Instead, make #getReverseIdx public so that the caching logic can be
reused by implementations where appropriate.

Change-Id: I4553e514a4ac320bfe2455c00023343ad97f9d15
Signed-off-by: Anna Papitto <annapapitto@google.com>
16 months agoAdd missing bazel dependency to benchmarks 35/202735/1
Matthias Sohn [Tue, 27 Jun 2023 12:38:53 +0000 (14:38 +0200)]
Add missing bazel dependency to benchmarks

Change-Id: I330cbdbe7fdd2e3523cfc555adb15b577e858083

16 months agoUpdate JMH to 1.36 34/202734/1
Matthias Sohn [Tue, 27 Jun 2023 12:38:18 +0000 (14:38 +0200)]
Update JMH to 1.36

Change-Id: Ie5cbbbae59fac9b0044808bd098d47f530126c67

16 months agoUpdate bouncycastle to 1.75 33/202733/1
Matthias Sohn [Tue, 27 Jun 2023 12:22:22 +0000 (14:22 +0200)]
Update bouncycastle to 1.75

Change-Id: I7538759005b9a4eb8f1ae9337ce0056500eb7227

16 months agoUpdate org.eclipse.jdt:ecj to 3.34.0 32/202732/1
Matthias Sohn [Tue, 27 Jun 2023 12:23:57 +0000 (14:23 +0200)]
Update org.eclipse.jdt:ecj to 3.34.0

Change-Id: I59715e1abfdefdf883290557806a9a1cbb34c3b3

16 months agoUpdate eclipse-jarsigner-plugin to 1.4.2 31/202731/1
Matthias Sohn [Tue, 27 Jun 2023 11:42:46 +0000 (13:42 +0200)]
Update eclipse-jarsigner-plugin to 1.4.2

Change-Id: I3f92a32ccf795ae8c6c4e1699d0040ac84d743c2

16 months agoUpdate maven-surefire-report-plugin to 3.0.0 30/202730/1
Matthias Sohn [Tue, 27 Jun 2023 11:10:36 +0000 (13:10 +0200)]
Update maven-surefire-report-plugin to 3.0.0

Change-Id: Id1f33c85045d280ac7238a9f1ba63a7c19f0e455

16 months agoUpdate maven-project-info-reports-plugin to 3.4.3 29/202729/1
Matthias Sohn [Tue, 27 Jun 2023 11:08:53 +0000 (13:08 +0200)]
Update maven-project-info-reports-plugin to 3.4.3

Change-Id: I1bd92105af3cc8eb2e6116677e50365702b58f5c

16 months agoUpdate maven-compiler-plugin to 3.11.0 28/202728/1
Matthias Sohn [Tue, 27 Jun 2023 11:07:33 +0000 (13:07 +0200)]
Update maven-compiler-plugin to 3.11.0

Change-Id: Ia63fd770ebb8b44dcb3e09721c890fc2b42cbcec

16 months agoUpdate maven-enforcer-plugin to 3.3.0 27/202727/1
Matthias Sohn [Tue, 27 Jun 2023 11:06:11 +0000 (13:06 +0200)]
Update maven-enforcer-plugin to 3.3.0

Change-Id: I9ad8bf71a492017ba3d71b527acd02ad22612fb9

16 months agoUpdate build-helper-maven-plugin to 3.4.0 26/202726/1
Matthias Sohn [Tue, 27 Jun 2023 08:54:05 +0000 (10:54 +0200)]
Update build-helper-maven-plugin to 3.4.0

Change-Id: I9b5e8a6b0baebd67d84f48d95b83c6c802829aea

16 months agoUpdate spring-boot-maven-plugin to 2.7.13 25/202725/1
Matthias Sohn [Tue, 27 Jun 2023 08:42:50 +0000 (10:42 +0200)]
Update spring-boot-maven-plugin to 2.7.13

Change-Id: I9d28540971a9c45f961ccfef1123a0a4ba3f88f2

16 months agoUpdate maven-source-plugin to 3.3.0 24/202724/1
Matthias Sohn [Tue, 27 Jun 2023 08:25:45 +0000 (10:25 +0200)]
Update maven-source-plugin to 3.3.0

Change-Id: I4735538aeeb92a01009aad1ca837cb636dcd4b93

17 months agoPackReverseIndex: separate out the computed implementation 88/197588/42
Anna Papitto [Tue, 20 Jun 2023 22:44:30 +0000 (15:44 -0700)]
PackReverseIndex: separate out the computed implementation

PackReverseIndex is a concrete class whose implementation is computed
from a pack's forward index. Callers which have a reverse index file may
want to use an implementation that is file-based instead.

Generalize PackReverseIndex into an interface without
implementation-specific logic and separate out the logic for the
computed implementation into a new concrete class.

Change-Id: I98d9835363c5e1c8c3c11a81b0761af3cdeaa41a
Signed-off-by: Anna Papitto <annapapitto@google.com>
17 months agoDefault for global (user) git ignore file 60/202560/2
Thomas Wolf [Thu, 15 Jun 2023 20:08:06 +0000 (22:08 +0200)]
Default for global (user) git ignore file

C git has a default for git config core.excludesfile: "Its default
value is $XDG_CONFIG_HOME/git/ignore. If $XDG_CONFIG_HOME is either
not set or empty, $HOME/.config/git/ignore is used instead." [1]

Implement this in the WorkingTreeIterator$RootIgnoreNode.

To make this testable, mock the "user.home" directory for all JGit
tests, otherwise tests might pick up a real user's git ignore file.
Also ensure that JGit code always reads "user.home" via the
SystemReader.

Add tests for both locations.

[1] https://git-scm.com/docs/gitignore#_description

Bug: 436127
Change-Id: Ie510259320286c3c13a6464a37da1bd9ca1e373a
Signed-off-by: Thomas Wolf <twolf@apache.org>
17 months agoFix all Javadoc warnings and fail on them 03/202303/11
Antoine Musso [Wed, 31 May 2023 15:57:28 +0000 (17:57 +0200)]
Fix all Javadoc warnings and fail on them

This fixes all the javadoc warnings, stops ignoring doclint 'missing'
category and fails the build on javadoc warnings for public and
protected classes and class members.

Since javadoc doesn't allow access specifiers when specifying doclint
configuration we cannot set `-Xdoclint:all,-missing/private`
hence there is no simple way to skip private elements from doclint.
Therefore we check javadoc using the Eclipse Java compiler
(which is used by default) and javadoc configuration in
`.settings/org.eclipse.jdt.core.prefs` files.
This allows more fine grained configuration.

We can reconsider this when javadoc starts supporting access specifiers
in the doclint configuration.

Below are detailled explanations for most modifications.

@inheritDoc
===========
doclint complains about explicits `{@inheritDoc}` when the parent does
not have any documentation. As far as I can tell, javadoc defaults to
inherit comments and should only be used when one wants to append extra
documentation from the parent. Given the parent has no documentation,
remove those usages which doclint complains about.

In some case I have moved up the documentation from the concrete class
up to the abstract class.

Remove `{@inheritDoc}` on overriden methods which don't add additional
documentation since javadoc defaults to inherit javadoc of overridden
methods.

@value to @link
===============
In PackConfig, DEFAULT_SEARCH_FOR_REUSE_TIMEOUT and similar are forged
from Integer.MAX_VALUE and are thus not considered constants (I guess
cause the value would depends on the platform). Replace it with a link
to `Integer.MAX_VALUE`.

In `StringUtils.toBoolean`, @value was used to refer to the
`stringValue` parameter. I have replaced it with `{@code stringValue}`.

{@link <url>} to <a>
====================
@link does not support being given an external URL. Replaces them with
HTML `<a>`.

@since: being invalid
=====================

org.eclipse.jgit/src/org/eclipse/jgit/util/Equality.java has an invalid
tag `@since: ` due to the extra `:`. Javadoc does not complain about it
with version 11.0.18+10 but does with 11.0.19.7. It is invalid
regardless.

invalid HTML syntax
===================

- javadoc doesn't allow <br/>, <p/> and </p> anymore, use <br> and <p>
instead
- replace <tt>code</tt> by {@code code}
- <table> tags don't allow summary attribute, specify caption as
<caption>caption</caption> to fix this

doclint visibility issue
========================

In the private abstract classes `BaseDirCacheEditor` and
`BasePackConnection` links to other methods in the abstract class are
inherited in the public subclasses but doclint gets confused and
considers them unreachable. The HTML documentation for the sub classes
shows the relative links in the sub classes, so it is all correct. It
must be a bug somewhere in javadoc.
Mute those warnings with: @SuppressWarnings("doclint:missing")

Misc
====
Replace `<` and `>` with HTML encoded entities (`&lt; and `&gt;`).
In `SshConstants` I went enclosing a serie of -> arrows in @literal.

Additional tags
===============
Configure maven-javad0c-plugin to allow the following additional tags
defined in https://openjdk.org/jeps/8068562:
- apiNote
- implSpec
- implNote

Missing javadoc
===============
Add missing @params and descriptions

Change-Id: I840056389aa59135cfb360da0d5e40463ce35bd0
Also-By: Matthias Sohn <matthias.sohn@sap.com>
17 months agoMark COMMIT_GENERATION_* constants final 50/202450/2
Antoine Musso [Fri, 9 Jun 2023 12:03:27 +0000 (14:03 +0200)]
Mark COMMIT_GENERATION_* constants final

In org.eclipse.jgit.lib.Constants the constants are all marked final
with the exception of:

- COMMIT_GENERATION_UNKOWN
- COMMIT_GENERATION_NOT_COMPUTED

They were introduced by cf70e7cbe4f without the `final` keyword while
other constants have it which certainly has been forgotten.

The javadoc `{@value}` tag causes raises a warning about the fields not
being constants which is how I have discovered the ommission.

Change-Id: I0ad87f42355440c7d50158e773a280a0526e9671

17 months agoUpdate Orbit to R20230531010532 for 2023-06 29/202429/1
Matthias Sohn [Fri, 9 Jun 2023 08:52:45 +0000 (10:52 +0200)]
Update Orbit to R20230531010532 for 2023-06

Change-Id: I844efc4bec153931f0a7b3c694bade4f5b166295

17 months agoMerge "Merge branch 'stable-6.5' into stable-6.6" into stable-6.6
Matthias Sohn [Thu, 8 Jun 2023 20:36:55 +0000 (16:36 -0400)]
Merge "Merge branch 'stable-6.5' into stable-6.6" into stable-6.6

17 months agoMerge branch 'stable-6.6' 23/202423/1
Luca Milanesio [Wed, 7 Jun 2023 23:28:52 +0000 (00:28 +0100)]
Merge branch 'stable-6.6'

* stable-6.6:
  Revert "RefDirectory: Throw exception if CAS of packed ref list fails"

Change-Id: I6011c20b1aca179126393b0e03fbfb0ba1b6d64c
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
17 months agoMerge branch 'stable-6.5' into stable-6.6 22/202422/1
Luca Milanesio [Wed, 7 Jun 2023 23:28:15 +0000 (00:28 +0100)]
Merge branch 'stable-6.5' into stable-6.6

* stable-6.5:
  Revert "RefDirectory: Throw exception if CAS of packed ref list fails"

Change-Id: Ia2f6f41f27ab430c31871a2cf2cd99dfcbfd9b61
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
17 months agoMerge branch 'stable-6.4' into stable-6.5 21/202421/1
Luca Milanesio [Wed, 7 Jun 2023 23:27:42 +0000 (00:27 +0100)]
Merge branch 'stable-6.4' into stable-6.5

* stable-6.4:
  Revert "RefDirectory: Throw exception if CAS of packed ref list fails"

Change-Id: I7d922a92b7674723cbf6a93fb7c9bc5c0cdb8206
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
17 months agoMerge branch 'stable-6.3' into stable-6.4 20/202420/1
Luca Milanesio [Wed, 7 Jun 2023 23:26:54 +0000 (00:26 +0100)]
Merge branch 'stable-6.3' into stable-6.4

* stable-6.3:
  Revert "RefDirectory: Throw exception if CAS of packed ref list fails"

Change-Id: I33049e70595f097a66e8f4a63b3d8d1c147e878e
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
17 months agoMerge branch 'stable-6.2' into stable-6.3 99/202299/1
Luca Milanesio [Wed, 7 Jun 2023 23:26:00 +0000 (00:26 +0100)]
Merge branch 'stable-6.2' into stable-6.3

* stable-6.2:
  Revert "RefDirectory: Throw exception if CAS of packed ref list fails"

Change-Id: I70db1bc8529eb6a66610946946da5447a578bffa
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
17 months agoMerge branch 'stable-6.1' into stable-6.2 98/202298/1
Luca Milanesio [Wed, 7 Jun 2023 23:25:07 +0000 (00:25 +0100)]
Merge branch 'stable-6.1' into stable-6.2

* stable-6.1:
  Revert "RefDirectory: Throw exception if CAS of packed ref list fails"

Change-Id: I1a98e293ef10917b2d8ad64e88be9e82c7bcf693
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
17 months agoMerge branch 'stable-6.0' into stable-6.1 97/202297/1
Luca Milanesio [Wed, 7 Jun 2023 23:23:54 +0000 (00:23 +0100)]
Merge branch 'stable-6.0' into stable-6.1

* stable-6.0:
  Revert "RefDirectory: Throw exception if CAS of packed ref list fails"

Change-Id: Idc0d1f8ab4524868b7e9754799f70acc1d24f2cb
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
17 months agoMerge branch 'stable-5.13' into stable-6.0 96/202296/1
Luca Milanesio [Wed, 7 Jun 2023 23:21:07 +0000 (00:21 +0100)]
Merge branch 'stable-5.13' into stable-6.0

* stable-5.13:
  Revert "RefDirectory: Throw exception if CAS of packed ref list fails"

Change-Id: I883b21b00317cc6d9951a8a5f9505078ddd2a3a7
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
17 months agoRevert "RefDirectory: Throw exception if CAS of packed ref list fails" 92/201992/2
Martin Fick [Wed, 8 Mar 2023 15:34:38 +0000 (08:34 -0700)]
Revert "RefDirectory: Throw exception if CAS of packed ref list fails"

This reverts commit 9c33f7364d41956240818ba12d8b79d5ea846162.

Reason for revert: This change was based on the false claim that the
packedrefs file lock is held while the CAS is being done, but it is
actually released before the CAS (the in memory lock is still held,
however that does not prevent external actors from updating the
packedrefs files and then another thread from subsequently re-reading it
and updating the in memory packedRefList). Although reverting this
change can cause the CAS to fail, it should not actually matter since
the failure would indicate that another thread has already updated the
in memory packedRefList to either the same version this thread was
trying to update it too, or to a more recent version. Either way,
failing the CAS is then appropriate and should not be problematic.

Although this change reverts the code in the RefDirectory class, it
keeps the "improvements" to the test so that it continues to pass
reliably. The reason for the quotes around the word "improvements" is
because I believe the test alteration actually dramatically changes the
intent of the test, and that the original intent of the test is
untestable with the GC and RefDirectory classes as is.

Bug: 582044
Change-Id: I3acee7527bb542996dcdfaddfb2bdb45ec444db5
Signed-off-by: Martin Fick <quic_mfick@quicinc.com>
(cherry picked from commit c5617711a1b4d5d0807cc7eed702b78d114d46b3)

17 months agoMerge "Merge branch 'stable-6.6'"
Matthias Sohn [Wed, 7 Jun 2023 16:14:35 +0000 (12:14 -0400)]
Merge "Merge branch 'stable-6.6'"

17 months agoPackReverseIndex: use static builder instead of constructor 87/197587/39
Anna Papitto [Tue, 30 May 2023 14:20:54 +0000 (16:20 +0200)]
PackReverseIndex: use static builder instead of constructor

PackReverseIndex instances are created using the constructor directly,
which limits control over the construction logic and refactoring
opportunities for the class itself. These will be needed for a
file-based implementation of the reverse index.

Use a static builder method to create a PackReverseIndex instance using
a pack's forward index.

Change-Id: I4421d907cd61d9ac932df5377e5e28a81679b63f
Signed-off-by: Anna Papitto <annapapitto@google.com>
17 months agoGc#writePack: write the reverse index file to disk 85/197585/39
Anna Papitto [Tue, 30 May 2023 14:20:54 +0000 (16:20 +0200)]
Gc#writePack: write the reverse index file to disk

The reverse index is currently created in-memory when needed. A writer
for reverse index files was already implemented.

Make garbage collection write the reverse index file when the PackConfig
enables it. Write it during #writePack, which mirrors how the primary
index is written.

Change-Id: I50131af6622c41a7b24534aaaf2a423ab4178981
Signed-off-by: Anna Papitto <annapapitto@google.com>
17 months agoBazel: Fix remote build execution for Java 17 05/202105/4
David Ostrovsky [Thu, 25 May 2023 06:49:44 +0000 (08:49 +0200)]
Bazel: Fix remote build execution for Java 17

Bazel build and test with remote17 configuration was actually executed
locally, and not remotely.

Rename remote configuration setting for Java 11 from remote to remote11
and derive the common remote configuration settings for remote11 and
remote17 configurations.

Also remove deprecated --host_javabase and --javabase options.

Test Plan:

Verify that the remote build for Java 17 is actually executed remotely:

  $ bazel test --config=remote17 --remote_instance_name=$PROJECT_NAME \
    org.eclipse.jgit.test/...

Change-Id: I10ad8c1d28c92fed9e465c2d36770ed4fb2940c3

17 months agoBump bazel vesion to 6.2.0 89/201989/1
David Ostrovsky [Thu, 25 May 2023 06:19:06 +0000 (08:19 +0200)]
Bump bazel vesion to 6.2.0

Also demote severity level for bug pattern: PreferredInterfaceType, aka
MutableConstantField: [1] from error to warning.

Also fix DoubleBraceInitialization error prone bug pattern [2].

[1] https://errorprone.info/bugpattern/PreferredInterfaceType
[2] https://errorprone.info/bugpattern/DoubleBraceInitialization

Change-Id: I04b7d0792e67cbc51e3939bd47c2ea13a685cf0d
(cherry picked from commit 0f071a7bcee1f551652b2ae017f3e0e134c7eb74)

17 months agoMerge branch 'stable-6.6' 16/202216/1
Matthias Sohn [Tue, 30 May 2023 22:07:59 +0000 (00:07 +0200)]
Merge branch 'stable-6.6'

* stable-6.6:
  Prepare 6.6.1-SNAPSHOT builds
  JGit v6.6.0.202305301015-r

Change-Id: I4f7fc395122d4c34ceaa639726e9d0e255641c8d

17 months agoPrepare 6.6.1-SNAPSHOT builds 11/202211/1
Matthias Sohn [Tue, 30 May 2023 15:24:58 +0000 (17:24 +0200)]
Prepare 6.6.1-SNAPSHOT builds

Change-Id: I0036999e2be076d4ad8231410faeff51bf9cbf52

17 months agoJGit v6.6.0.202305301015-r 09/202209/1 v6.6.0.202305301015-r
Matthias Sohn [Tue, 30 May 2023 14:11:53 +0000 (16:11 +0200)]
JGit v6.6.0.202305301015-r

Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Change-Id: I33b45b0cf36835b289ecbb5a1a9fc4ad7fc200cd

17 months agoBump bazel vesion to 6.2.0 04/202104/2
David Ostrovsky [Thu, 25 May 2023 06:19:06 +0000 (08:19 +0200)]
Bump bazel vesion to 6.2.0

Also demote severity level for bug pattern: PreferredInterfaceType, aka
MutableConstantField: [1] from error to warning.

Also fix DoubleBraceInitialization error prone bug pattern [2].

[1] https://errorprone.info/bugpattern/PreferredInterfaceType
[2] https://errorprone.info/bugpattern/DoubleBraceInitialization

Change-Id: I04b7d0792e67cbc51e3939bd47c2ea13a685cf0d

18 months agoMerge branch 'stable-6.6' 16/202116/1
Matthias Sohn [Thu, 25 May 2023 21:09:17 +0000 (23:09 +0200)]
Merge branch 'stable-6.6'

* stable-6.6:
  Update to Orbit S20230516204213
  Prepare 6.6.0-SNAPSHOT builds
  JGit v6.6.0.202305241045-m3
  Prepare 6.6.0-SNAPSHOT builds
  JGit v6.6.0.202305031100-m2

Change-Id: Ibceebbce6aebba7a8670de41eb39eb23b14b8c74

18 months agoUpdate to Orbit S20230516204213 72/202072/1
Matthias Sohn [Wed, 24 May 2023 16:22:27 +0000 (18:22 +0200)]
Update to Orbit S20230516204213

Change-Id: I4daae47b8d2e244b78dff5ca072e41153e7e6734

18 months agoPrepare 6.6.0-SNAPSHOT builds 71/202071/1
Matthias Sohn [Wed, 24 May 2023 16:23:45 +0000 (18:23 +0200)]
Prepare 6.6.0-SNAPSHOT builds

Change-Id: If0e4e8ce5f3e2f5170f313fb9b26b4ec0e34dab9

18 months agoPrepare 6.7.0-SNAPSHOT builds 68/202068/1
Matthias Sohn [Wed, 24 May 2023 15:31:26 +0000 (17:31 +0200)]
Prepare 6.7.0-SNAPSHOT builds

Change-Id: I50ff7ee31046cfc29a087c8963be3deae24b1c9c

18 months agoJGit v6.6.0.202305241045-m3 67/202067/1 v6.6.0.202305241045-m3
Matthias Sohn [Wed, 24 May 2023 14:46:23 +0000 (16:46 +0200)]
JGit v6.6.0.202305241045-m3

Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Change-Id: I204708812b9cb6f98f9c29e28548b91da0d88d91

18 months agoMerge branch 'master' into stable-6.6 45/202045/1
Matthias Sohn [Wed, 24 May 2023 13:50:27 +0000 (15:50 +0200)]
Merge branch 'master' into stable-6.6

* master:
  GraphObjectIndex: fix search in findGraphPosition
  Update to Tycho 4.0.0-SNAPSHOT
  PGP sign p2 artefacts
  Revert 'Use net.i2p.crypto:eddsa directly from Maven Central'
  Update dash license-tool-plugin to 1.0.2
  Also add suppressed exception if unchecked exception occurs in finally
  Candidate: use "Objects.equals" instead of "=="
  Use hamcrest 2.2 directly from Maven Central
  Use commons-logging directly from Maven Central
  Update jna to 5.13.0
  Use bytebuddy directly from Maven Central
  Use jna directly from Maven Central
  Use net.i2p.crypto:eddsa directly from Maven Central
  Use org.tukaani:xz directly from Maven Central
  Use args4j directly from Maven Central
  Use gson directly from Maven Central
  Remove unused $NON-NLS-1$
  Remove unused API filters
  Switch to Apache MINA sshd 2.10.0
  [releng] API filter for PackIndex.DEFAULT_WRITE_REVERSE_INDEX
  PackExt: add a #getTmpExtension method
  UploadPack: Record negotiation stats on fetchV2 call
  RewriteGeneratorTest: Introduce test cases for the RewriteGenerator
  PackWriter: write the PackReverseIndex file

Change-Id: I6c7760a32545320862abcdcc8761c9b728e78182

18 months agoMerge changes Ib0f18147,I2a9308c0,Ica15a5dd
Matthias Sohn [Tue, 23 May 2023 23:25:05 +0000 (19:25 -0400)]
Merge changes Ib0f18147,I2a9308c0,Ica15a5dd

* changes:
  Update to Tycho 4.0.0-SNAPSHOT
  PGP sign p2 artefacts
  Revert 'Use net.i2p.crypto:eddsa directly from Maven Central'

18 months agoMerge "GraphObjectIndex: fix search in findGraphPosition"
Jonathan Tan [Tue, 23 May 2023 22:26:47 +0000 (18:26 -0400)]
Merge "GraphObjectIndex: fix search in findGraphPosition"

18 months agoGraphObjectIndex: fix search in findGraphPosition 50/201850/5
Jonathan Tan [Mon, 8 May 2023 20:55:40 +0000 (13:55 -0700)]
GraphObjectIndex: fix search in findGraphPosition

In findGraphPosition, when there is no object whose OID starts with
the first byte of the sought OID, low equals high. This violates an
invariant of the loop, and when the sought OID is lexicographically
greater than every other OID in the repository, causes an
ArrayIndexOutOfBoundsException (because we're trying to read outside the
list of OIDs).

Therefore, check the "low < high" condition at the start of the loop,
not only after the first iteration.

Change-Id: Ic8ac198c151bd161c4996b9e7cb6e6660f151733
Helped-by: Ivan Frade <ifrade@google.com>
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
18 months agoUpdate to Tycho 4.0.0-SNAPSHOT 73/201773/10
Matthias Sohn [Tue, 9 May 2023 07:44:03 +0000 (09:44 +0200)]
Update to Tycho 4.0.0-SNAPSHOT

We need to update to Tycho in order to force PGP signing of the
bouncycastle libraries which isn't supported by earlier Tycho versions.
For that we need to run Maven on Java 17 or higher.

In order to run tests on Java 11 add a `toolchain.xml` file into the
`~/.m2` directory providing the path to Java installations:

<?xml version='1.0' encoding='UTF-8'?>
<toolchains>
  <toolchain>
    <type>jdk</type>
    <provides>
      <id>JavaSE-11</id>
      <version>11</version>
    </provides>
    <configuration>
      <jdkHome>/path/to/java-11</jdkHome>
    </configuration>
  </toolchain>
  <toolchain>
    <type>jdk</type>
    <provides>
      <id>JavaSE-17</id>
      <version>17</version>
    </provides>
    <configuration>
      <jdkHome>/path/to/java-17</jdkHome>
    </configuration>
  </toolchain>
</toolchains>

Change-Id: Ib0f18147826e5b4a7fa1f41590772516269de702

18 months agoPGP sign p2 artefacts 96/201696/13
Matthias Sohn [Wed, 3 May 2023 12:39:17 +0000 (14:39 +0200)]
PGP sign p2 artefacts

This ensures bundles directly pulled from Maven Central are PGP signed
by Tycho.

See https://docs.google.com/document/d/1MnDBvOUwKvKacB-QKnH_PzK88dUlHkjs-D-DWEKmvkY

Change-Id: I2a9308c091e602d40a1c143edb506a3e43dd0dc2

18 months agoRevert 'Use net.i2p.crypto:eddsa directly from Maven Central' 26/202026/1
Thomas Wolf [Tue, 23 May 2023 17:45:12 +0000 (19:45 +0200)]
Revert 'Use net.i2p.crypto:eddsa directly from Maven Central'

This reverts commit 7e094c6cf32d6b6c2e49c72d506149427e97c5ab.

Reason: the maven artifact has a broken MANIFEST.MF with a mandatory
dependency to sun.security.x509, which is an internal package in the
JDK and moreover not needed by the bundle except for one test class
that isn't in the bundle at all.

This extra dependency makes the JGit tycho packaging build fail when
Tycho 4 is used.

We must keep using the Orbit re-packaging of this artifact, which does
not have this unnecessary mandatory dependency.

Change-Id: Ica15a5ddcada09686de3055b2b3daf081e3c5ffc
Signed-off-by: Thomas Wolf <twolf@apache.org>
18 months agoUpdate dash license-tool-plugin to 1.0.2 59/201959/2
Matthias Sohn [Fri, 19 May 2023 22:10:54 +0000 (00:10 +0200)]
Update dash license-tool-plugin to 1.0.2

Change-Id: I9708d918f4610503d7a16f55cea3aa3931dcd2cc

18 months agoMerge "Also add suppressed exception if unchecked exception occurs in finally"
Matthias Sohn [Fri, 19 May 2023 17:49:42 +0000 (13:49 -0400)]
Merge "Also add suppressed exception if unchecked exception occurs in finally"

18 months agoAlso add suppressed exception if unchecked exception occurs in finally 49/201949/2
Matthias Sohn [Thu, 18 May 2023 10:02:48 +0000 (12:02 +0200)]
Also add suppressed exception if unchecked exception occurs in finally

If a method called in a finally block throws an exception we should add
exceptions caught earlier to the exception we throw in the finally block
not regarding if it's a checked or unchecked exception.

Change-Id: I4c6be9a3a08482b07659ca31d6987ce719d81ca5

18 months agoCandidate: use "Objects.equals" instead of "==" 36/191736/7
Fabio Ponciroli [Thu, 10 Mar 2022 17:32:53 +0000 (18:32 +0100)]
Candidate: use "Objects.equals" instead of "=="

Errorprone raises the following warning:
"[ReferenceEquality] Comparison using reference equality
instead of value equality".

Change-Id: Iacb207ef0625bb987a08406d4e7461e48fade97f

18 months agoUse hamcrest 2.2 directly from Maven Central 93/201893/3
Matthias Sohn [Tue, 16 May 2023 00:06:10 +0000 (02:06 +0200)]
Use hamcrest 2.2 directly from Maven Central

Change-Id: I4039b56b1cdc54ff1886c2a4973d857d785989c2

18 months agoUse commons-logging directly from Maven Central 92/201892/3
Matthias Sohn [Tue, 16 May 2023 00:01:14 +0000 (02:01 +0200)]
Use commons-logging directly from Maven Central

Change-Id: I08e51450f70f941761539d3f08dd65c5d706dcdc

18 months agoUpdate jna to 5.13.0 91/201891/3
Matthias Sohn [Mon, 15 May 2023 22:38:52 +0000 (00:38 +0200)]
Update jna to 5.13.0

Change-Id: I87d65e66e1cac64ccb744632ea45d06f8b8637fe

18 months agoUse bytebuddy directly from Maven Central 05/201905/1
Matthias Sohn [Wed, 17 May 2023 20:22:32 +0000 (22:22 +0200)]
Use bytebuddy directly from Maven Central

Change-Id: I5e24a31b78ef3758e1ce84e3b0eacaff1608fcd9

18 months agoUse jna directly from Maven Central 90/201890/3
Matthias Sohn [Mon, 15 May 2023 22:18:45 +0000 (00:18 +0200)]
Use jna directly from Maven Central

Change-Id: I3c2576648748a6c6020c13a604cf5fcd4864aeb8

18 months agoUse net.i2p.crypto:eddsa directly from Maven Central 89/201889/2
Matthias Sohn [Mon, 15 May 2023 22:07:10 +0000 (00:07 +0200)]
Use net.i2p.crypto:eddsa directly from Maven Central

Change-Id: I8e864380fa5eb3006943b78b19f6cbe7ae9f8111

18 months agoUse org.tukaani:xz directly from Maven Central 88/201888/2
Matthias Sohn [Mon, 15 May 2023 22:03:28 +0000 (00:03 +0200)]
Use org.tukaani:xz directly from Maven Central

Change-Id: I4ab835cee694778eedaa125cc372be8b6c876133

18 months agoUse args4j directly from Maven Central 87/201887/2
Matthias Sohn [Mon, 15 May 2023 21:58:25 +0000 (23:58 +0200)]
Use args4j directly from Maven Central

Change-Id: I91c7c42c1fc779278fe30294638edef182e88347

18 months agoUse gson directly from Maven Central 46/201846/2
Matthias Sohn [Mon, 15 May 2023 21:40:17 +0000 (23:40 +0200)]
Use gson directly from Maven Central

Change-Id: I4741f733aa7ca219296ed788d4dc93df77cc65ff

18 months agoRemove unused $NON-NLS-1$ 44/201844/2
Matthias Sohn [Mon, 15 May 2023 21:01:03 +0000 (23:01 +0200)]
Remove unused $NON-NLS-1$

Change-Id: I3314e5106d873c03903562f9798de6af2ae588a7

18 months agoRemove unused API filters 43/201843/2
Matthias Sohn [Mon, 15 May 2023 20:59:55 +0000 (22:59 +0200)]
Remove unused API filters

Change-Id: I1971b31753fd4c3568016e7db955cce8e391a1e0

18 months agoSwitch to Apache MINA sshd 2.10.0 79/201879/3
Thomas Wolf [Mon, 3 Apr 2023 17:33:24 +0000 (19:33 +0200)]
Switch to Apache MINA sshd 2.10.0

Bump the version numbers in pom.xml and in MANIFESTs, and in the bazel
WORKSPACE file. Update the target platforms. Remove work-arounds in
org.eclipse.jgit.ssh.apache that are no longer necessary.

The release notes for Apache MINA sshd are at [1].

[1] https://github.com/apache/mina-sshd/blob/master/docs/changes/2.10.0.md

Bug: 581770
Change-Id: Id27e73e9712b7865353c9b32b5b768f6e998b05e
Signed-off-by: Thomas Wolf <twolf@apache.org>
18 months ago[releng] API filter for PackIndex.DEFAULT_WRITE_REVERSE_INDEX 78/201878/1
Thomas Wolf [Mon, 15 May 2023 18:35:59 +0000 (20:35 +0200)]
[releng] API filter for PackIndex.DEFAULT_WRITE_REVERSE_INDEX

New static final constant is a (very minor) API break that needs to be
suppressed explicitly despite @since 6.6.

Remove a number of no longer needed API filters, and fix a broken
$NON-NLS-1$.

Change-Id: Ie4b0c45e8bd1f3067b6ff81c07d4b21b50bb8685
Signed-off-by: Thomas Wolf <twolf@apache.org>
18 months agoMerge "UploadPack: Record negotiation stats on fetchV2 call"
Ivan Frade [Thu, 11 May 2023 20:53:12 +0000 (16:53 -0400)]
Merge "UploadPack: Record negotiation stats on fetchV2 call"

18 months agoPackExt: add a #getTmpExtension method 07/201807/2
Anna Papitto [Tue, 9 May 2023 17:27:52 +0000 (10:27 -0700)]
PackExt: add a #getTmpExtension method

During garbage collection, extensions for temporary files for indices
are formatted manually.

Add a method to PackExt to generate the temporary file extensions for
each type of index file programmatically.

Change-Id: I210bc2702e750bf0aea643b1a9a8536adebef179
Signed-off-by: Anna Papitto <annapapitto@google.com>
18 months agoUploadPack: Record negotiation stats on fetchV2 call 55/201855/8
Ronald Bhuleskar [Wed, 10 May 2023 23:29:53 +0000 (16:29 -0700)]
UploadPack: Record negotiation stats on fetchV2 call

ServiceV2 is not collecting wants/have in PackStatistics. This records
the stats for fetch and push-negotiation.

Change-Id: Iefd79f36b3d7837195e8bd9fc7007de352089e66

18 months agoRewriteGeneratorTest: Introduce test cases for the RewriteGenerator 87/201587/7
Simon Sohrt [Fri, 28 Apr 2023 11:45:15 +0000 (13:45 +0200)]
RewriteGeneratorTest: Introduce test cases for the RewriteGenerator

Bug: 577948
Signed-off-by: Simon Sohrt <sohrt@his.de>
Change-Id: I5af1a43d49379e2417611eaacdd5f06be8147bc4

18 months agoMerge "PackWriter: write the PackReverseIndex file"
Ivan Frade [Mon, 8 May 2023 19:00:46 +0000 (15:00 -0400)]
Merge "PackWriter: write the PackReverseIndex file"

18 months agoPackWriter: write the PackReverseIndex file 83/197583/33
Anna Papitto [Tue, 2 May 2023 20:45:05 +0000 (13:45 -0700)]
PackWriter: write the PackReverseIndex file

PackWriter offers the ability to write out the pack file and its various
index files, except for the newly introduced file-based reverse index.

Now that PackReverseIndexWriter can write reverse index files,
PackWriter#writeReverseIndex will write one for a pack if the
corresponding config flag PackConfig#writeReverseIndex is on.

Change-Id: Ib75dd2bbfb9ee9366d5aacb46700d8cf8af4823a
Signed-off-by: Anna Papitto <annapapitto@google.com>