]> source.dussan.org Git - jgit.git/log
jgit.git
21 months agoMerge branch 'stable-5.13' into stable-6.0 62/199962/2
Matthias Sohn [Thu, 16 Feb 2023 15:42:58 +0000 (16:42 +0100)]
Merge branch 'stable-5.13' into stable-6.0

* stable-5.13:
  Add pack options to preserve and prune old pack files
  Allow to perform PackedBatchRefUpdate without locking loose refs
  Document option "core.sha1Implementation" introduced in 59029aec

Change-Id: I423f410578f5bbe178832b80fef8998a5372182c

21 months agoAdd pack options to preserve and prune old pack files 46/199846/2
Matthias Sohn [Fri, 10 Feb 2023 20:05:47 +0000 (21:05 +0100)]
Add pack options to preserve and prune old pack files

Add the options
- pack.preserveOldPacks
- pack.prunePreserved

This allows to configure in git config if old packs should be preserved
during gc and pruned during the next gc.

The original implementation in 91132bb0 only allows to set these options
using the API.

Change-Id: I5b23ab4f317d12f5ccd234401419913e8263cc9a

21 months agoAllow to perform PackedBatchRefUpdate without locking loose refs 58/199758/1
Saša Živkov [Fri, 21 Oct 2022 14:32:03 +0000 (16:32 +0200)]
Allow to perform PackedBatchRefUpdate without locking loose refs

Add another newBatchUpdate method in the RefDirectory where we can
control if the created PackedBatchRefUpdate will lock the loose refs or
not.

This can be useful in cases when we run programs which have exclusive
access to a Git repository and we know that locking loose refs is
unnecessary and just a performance loss.

Change-Id: I7d0932eb1598a3871a2281b1a049021380234df9
(cherry picked from commit cb90ed08526bd51f04e5d72e3ba3cf5bd30c11e4)

21 months agoDocument option "core.sha1Implementation" introduced in 59029aec 11/199711/2
Matthias Sohn [Wed, 1 Feb 2023 13:33:31 +0000 (14:33 +0100)]
Document option "core.sha1Implementation" introduced in 59029aec

Bug: 580310
Change-Id: I10f3d6f6b5af7ab96683994c9cbd85e6c18a5084

21 months agoMerge branch 'stable-5.13' into stable-6.0 83/199683/1
Matthias Sohn [Tue, 31 Jan 2023 23:30:52 +0000 (00:30 +0100)]
Merge branch 'stable-5.13' into stable-6.0

* stable-5.13:
  Shortcut during git fetch for avoiding looping through all local refs
  FetchCommand: fix fetchSubmodules to work on a Ref to a blob
  Silence API warnings introduced by I466dcde6
  Allow the exclusions of refs prefixes from bitmap
  PackWriterBitmapPreparer: do not include annotated tags in bitmap
  BatchingProgressMonitor: avoid int overflow when computing percentage
  Speedup GC listing objects referenced from reflogs
  FileSnapshotTest: Add more MISSING_FILE coverage

Change-Id: I58ad4c210a5e7e5a1ba6b22315b04211c8909950

21 months agoShortcut during git fetch for avoiding looping through all local refs 64/193464/12
Luca Milanesio [Wed, 18 May 2022 12:31:30 +0000 (13:31 +0100)]
Shortcut during git fetch for avoiding looping through all local refs

The FetchProcess needs to verify that all the refs received point
to objects that are reachable from the local refs, which could be
very expensive but is needed to avoid missing objects exceptions
because of broken chains.

When the local repository has a lot of refs (e.g. millions) and the
client is fetching a non-commit object (e.g. refs/sequences/changes in
Gerrit) the reachability check on all local refs can be very expensive
compared to the time to fetch the remote ref.

Example for a 2M refs repository:
- fetching a single non-commit object: 50ms
- checking the reachability of local refs: 30s

A ref pointing to a non-commit object doesn't have any parent or
successor objects, hence would never need to have a reachability check
done. Skipping the askForIsComplete() altogether would save the 30s
time spent in an unnecessary phase.

Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
Change-Id: I09ac66ded45cede199ba30f9e71cc1055f00941b

21 months agoFetchCommand: fix fetchSubmodules to work on a Ref to a blob 23/196223/2
Matthias Sohn [Tue, 4 Oct 2022 13:42:25 +0000 (15:42 +0200)]
FetchCommand: fix fetchSubmodules to work on a Ref to a blob

FetchCommand#fetchSubmodules assumed that FETCH_HEAD can always be
parsed as a tree. This isn't true if it refers to a Ref referring to a
BLOB. This is e.g. used in Gerrit for Refs like refs/sequences/changes
which are used to implement sequences stored in git.

Change-Id: I414f5b7d9f2184b2d7d53af1dfcd68cccb725ca4

21 months agoSilence API warnings introduced by I466dcde6 80/199680/1
Matthias Sohn [Tue, 31 Jan 2023 22:45:07 +0000 (23:45 +0100)]
Silence API warnings introduced by I466dcde6

Change-Id: I510510da34d33757c2f83af8cd1e26f6206a486a

21 months agoAllow the exclusions of refs prefixes from bitmap 76/197776/28
Luca Milanesio [Tue, 20 Dec 2022 21:50:19 +0000 (21:50 +0000)]
Allow the exclusions of refs prefixes from bitmap

When running a GC.repack() against a repository with over one
thousands of refs/heads and tens of millions of ObjectIds,
the calculation of all bitmaps associated with all the refs
would result in an unreasonable big file that would take up to
several hours to compute.

Test scenario: repo with 2500 heads / 10M obj Intel Xeon E5-2680 2.5GHz
Before this change: 20 mins
After this change and 2300 heads excluded: 10 mins (90s for bitmap)

Having such a large bitmap file is also slow in the runtime
processing and have negligible or even negative benefits, because
the time lost in reading and decompressing the bitmap in memory
would not be compensated by the time saved by using it.

It is key to preserve the bitmaps for those refs that are mostly
used in clone/fetch and give the ability to exlude some refs
prefixes that are known to be less frequently accessed, even
though they may actually be actively written.

Example: Gerrit sandbox branches may even be actively
used and selected automatically because its commits are very
recent, however, they may bloat the bitmap, making it ineffective.

A mono-repo with tens of thousands of developers may have
a relatively small number of active branches where the
CI/CD jobs are continuously fetching/cloning the code. However,
because Gerrit allows the use of sandbox branches, the
total number of refs/heads may be even tens to hundred
thousands.

Change-Id: I466dcde69fa008e7f7785735c977f6e150e3b644
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
21 months agoPackWriterBitmapPreparer: do not include annotated tags in bitmap 51/197851/16
Luca Milanesio [Wed, 28 Dec 2022 01:09:52 +0000 (01:09 +0000)]
PackWriterBitmapPreparer: do not include annotated tags in bitmap

The annotated tags should be excluded from the bitmap associated
with the heads-only packfile. However, this was not happening
because of the check of exclusion of the peeled object instead
of the objectId to be excluded from the bitmap.

Sample use-case:

refs/heads/main
  ^
  |
 commit1 <-- commit2 <- annotated-tag1 <- tag1
  ^
  |
 commit0

When creating a bitmap for the above commit graph, before this
change all the commits are included (3 bitmaps), which is
incorrect, because all commits reachable from annotated tags
should not be included.

The heads-only bitmap should include only commit0 and commit1
but because PackWriterBitPreparer was checking for the peeled
pointer of tag1 to be excluded (commit2) which was not found in
the list of tags to exclude (annotated-tag1), the commit2 was
included, even if it wasn't reachable only from the head.

Add an additional check for exclusion of the original objectId
for allowing the exclusion of annotated tags and their pointed
commits. Add one specific test associated with an annotated tag
for making sure that this use-case is covered also.

Example repository benchmark for measuring the improvement:
# refs: 400k (2k heads, 88k tags, 310k changes)
# objects: 11M (88k of them are annotate tags)
# packfiles: 2.7G

Before this change:
GC time: 5h
clone --bare time: 7 mins

After this change:
GC time: 20 mins
clone --bare time: 3 mins

Bug: 581267
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
Change-Id: Iff2bfc6587153001837220189a120ead9ac649dc

21 months agoBatchingProgressMonitor: avoid int overflow when computing percentage 35/199435/4
Matthias Sohn [Mon, 16 Jan 2023 20:58:56 +0000 (21:58 +0100)]
BatchingProgressMonitor: avoid int overflow when computing percentage

When cloning huge repositories I observed percentage of object counts
turning negative. This happened if lastWork * 100 exceeded
Integer.MAX_VALUE.

Change-Id: Ic5f5cf5a911a91338267aace4daba4b873ab3900

21 months agoSpeedup GC listing objects referenced from reflogs 68/199468/3
Matthias Sohn [Wed, 18 Jan 2023 16:39:19 +0000 (17:39 +0100)]
Speedup GC listing objects referenced from reflogs

GC needs to get a ReflogReader for all existing refs to list all objects
referenced from reflogs. The existing Repository#getReflogReader method
accepts the ref name and then resolves the Ref to create a ReflogReader.
GC calling that for a huge number of Refs one by one is very slow. GC
first gets all Refs in bulk and then calls getReflogReader for each of
them.

Fix this by adding another getReflogReader method to Repository which
accepts a Ref directly.

This speeds up running JGit gc on a mirror clone of the Gerrit
repository from 15:36 min to 1:08 min. The repository used in this test
had 45k refs, 275k commits and 1.2m git objects.

Change-Id: I474897fdc6652923e35d461c065a29f54d9949f4

22 months agoFileSnapshotTest: Add more MISSING_FILE coverage 72/199272/1
Nasser Grainawi [Fri, 6 Jan 2023 21:14:48 +0000 (14:14 -0700)]
FileSnapshotTest: Add more MISSING_FILE coverage

Add a couple tests that confirm what the docs say about isModified() and
equals(MISSING_FILE) behavior.

Change-Id: I6093040ba3594934c3270331405a44b2634b97c5
Signed-off-by: Nasser Grainawi <quic_nasserg@quicinc.com>
2 years agoSilence API errors 36/197136/1
Matthias Sohn [Sun, 20 Nov 2022 18:55:22 +0000 (19:55 +0100)]
Silence API errors

Change-Id: Ie112b2099ea2125bc85863524e56f09ba4907373

2 years agoMerge branch 'stable-5.13' into stable-6.0 35/197135/1
Matthias Sohn [Sun, 20 Nov 2022 18:54:44 +0000 (19:54 +0100)]
Merge branch 'stable-5.13' into stable-6.0

* stable-5.13:
  Silence API warnings

Change-Id: If5ab988a0e177c37b125e0b10625e506eeb2a74f

2 years agoSilence API warnings 34/197134/1
Matthias Sohn [Sun, 20 Nov 2022 18:45:54 +0000 (19:45 +0100)]
Silence API warnings

introduced by
- addition of configurable SHA1 implementation in 5.13.2
- 3-digit @since 5.9.1 annotations on GitServlet methods

Change-Id: If19853fcc5e3677e5b18e8e3fbbcd2773378dffc

2 years agoMerge branch 'stable-5.13' into stable-6.0 01/197001/1
Matthias Sohn [Tue, 15 Nov 2022 23:15:17 +0000 (00:15 +0100)]
Merge branch 'stable-5.13' into stable-6.0

* stable-5.13:
  [benchmarks] Remove profiler configuration
  Add SHA1 benchmark
  [benchmarks] Set version of maven-compiler-plugin to 3.8.1
  Fix running JMH benchmarks
  Add option to allow using JDK's SHA1 implementation
  Ignore IllegalStateException if JVM is already shutting down

Change-Id: I40105336f0b9e593a8a2c242a9557f854c274fdc

2 years ago[benchmarks] Remove profiler configuration 42/196942/7
Matthias Sohn [Mon, 14 Nov 2022 22:23:55 +0000 (23:23 +0100)]
[benchmarks] Remove profiler configuration

Profiler configuration can be added when required. It was commented out
in most benchmarks.

Change-Id: I725f98757f7d4d2ba2589658e34e2fd6fbbbedee

2 years agoAdd SHA1 benchmark 06/196906/13
Matthias Sohn [Tue, 15 Nov 2022 12:22:12 +0000 (13:22 +0100)]
Add SHA1 benchmark

Results on a Mac M1 max:

    size     SHA1Native SHA1Java    SHA1Java
                        without     with
                        collision   collision
                        detection   detection
    [kB]     [us/op]    [us/op]     [us/op]
---------------------------------------------
      1       3.662       4.200       4.707
      2       7.053       7.868       8.928
      4      13.883      15.149      17.608
      8      27.225      30.049      35.237
     16      54.014      59.655      70.867
     32     106.457     118.022     140.403
     64     212.712     237.702     281.522
   1024    3469.519    3868.883    4637.287
 131072  445011.724  501751.992  604061.308
1048576 3581702.104 4008087.854 4831023.563

The last 3 sizes (1, 128, 1024 MB) weren't committed
here to limit the total runtime.

Bug: 580310
Change-Id: I7d0382fd4aa4c4734806b12e96b671bee37d26e3

2 years ago[benchmarks] Set version of maven-compiler-plugin to 3.8.1 41/196941/6
Matthias Sohn [Mon, 14 Nov 2022 21:25:40 +0000 (22:25 +0100)]
[benchmarks] Set version of maven-compiler-plugin to 3.8.1

Change-Id: Ib14db133c76a55358ea79663ef38d9fb47a67f45

2 years agoFix running JMH benchmarks 25/196225/9
Matthias Sohn [Tue, 4 Oct 2022 13:45:01 +0000 (15:45 +0200)]
Fix running JMH benchmarks

Without this I sometimes hit the error:

$ java -jar target/benchmarks.jar
Exception in thread "main" java.lang.RuntimeException: ERROR: Unable to
find the resource: /META-INF/BenchmarkList
at org.openjdk.jmh.runner.AbstractResourceReader.getReaders(AbstractResourceReader.java:98)
at org.openjdk.jmh.runner.BenchmarkList.find(BenchmarkList.java:124)
at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:253)
at org.openjdk.jmh.runner.Runner.run(Runner.java:209)
at org.openjdk.jmh.Main.main(Main.java:71)

Change-Id: Iea9431d5f332f799d55a8a2d178c79a2ef0da22b

2 years agoAdd option to allow using JDK's SHA1 implementation 05/196905/9
Matthias Sohn [Fri, 11 Nov 2022 16:54:06 +0000 (17:54 +0100)]
Add option to allow using JDK's SHA1 implementation

The change If6da9833 moved the computation of SHA1 from the JVM's
JCE to a pure Java implementation with collision detection.
The extra security for public sites comes with a cost of slower
SHA1 processing compared to the native implementation in the JDK.

When JGit is used internally and not exposed to any traffic from
external or untrusted users, the extra cost of the pure Java SHA1
implementation can be avoided, falling back to the previous
native MessageDigest implementation.

Bug: 580310
Change-Id: Ic24c0ba1cb0fb6282b8ca3025ffbffa84035565e

2 years agoIgnore IllegalStateException if JVM is already shutting down 40/196540/1
Matthias Sohn [Thu, 27 Oct 2022 18:31:31 +0000 (20:31 +0200)]
Ignore IllegalStateException if JVM is already shutting down

Trying to register/unregister a shutdown hook when the JVM is already in
shutdown throws an IllegalStateException. Ignore this exception since we
can't do anything about it.

Bug: 580953
Change-Id: I8fc6fdd5585837c81ad0ebd6944430856556d90e

2 years agoMerge branch 'stable-5.13' into stable-6.0 94/194594/1
Matthias Sohn [Wed, 6 Jul 2022 08:38:30 +0000 (10:38 +0200)]
Merge branch 'stable-5.13' into stable-6.0

* stable-5.13:
  UploadPack: don't prematurely terminate timer in case of error
  Do not create reflog for remote tracking branches during clone
  UploadPack: do not check reachability of visible SHA1s
  Add missing package import javax.management to org.eclipse.jgit

Change-Id: I6db0a4d74399fde892eeec62efd2946f97547a5d

2 years agoUploadPack: don't prematurely terminate timer in case of error 00/194500/2
Matthias Sohn [Wed, 29 Jun 2022 12:58:17 +0000 (14:58 +0200)]
UploadPack: don't prematurely terminate timer in case of error

In uploadWithExceptionPropagation don't prematurely terminate timer in
case of error to enable reporting it to the client. Expose a close
method so that callers can terminate it at the appropriate time.

If the timer is already terminated when trying to report it to the
client this failed with the error java.lang.IllegalStateException:
"Timer already terminated".

Bug: 579670
Change-Id: I95827442ccb0f9b1ede83630cf7c51cf619c399a

2 years agoMerge "Do not create reflog for remote tracking branches during clone" into stable...
Matthias Sohn [Sun, 26 Jun 2022 19:36:03 +0000 (15:36 -0400)]
Merge "Do not create reflog for remote tracking branches during clone" into stable-5.13

2 years agoDo not create reflog for remote tracking branches during clone 07/193007/24
Luca Milanesio [Fri, 29 Apr 2022 15:45:03 +0000 (16:45 +0100)]
Do not create reflog for remote tracking branches during clone

When using JGit on a non-bare repository, the CloneCommand
it previously created local reflogs for all branches including remote
tracking ones, causing the generation of a potentially large
number of files on the local filesystem.

The creation of the remote-tracking branches (refs/remotes/*) during
clone is not an issue for the local filesystem because all of them are
stored in a single packed-refs file. However, the creation of a large
number of ref logs on a local filesystem IS an issue because it
may not be tuned or initialised in term of inodes to contain a very
large number of files.

When a user (or a CI system) performs the CloneCommand against
a potentially large repository (e.g., millions of branches), it is
interested in working or validating a single branch or tag and is
unlikely to work with all the remote-tracking branches.
The eager creation of a reflogs for all the remote-tracking branches is
not just a performance issue but may also compromise the ability to
use JGit for cloning a large repository.

The behaviour implemented in this change is also consistent with the
optimisation done in the C code-base [1].

We differentiate between clone and fetch commands using --branch
<initialBranch> option, that is only available in clone command,
and is set as HEAD per default.

[1] https://github.com/git/git/commit/58f233ce1ed67bbc31a429fde5c65d5050fdbd7d

Bug: 579805
Change-Id: I58d0d36a8a4ce42e0f59b8bf063747c4b81bd859
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
2 years agoUploadPack: do not check reachability of visible SHA1s 96/193496/11
Luca Milanesio [Thu, 19 May 2022 10:12:28 +0000 (11:12 +0100)]
UploadPack: do not check reachability of visible SHA1s

When JGit needs to serve a Git client requesting SHA1s
during the want phase, it needs to make a full reachability
check from the advertised refs to the ones requested to
keep all objects in the correct scope of confidentiality
allowed by the avertised refs.

The check is also performed when the SHA1 corresponds to
one of the tips of the advertised refs which is a waste of
resources.

Example:

fetch> ref-prefix refs/heads/foo
fetch< 900505eb8ce8ced2a1757906da1b25c357b9654e refs/heads/foo
fetch< 0000
fetch> command=fetch
fetch> 0001
fetch> thin-pack
fetch> ofs-delta
fetch> want 900505eb8ce8ced2a1757906da1b25c357b9654e

The SHA1 in the want is the tip of refs/heads/foo and therefore
the full reachability check can be shortened and resolved more
quickly.

Change-Id: I49bd9e2464e0bd3bca2abf14c6e9df550d07383b
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
2 years agoAdd missing package import javax.management to org.eclipse.jgit 34/194234/1
Matthias Sohn [Fri, 17 Jun 2022 11:49:59 +0000 (13:49 +0200)]
Add missing package import javax.management to org.eclipse.jgit

Class org.eclipse.jgit.util.Monitoring uses JMX hence we need this
import otherwise OSGi applications can face ClassNotFoundException.

Bug: 577018
Change-Id: Ifd75337b87c7faec95d333b771bb0a2f3e46a418

2 years agoMerge branch 'stable-5.13' into stable-6.0 88/194188/1
Matthias Sohn [Wed, 15 Jun 2022 14:31:38 +0000 (16:31 +0200)]
Merge branch 'stable-5.13' into stable-6.0

* stable-5.13:
  Prepare 5.13.2-SNAPSHOT builds
  JGit v5.13.1.202206130422-r
  AmazonS3: Add support for AWS API signature version 4

Change-Id: Ibd663a1d874d1aac274abc3dd44354fd99f64c39

2 years agoPrepare 5.13.2-SNAPSHOT builds 46/194146/1
Matthias Sohn [Mon, 13 Jun 2022 22:41:18 +0000 (00:41 +0200)]
Prepare 5.13.2-SNAPSHOT builds

Change-Id: I4862e5d80a7d95a1a119d06306e3f6927445d1d3

2 years agoJGit v5.13.1.202206130422-r 19/194119/1 v5.13.1.202206130422-r
Matthias Sohn [Mon, 13 Jun 2022 08:22:43 +0000 (10:22 +0200)]
JGit v5.13.1.202206130422-r

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

2 years agoAmazonS3: Add support for AWS API signature version 4 12/193712/6
eric.steele [Wed, 1 Jun 2022 01:03:17 +0000 (18:03 -0700)]
AmazonS3: Add support for AWS API signature version 4

Updating the AmazonS3 class to support AWS Signature version 4 because
version 2 is no longer supported in all AWS regions. The version can be
selected with the new 'aws.api.signature.version' property (defaults to
2 for backwards compatibility). When set to '4', the user must also
specify the AWS region via the 'region' property. The 'region' property
must match the region that the 'domain' property resolves to.

Bug: 579907
Change-Id: If289dbc6d0f57323cfeaac2624c4eb5028f78d13

2 years agoMerge branch 'stable-5.13' into stable-6.0 71/193971/1
Matthias Sohn [Tue, 7 Jun 2022 09:35:13 +0000 (11:35 +0200)]
Merge branch 'stable-5.13' into stable-6.0

* stable-5.13:
  Fix connection leak for smart http connections

Change-Id: Ic851f2c4660ed761f5527e405b116b54da42fb7c

2 years agoMerge branch 'stable-5.12' into stable-5.13 70/193970/1
Matthias Sohn [Tue, 7 Jun 2022 09:34:25 +0000 (11:34 +0200)]
Merge branch 'stable-5.12' into stable-5.13

* stable-5.12:
  Fix connection leak for smart http connections

Change-Id: Id34f29c1b27a80c2b56c911cad7e3f64ef63af48

2 years agoMerge branch 'stable-5.11' into stable-5.12 69/193969/1
Matthias Sohn [Tue, 7 Jun 2022 09:33:38 +0000 (11:33 +0200)]
Merge branch 'stable-5.11' into stable-5.12

* stable-5.11:
  Fix connection leak for smart http connections

Change-Id: I6caabf4774ccf34706cef846c1087710f67e2ecd

2 years agoMerge branch 'stable-5.10' into stable-5.11 67/193967/2
Matthias Sohn [Tue, 7 Jun 2022 08:50:25 +0000 (10:50 +0200)]
Merge branch 'stable-5.10' into stable-5.11

* stable-5.10:
  Fix connection leak for smart http connections

Change-Id: I3885c6114caed897f762f5ce523d3b27288205b2

2 years agoMerge branch 'stable-5.9' into stable-5.10 66/193966/1
Matthias Sohn [Tue, 7 Jun 2022 08:42:22 +0000 (10:42 +0200)]
Merge branch 'stable-5.9' into stable-5.10

* stable-5.9:
  Fix connection leak for smart http connections

Change-Id: I5e7144b2f5cd850978220c476947001ae2debb8e

2 years agoFix connection leak for smart http connections 39/193939/3
Saša Živkov [Fri, 3 Jun 2022 14:36:43 +0000 (16:36 +0200)]
Fix connection leak for smart http connections

SmartHttpPushConnection: close InputStream and OutputStream after
processing. Wrap IOExceptions which aren't TransportExceptions already
as a TransportException.

Also-By: Matthias Sohn <matthias.sohn@sap.com>
Change-Id: I8e11d899672fc470c390a455dc86367e92ef9076

2 years agoMerge branch 'stable-5.13' into stable-6.0 67/193767/1
Matthias Sohn [Fri, 27 May 2022 14:20:28 +0000 (16:20 +0200)]
Merge branch 'stable-5.13' into stable-6.0

* stable-5.13:
  Remove stray files (probes or lock files) created by background threads

Change-Id: I7af1355a77f14995118145162f6bb8a4f1755f2b

2 years agoRemove stray files (probes or lock files) created by background threads 79/193379/2
James Z.M. Gao [Thu, 7 Apr 2022 16:29:39 +0000 (00:29 +0800)]
Remove stray files (probes or lock files) created by background threads

NOTE: port back from master branch.

On process exit, it was possible that the filesystem timestamp
resolution measurement left behind .probe files or even a lock file
for the jgit.config.

Ensure the SAVE_RUNNER is shut down when the process exits (via
System.exit() or otherwise). Move lf.lock() into the try-finally
block when saving the config file.

Delete .probe files on JVM shutdown -- they are created in daemon
threads that may terminate abruptly, not executing the "finally"
clause that normally removes these files.

Bug: 579445
Change-Id: Iaee2301eb14e6201406398a90228ad10cfea6098

2 years agoMerge branch 'stable-5.13' into stable-6.0 93/190593/2
Matthias Sohn [Tue, 8 Feb 2022 23:32:10 +0000 (00:32 +0100)]
Merge branch 'stable-5.13' into stable-6.0

* stable-5.13:
  Stop initCause throwing in readAdvertisedRefs

Change-Id: I94251601aa7fae9cc65164eaddcf16471874b11e

2 years agoStop initCause throwing in readAdvertisedRefs 50/190250/16
Darius Jokilehto [Fri, 4 Feb 2022 16:13:27 +0000 (16:13 +0000)]
Stop initCause throwing in readAdvertisedRefs

BasePackConnection::readAdvertisedRefsImpl was creating an exception by
calling `noRepository`, and then blindly calling `initCause` on it. As
`noRepository` can be overridden, it's not guaranteed to be missing a
cause.

BasePackPushConnection overrides `noRepository` and initiates a fetch,
which may throw a `NoRemoteRepositoryException` with a cause.

In this case calling `initCause` threw an `IllegalStateException`.

In order to throw the correct exception, we now return the
BasePackPushConnection exception and suppress the one thrown by
BasePackConnection

Bug: 578511
Change-Id: Ic1018b214be1e83d895979ee6c7cbce3f6765f6f

2 years agoFix warning: The value of the parameter otp is not used 22/189822/1
Antonio Barone [Thu, 20 Jan 2022 10:58:09 +0000 (11:58 +0100)]
Fix warning: The value of the parameter otp is not used

Silence warning by removing unused argument to the beginCopyAsIs()
method.

Change-Id: I94e7ff1c61cf8b03752de2974baa24b9c061c163

2 years agoMerge changes I6a22f37f,I092389e4,I20af1d8d,I83332efc into stable-6.0
Matthias Sohn [Wed, 19 Jan 2022 08:50:59 +0000 (03:50 -0500)]
Merge changes I6a22f37f,I092389e4,I20af1d8d,I83332efc into stable-6.0

* changes:
  [bazel] Skip ConfigTest#testCommitTemplatePathInHomeDirecory
  [errorprone] Fix InfiniteRecursion error in RecordingLogger
  [errorprone] Suppress Finally error in ObjectDownloadListener
  [errorprone] Fix implicit use of default charset in FileBasedConfigTest

2 years agoMerge "[errorprone] Suppress FutureReturnValueIgnored in FileRepository#autoGc" into...
Matthias Sohn [Wed, 19 Jan 2022 08:43:27 +0000 (03:43 -0500)]
Merge "[errorprone] Suppress FutureReturnValueIgnored in FileRepository#autoGc" into stable-6.0

2 years agoMerge branch 'stable-5.13' into stable-6.0 47/189747/1
Matthias Sohn [Tue, 18 Jan 2022 17:07:59 +0000 (18:07 +0100)]
Merge branch 'stable-5.13' into stable-6.0

* stable-5.13:
  UploadPack v2 protocol: Stop negotiation for orphan refs

Change-Id: I6a9ed8338ffbf5363e48d640a2c4209e4e503549

2 years agoMerge branch 'stable-5.12' into stable-5.13 46/189746/1
Matthias Sohn [Tue, 18 Jan 2022 16:51:14 +0000 (17:51 +0100)]
Merge branch 'stable-5.12' into stable-5.13

* stable-5.12:
  UploadPack v2 protocol: Stop negotiation for orphan refs

Change-Id: Ib43068c32d9cb8effe4b873396391dc3c9197a6e

2 years agoMerge branch 'stable-5.11' into stable-5.12 45/189745/1
Matthias Sohn [Tue, 18 Jan 2022 16:49:03 +0000 (17:49 +0100)]
Merge branch 'stable-5.11' into stable-5.12

* stable-5.11:
  UploadPack v2 protocol: Stop negotiation for orphan refs

Change-Id: I5db432bd416cfa8d3dd295bdce63e31d5f160a8a

2 years ago[bazel] Skip ConfigTest#testCommitTemplatePathInHomeDirecory 76/189576/2
Matthias Sohn [Wed, 12 Jan 2022 22:45:34 +0000 (23:45 +0100)]
[bazel] Skip ConfigTest#testCommitTemplatePathInHomeDirecory

Move this test to another class and skip it when running tests with
bazel since the bazel test runner does not allow to create files in the
home directory.

FS#userHome retrieves the home directory on the first call and caches it
for subsequent calls to avoid overhead in case path translation is
required (currently on cygwin). This prevents that the test can mock the
home directory using MockSystemReader like SshTestHarness does.

Change-Id: I6a22f37f4a19eb4b4935509eae508a23e56db7aa

2 years ago[errorprone] Fix InfiniteRecursion error in RecordingLogger 75/189575/2
Matthias Sohn [Wed, 12 Jan 2022 01:00:41 +0000 (02:00 +0100)]
[errorprone] Fix InfiniteRecursion error in RecordingLogger

Change-Id: I092389e428232a4fe7613d846c288d285ae9102c

2 years ago[errorprone] Suppress Finally error in ObjectDownloadListener 74/189574/2
Matthias Sohn [Wed, 12 Jan 2022 16:45:26 +0000 (17:45 +0100)]
[errorprone] Suppress Finally error in ObjectDownloadListener

Change-Id: I20af1d8d931608e93fbc52e127f1b7bafd2f917c

2 years ago[errorprone] Fix implicit use of default charset in FileBasedConfigTest 73/189573/2
Matthias Sohn [Wed, 12 Jan 2022 01:02:35 +0000 (02:02 +0100)]
[errorprone] Fix implicit use of default charset in FileBasedConfigTest

Change-Id: I83332efc498a5bce242915a1eec2346e6e1f58fd

2 years ago[errorprone] Suppress FutureReturnValueIgnored in FileRepository#autoGc 72/189572/2
Matthias Sohn [Wed, 12 Jan 2022 00:52:26 +0000 (01:52 +0100)]
[errorprone] Suppress FutureReturnValueIgnored in FileRepository#autoGc

Ignore the FutureReturnValueIgnored warning for the unused return value
of #gc.

Change-Id: I4e7a2f85d404962c01726f9a1d079fe4a6430a1b

2 years agoUploadPack v2 protocol: Stop negotiation for orphan refs 87/189087/6
Marcin Czech [Wed, 22 Dec 2021 16:42:36 +0000 (17:42 +0100)]
UploadPack v2 protocol: Stop negotiation for orphan refs

The fetch of a single orphan ref (for example Gerrit meta ref:
refs/changes/21/21/meta) did not stop the negotiation so client
had to advertise all refs. This impacts the fetch performance
on repositories with a large number of refs (for example on
Gerrit repository it takes 20 seconds to fetch meta ref
comparing to 1.2 second to fetch ref with parent).

To avoid this issue UploadPack, used on the server side,
now checks if all `want` refs have parents, if not this
means that client doesn't need any extra objects, hence
the server responds with `ready` and finishes the
negotiation phase.

Bug: 577937
Change-Id: Ia3001b400b415d5cf6aae45e72345ca08d3af058

2 years agoComplete update to servlet api 4.0.0 71/189571/1
Matthias Sohn [Wed, 12 Jan 2022 17:37:02 +0000 (18:37 +0100)]
Complete update to servlet api 4.0.0

Ibd0240cf7ad updated servlet-api to 4.0.0 only partially for the
osgi-based build in Eclipse.

Complete this by updating dependencies also in maven and bazel build.

Change-Id: Ic4c3eb78c538007ca2177f6109d415147e58eabe

2 years agoMerge branch 'stable-5.13' into stable-6.0 20/189320/1
Thomas Wolf [Wed, 5 Jan 2022 13:54:39 +0000 (14:54 +0100)]
Merge branch 'stable-5.13' into stable-6.0

* stable-5.13:
  Use slf4j-simple instead of log4j for logging
  Update orbit to R20211213173813

Change-Id: I219ef3901c1d908b91bf9c8f00431b22686ff7a5
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2 years agoUse slf4j-simple instead of log4j for logging 24/188924/7
Matthias Sohn [Thu, 16 Dec 2021 17:42:45 +0000 (18:42 +0100)]
Use slf4j-simple instead of log4j for logging

JGit uses slf4j-api as logging API.

The libraries
- org.eclipse.jgit.http.test
- org.eclipse.jgit.pgm
- org.eclipse.jgit.ssh.apache.test
- org.eclipse.jgit.test
used the outdated log4j 1.2.15 which is EOL since years.

Since both jgit command line and also the tests don't need sophisticated
logging features replace log4j with the much simpler slf4j-simple log
implementation. The org.slf4j.binding.simple 1.7.30 archive has only
25kB instead of 429kB for log4j 1.2.15

Applications using jgit are free to choose any other log implementation
supporting slf4j API.

Change-Id: I89e85cd3c76e954c3434622510975ce65dc227d4

2 years agoUpdate orbit to R20211213173813 23/188923/6
Matthias Sohn [Mon, 13 Dec 2021 23:07:10 +0000 (00:07 +0100)]
Update orbit to R20211213173813

and update
- com.google.gson to 2.8.8.v20211029-0838
- javaewah to 1.1.13.v20211029-0839
- net.i2p.crypto.eddsa to 0.3.0.v20210923-1401
- org.apache.ant to 1.10.12.v20211102-1452
- org.apache.commons.compress to 1.21.0.v20211103-2100
- org.bouncycastle.bcprov to 1.69.0.v20210923-1401
- org.junit to 4.13.2.v20211018-1956

Change-Id: I3ac39fc8a5df571d2e290241a03668f1e60880b4

2 years agoMerge branch 'stable-5.13' into stable-6.0 07/189207/2
Matthias Sohn [Thu, 30 Dec 2021 23:30:51 +0000 (00:30 +0100)]
Merge branch 'stable-5.13' into stable-6.0

* stable-5.13:
  Use FileSnapshot without using configs for FileBasedConfig

Change-Id: Iaff40b144aea9ad5e6d0fa6b448ad7d527992832

2 years agoMerge branch 'stable-5.12' into stable-5.13 06/189206/2
Matthias Sohn [Thu, 30 Dec 2021 23:29:40 +0000 (00:29 +0100)]
Merge branch 'stable-5.12' into stable-5.13

* stable-5.12:
  Use FileSnapshot without using configs for FileBasedConfig

Change-Id: I6a0266cbcaaf18d0d60f0abecb5434fd919c44b7

2 years agoMerge branch 'stable-5.11' into stable-5.12 05/189205/2
Matthias Sohn [Thu, 30 Dec 2021 23:28:53 +0000 (00:28 +0100)]
Merge branch 'stable-5.11' into stable-5.12

* stable-5.11:
  Use FileSnapshot without using configs for FileBasedConfig

Change-Id: I4e241860c2ca50750e22c2761c515c9895688c55

2 years agoMerge branch 'stable-5.10' into stable-5.11 04/189204/2
Matthias Sohn [Thu, 30 Dec 2021 23:26:24 +0000 (00:26 +0100)]
Merge branch 'stable-5.10' into stable-5.11

* stable-5.10:
  Use FileSnapshot without using configs for FileBasedConfig

Change-Id: Ie3f2d05aeb1aa04af707cfafef5780349be4d981

2 years agoMerge branch 'stable-5.9' into stable-5.10 03/189203/2
Matthias Sohn [Thu, 30 Dec 2021 23:05:40 +0000 (00:05 +0100)]
Merge branch 'stable-5.9' into stable-5.10

* stable-5.9:
  Use FileSnapshot without using configs for FileBasedConfig

Change-Id: I4f954c48ad6e8ff18826fdc72d225bff3e3ae2d9

2 years agoMerge branch 'stable-5.8' into stable-5.9 02/189202/2
Matthias Sohn [Thu, 30 Dec 2021 22:58:41 +0000 (23:58 +0100)]
Merge branch 'stable-5.8' into stable-5.9

* stable-5.8:
  Use FileSnapshot without using configs for FileBasedConfig

Change-Id: Ic97d38fc85daa00297abbfa186f83b779966e7ef

2 years agoMerge branch 'stable-5.7' into stable-5.8 01/189201/2 stable-5.8
Matthias Sohn [Thu, 30 Dec 2021 22:56:32 +0000 (23:56 +0100)]
Merge branch 'stable-5.7' into stable-5.8

* stable-5.7:
  Use FileSnapshot without using configs for FileBasedConfig

Change-Id: If9cc2f2bae5dbead7a38218828da461540be942e

2 years agoMerge branch 'stable-5.6' into stable-5.7 00/189200/2 stable-5.7
Matthias Sohn [Thu, 30 Dec 2021 22:53:54 +0000 (23:53 +0100)]
Merge branch 'stable-5.6' into stable-5.7

* stable-5.6:
  Use FileSnapshot without using configs for FileBasedConfig

Change-Id: I274d46d73cc896dcfde6e24c69c71f33aaa78d20

2 years agoMerge branch 'stable-5.5' into stable-5.6 99/189199/2 stable-5.6
Matthias Sohn [Thu, 30 Dec 2021 22:51:41 +0000 (23:51 +0100)]
Merge branch 'stable-5.5' into stable-5.6

* stable-5.5:
  Use FileSnapshot without using configs for FileBasedConfig

Change-Id: If904289feecd1e0d8466c1fb998f160f14d54b61

2 years agoMerge branch 'stable-5.4' into stable-5.5 98/189198/2 stable-5.5
Matthias Sohn [Thu, 30 Dec 2021 22:41:54 +0000 (23:41 +0100)]
Merge branch 'stable-5.4' into stable-5.5

* stable-5.4:
  Use FileSnapshot without using configs for FileBasedConfig

Change-Id: I84e11bdaa9306e23212dac9d8670557a18d40107

2 years agoMerge branch 'stable-5.3' into stable-5.4 97/189197/2 stable-5.4
Matthias Sohn [Thu, 30 Dec 2021 22:40:21 +0000 (23:40 +0100)]
Merge branch 'stable-5.3' into stable-5.4

* stable-5.3:
  Use FileSnapshot without using configs for FileBasedConfig

Change-Id: I3d8eb2fa721e1a791db47a2342acc690ced01715

2 years agoMerge branch 'stable-5.2' into stable-5.3 96/189196/2 stable-5.3
Matthias Sohn [Thu, 30 Dec 2021 22:33:06 +0000 (23:33 +0100)]
Merge branch 'stable-5.2' into stable-5.3

* stable-5.2:
  Use FileSnapshot without using configs for FileBasedConfig

Change-Id: Ib79c310c5b632e845ba69ce65e739ae0146103ca

2 years agoMerge branch 'stable-5.1' into stable-5.2 95/189195/2 stable-5.2
Matthias Sohn [Thu, 30 Dec 2021 22:18:21 +0000 (23:18 +0100)]
Merge branch 'stable-5.1' into stable-5.2

* stable-5.1:
  Use FileSnapshot without using configs for FileBasedConfig

Change-Id: I17ede8876a0cf231c38cb9652c7bf51553b1e90e

2 years agoUse FileSnapshot without using configs for FileBasedConfig 76/189176/9 stable-5.1
Luca Milanesio [Tue, 28 Dec 2021 23:53:35 +0000 (23:53 +0000)]
Use FileSnapshot without using configs for FileBasedConfig

FileBasedConfig should not rely on auto-detection of
the file-snapshot attribute computation based on config.

The check was already performed when a new FileBasedConfig
is created at L158:

// don't use config in this snapshot to avoid endless recursion
newSnapshot = FileSnapshot.saveNoConfig(getFile());

The check was missing though when the FileBasedConfig is saved
to disk and the new snapshot is obtained from the associated
LockFile.

This change fixes the issue by keeping a non-config based
FileSnapshot also after a FileBasedConfig is saved.

Bug: 577983
Change-Id: Id1e410ba687e683ff2b2643af31e1110b103b356

2 years agoMerge branch 'stable-5.13' into stable-6.0 48/189148/1
Thomas Wolf [Sun, 26 Dec 2021 15:03:40 +0000 (16:03 +0100)]
Merge branch 'stable-5.13' into stable-6.0

* stable-5.13:
  Revert "RefDirectory.scanRef: Re-use file existence check done in snapshot creation"
  TreeRevFilter: fix wrong stop when the given path disappears

Change-Id: Ibd69e9d941ad9262b61dd0c4368e48cb82597a12
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2 years agoMerge branch 'stable-5.12' into stable-5.13 47/189147/1
Thomas Wolf [Sun, 26 Dec 2021 15:02:51 +0000 (16:02 +0100)]
Merge branch 'stable-5.12' into stable-5.13

* stable-5.12:
  Revert "RefDirectory.scanRef: Re-use file existence check done in snapshot creation"

Change-Id: I6576872cc0f5dd452252fa6e4526086cdee65c28
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2 years agoMerge branch 'stable-5.11' into stable-5.12 46/189146/1
Thomas Wolf [Sun, 26 Dec 2021 15:02:06 +0000 (16:02 +0100)]
Merge branch 'stable-5.11' into stable-5.12

* stable-5.11:
  Revert "RefDirectory.scanRef: Re-use file existence check done in snapshot creation"

Change-Id: Ib80336a42e22da729b9db1e573772504cc0a3e77
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2 years agoMerge branch 'stable-5.10' into stable-5.11 45/189145/1
Thomas Wolf [Sun, 26 Dec 2021 15:01:08 +0000 (16:01 +0100)]
Merge branch 'stable-5.10' into stable-5.11

* stable-5.10:
  Revert "RefDirectory.scanRef: Re-use file existence check done in snapshot creation"

Change-Id: I9e79ea2a0c554a184e4ce3b13e375eac8b7a4ac5
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2 years agoMerge branch 'stable-5.9' into stable-5.10 44/189144/1
Thomas Wolf [Sun, 26 Dec 2021 14:58:49 +0000 (15:58 +0100)]
Merge branch 'stable-5.9' into stable-5.10

* stable-5.9:
  Revert "RefDirectory.scanRef: Re-use file existence check done in snapshot creation"

Change-Id: I2a84c838a886d1d6383c34f50b418baa743c57b0
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2 years agoMerge branch 'stable-5.8' into stable-5.9 43/189143/1
Thomas Wolf [Sun, 26 Dec 2021 14:57:59 +0000 (15:57 +0100)]
Merge branch 'stable-5.8' into stable-5.9

* stable-5.8:
  Revert "RefDirectory.scanRef: Re-use file existence check done in snapshot creation"

Change-Id: I88a629e571fec5a9820114ebf5765b5d94a276bd
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2 years agoMerge branch 'stable-5.7' into stable-5.8 42/189142/1
Thomas Wolf [Sun, 26 Dec 2021 14:56:59 +0000 (15:56 +0100)]
Merge branch 'stable-5.7' into stable-5.8

* stable-5.7:
  Revert "RefDirectory.scanRef: Re-use file existence check done in snapshot creation"

Change-Id: Ied786ab5e3c0dd05f701705fce2d4ad85502c4d6
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2 years agoMerge branch 'stable-5.6' into stable-5.7 41/189141/1
Thomas Wolf [Sun, 26 Dec 2021 14:55:52 +0000 (15:55 +0100)]
Merge branch 'stable-5.6' into stable-5.7

* stable-5.6:
  Revert "RefDirectory.scanRef: Re-use file existence check done in snapshot creation"

Change-Id: I454622dae6eb95aedbd858e3b12da72282d36673
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2 years agoMerge branch 'stable-5.5' into stable-5.6 40/189140/1
Thomas Wolf [Sun, 26 Dec 2021 14:54:37 +0000 (15:54 +0100)]
Merge branch 'stable-5.5' into stable-5.6

* stable-5.5:
  Revert "RefDirectory.scanRef: Re-use file existence check done in snapshot creation"

Change-Id: I2622f1d384a88a556ba9d88f0d08a37af69e530c
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2 years agoMerge branch 'stable-5.4' into stable-5.5 39/189139/1
Thomas Wolf [Sun, 26 Dec 2021 14:53:38 +0000 (15:53 +0100)]
Merge branch 'stable-5.4' into stable-5.5

* stable-5.4:
  Revert "RefDirectory.scanRef: Re-use file existence check done in snapshot creation"

Change-Id: Ia1665dd92ccc3811a6116f41421a05aca10fc6eb
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2 years agoMerge branch 'stable-5.3' into stable-5.4 38/189138/1
Thomas Wolf [Sun, 26 Dec 2021 14:52:23 +0000 (15:52 +0100)]
Merge branch 'stable-5.3' into stable-5.4

* stable-5.3:
  Revert "RefDirectory.scanRef: Re-use file existence check done in snapshot creation"

Change-Id: I52a57a17abe60e30e3d7615f8cb4d0c5e6aebd9b
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2 years agoMerge branch 'stable-5.2' into stable-5.3 37/189137/1
Thomas Wolf [Sun, 26 Dec 2021 14:51:23 +0000 (15:51 +0100)]
Merge branch 'stable-5.2' into stable-5.3

* stable-5.2:
  Revert "RefDirectory.scanRef: Re-use file existence check done in snapshot creation"

Change-Id: Id37f47a5ef2e3c8329eca30c171941f7e5606a85
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2 years agoMerge branch 'stable-5.1' into stable-5.2 36/189136/1
Thomas Wolf [Sun, 26 Dec 2021 14:49:06 +0000 (15:49 +0100)]
Merge branch 'stable-5.1' into stable-5.2

* stable-5.1:
  Revert "RefDirectory.scanRef: Re-use file existence check done in snapshot creation"

Change-Id: I625667c2718ab31ae7df907c3dd6024a933913b8
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2 years agoRevert "RefDirectory.scanRef: Re-use file existence check done in snapshot creation" 35/189135/1
Thomas Wolf [Sun, 26 Dec 2021 14:35:30 +0000 (15:35 +0100)]
Revert "RefDirectory.scanRef: Re-use file existence check done in snapshot creation"

This reverts commit f829f5f838e0f9c17373ea6cb3407976a8f395ff.

Using MISSING_FILEKEY as indicator for a non-existing file doesn't work
on Windows.

Bug: 577954
Change-Id: I92102a3d259f6cc0f367096a3213cfa794466817
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2 years agoTreeRevFilter: fix wrong stop when the given path disappears 38/188938/2
kylezhao [Fri, 12 Nov 2021 06:34:46 +0000 (14:34 +0800)]
TreeRevFilter: fix wrong stop when the given path disappears

When chgs[i] == adds[i], it indicated that a commit added some files
that pList[i] did not have, but didn't mean pList[i] is "empty tree
root".

Follow the example below:

.                           .
└── src                     └── src
    └── d1          ==>          └── d1
        └─ file1                    ├─  file1
                                    └── file2
   c.parents[i]                   c

The variable chg[i] equals to variable add[i],
but commit c.parents[i] is not "empty tree root".

We should add an additional check for no paths matching the filter.

Bug: 577227
Change-Id: I834e9ddd0de86b108b280a1139519ea962913b38
Signed-off-by: kylezhao <kylezhao@tencent.com>
2 years agoMerge branch 'stable-5.13' into stable-6.0 46/188546/1
Matthias Sohn [Sat, 4 Dec 2021 20:11:38 +0000 (21:11 +0100)]
Merge branch 'stable-5.13' into stable-6.0

* stable-5.13:
  Add missing @since tags
  Add missing @since tag
  Add missing @since tags
  Remove unused import in ApacheSshTest
  Update maven plugins
  Ignore missing javadoc in test bundles
  storage: file: De-duplicate File.exists()+File.isFile()
  RefDirectory.scanRef: Re-use file existence check done in snapshot creation
  FileSnapshot: Lazy load file store attributes cache
  Update eclipse-jarsigner-plugin to 1.3.2
  Fix p2 repository URLs

Change-Id: Icea0a4dced9688392e7f2411b98df52aed2b9c8c

2 years agoMerge branch 'stable-5.12' into stable-5.13 45/188545/1
Matthias Sohn [Sat, 4 Dec 2021 19:58:31 +0000 (20:58 +0100)]
Merge branch 'stable-5.12' into stable-5.13

* stable-5.12:
  Add missing @since tags
  Add missing @since tag
  Add missing @since tags
  Remove unused import in ApacheSshTest
  Update maven plugins
  Ignore missing javadoc in test bundles
  storage: file: De-duplicate File.exists()+File.isFile()
  RefDirectory.scanRef: Re-use file existence check done in snapshot creation
  FileSnapshot: Lazy load file store attributes cache
  Update eclipse-jarsigner-plugin to 1.3.2
  Fix p2 repository URLs

Change-Id: I9c85b3a774480c4f4b56ecdf5015916349a0ddc0

2 years agoMerge branch 'stable-5.11' into stable-5.12 44/188544/1
Matthias Sohn [Sat, 4 Dec 2021 19:41:39 +0000 (20:41 +0100)]
Merge branch 'stable-5.11' into stable-5.12

* stable-5.11:
  Add missing @since tags
  Add missing @since tag
  Add missing @since tags
  Remove unused import in ApacheSshTest
  Update maven plugins
  Ignore missing javadoc in test bundles
  storage: file: De-duplicate File.exists()+File.isFile()
  RefDirectory.scanRef: Re-use file existence check done in snapshot creation
  FileSnapshot: Lazy load file store attributes cache
  Update eclipse-jarsigner-plugin to 1.3.2
  Fix p2 repository URLs

Change-Id: I72f39fbe82dd578d71aa2e3ceccebb39a25c4e00

2 years agoMerge branch 'stable-5.10' into stable-5.11 43/188543/1
Matthias Sohn [Sat, 4 Dec 2021 19:26:55 +0000 (20:26 +0100)]
Merge branch 'stable-5.10' into stable-5.11

* stable-5.10:
  Add missing @since tags
  Add missing @since tag
  Add missing @since tags
  Remove unused import in ApacheSshTest
  Update maven plugins
  Ignore missing javadoc in test bundles
  storage: file: De-duplicate File.exists()+File.isFile()
  RefDirectory.scanRef: Re-use file existence check done in snapshot creation
  FileSnapshot: Lazy load file store attributes cache
  Update eclipse-jarsigner-plugin to 1.3.2
  Fix p2 repository URLs

Change-Id: I84c73e11381c31566a12033db94e9afdcef5b705

2 years agoMerge branch 'stable-5.9' into stable-5.10 42/188542/1
Matthias Sohn [Sat, 4 Dec 2021 18:29:56 +0000 (19:29 +0100)]
Merge branch 'stable-5.9' into stable-5.10

* stable-5.9:
  Add missing @since tags
  Add missing @since tag
  Add missing @since tags
  Remove unused import in ApacheSshTest
  Update maven plugins
  Ignore missing javadoc in test bundles
  storage: file: De-duplicate File.exists()+File.isFile()
  RefDirectory.scanRef: Re-use file existence check done in snapshot creation
  FileSnapshot: Lazy load file store attributes cache
  Update eclipse-jarsigner-plugin to 1.3.2
  Fix p2 repository URLs

Change-Id: I971745b529ff903ea8bf9c3dbbc746fa09f41041

2 years agoMerge branch 'stable-5.8' into stable-5.9 41/188541/1
Matthias Sohn [Sat, 4 Dec 2021 18:14:56 +0000 (19:14 +0100)]
Merge branch 'stable-5.8' into stable-5.9

* stable-5.8:
  Add missing @since tags
  Add missing @since tag
  Add missing @since tags
  Remove unused import in ApacheSshTest
  Update maven plugins
  Ignore missing javadoc in test bundles
  storage: file: De-duplicate File.exists()+File.isFile()
  RefDirectory.scanRef: Re-use file existence check done in snapshot creation
  FileSnapshot: Lazy load file store attributes cache
  Update eclipse-jarsigner-plugin to 1.3.2
  Fix p2 repository URLs

Change-Id: I5e7c204c0e4c428df6f3b27ba1fc06326983f27c

2 years agoMerge branch 'stable-5.7' into stable-5.8 40/188540/1
Matthias Sohn [Sat, 4 Dec 2021 17:45:20 +0000 (18:45 +0100)]
Merge branch 'stable-5.7' into stable-5.8

* stable-5.7:
  Add missing @since tags
  Add missing @since tag
  Add missing @since tags
  Remove unused import in ApacheSshTest
  Update maven plugins
  Ignore missing javadoc in test bundles
  storage: file: De-duplicate File.exists()+File.isFile()
  RefDirectory.scanRef: Re-use file existence check done in snapshot
creation
  FileSnapshot: Lazy load file store attributes cache
  Update eclipse-jarsigner-plugin to 1.3.2
  Fix p2 repository URLs

Change-Id: Ibe46e8479b57a54591ad7bd3cc29bf4a5274e43d

2 years agoAdd missing @since tags 39/188539/1
Matthias Sohn [Sat, 4 Dec 2021 17:34:48 +0000 (18:34 +0100)]
Add missing @since tags

Change-Id: Iaeca1d6154c1383ebe27b723e8814e262328eb48

2 years agoMerge branch 'stable-5.6' into stable-5.7 38/188538/1
Matthias Sohn [Sat, 4 Dec 2021 17:12:11 +0000 (18:12 +0100)]
Merge branch 'stable-5.6' into stable-5.7

* stable-5.6:
  Add missing @since tag
  Add missing @since tags
  Remove unused import in ApacheSshTest
  Update maven plugins
  Ignore missing javadoc in test bundles
  storage: file: De-duplicate File.exists()+File.isFile()
  RefDirectory.scanRef: Re-use file existence check done in snapshot creation
  FileSnapshot: Lazy load file store attributes cache
  Update eclipse-jarsigner-plugin to 1.3.2
  Fix p2 repository URLs

Change-Id: I53e6cb4b3a34b32d964e486c1ff3d130eed6e406

2 years agoAdd missing @since tag 37/188537/1
Matthias Sohn [Sat, 4 Dec 2021 17:07:09 +0000 (18:07 +0100)]
Add missing @since tag

Change-Id: I665c860696b6981dfec87a60c4eb95060a02436f

2 years agoMerge branch 'stable-5.5' into stable-5.6 36/188536/1
Matthias Sohn [Sat, 4 Dec 2021 16:52:04 +0000 (17:52 +0100)]
Merge branch 'stable-5.5' into stable-5.6

* stable-5.5:
  Add missing @since tags
  Remove unused import in ApacheSshTest
  Update maven plugins
  Ignore missing javadoc in test bundles
  storage: file: De-duplicate File.exists()+File.isFile()
  RefDirectory.scanRef: Re-use file existence check done in snapshot creation
  FileSnapshot: Lazy load file store attributes cache
  Update eclipse-jarsigner-plugin to 1.3.2
  Fix p2 repository URLs

Change-Id: I007e92c12fde8d765b75f103e9d530aa0834b7d7

2 years agoAdd missing @since tags 35/188535/1
Matthias Sohn [Sat, 4 Dec 2021 16:47:48 +0000 (17:47 +0100)]
Add missing @since tags

Change-Id: Id21e626201363dd3d0358bd709765e7fd07a0cbf