]> source.dussan.org Git - jgit.git/log
jgit.git
22 months agocommitgraph package: fix exports/imports, add @since tag for new API 54/197554/1
Matthias Sohn [Thu, 8 Dec 2022 00:16:46 +0000 (01:16 +0100)]
commitgraph package: fix exports/imports, add @since tag for new API

Change-Id: I9175b1d796f91f5ba4e21d3418550ae451c054b0

22 months agoMerge "CommitGraph: implement commit-graph writer"
Ivan Frade [Tue, 6 Dec 2022 17:53:52 +0000 (12:53 -0500)]
Merge "CommitGraph: implement commit-graph writer"

22 months agoCommitGraph: implement commit-graph writer 32/182832/32
kylezhao [Tue, 6 Jul 2021 12:20:14 +0000 (20:20 +0800)]
CommitGraph: implement commit-graph writer

Teach JGit to write a commit-graph formatted file by walking commit
graph from specified commit objects.

See: https://git-scm.com/docs/commit-graph-format/2.21.0

Bug: 574368
Change-Id: I34f9f28f8729080c275f86215ebf30b2d05af41d
Signed-off-by: kylezhao <kylezhao@tencent.com>
22 months ago[releng] bump japicmp base version 28/197428/1
Thomas Wolf [Wed, 30 Nov 2022 23:03:50 +0000 (00:03 +0100)]
[releng] bump japicmp base version

Bump the japicmp base version to 6.4.0.202211300538-r. (Up from 6.2.0.
We forgot to bump in the 6.4.0 release cycle.)

Change-Id: Ied39865563fb57f5ee9059241449e5e101e75d86
Signed-off-by: Thomas Wolf <twolf@apache.org>
22 months agoMerge branch 'stable-6.4' 10/197410/1
Matthias Sohn [Wed, 30 Nov 2022 17:15:52 +0000 (18:15 +0100)]
Merge branch 'stable-6.4'

* stable-6.4:
  Prepare 6.4.1-SNAPSHOT builds
  JGit v6.4.0.202211300538-r
  Fix crashes on rare combination of file names

Change-Id: I9b5c5f408d1d45868c138c15675346a6693ab998

22 months agoPrepare 6.4.1-SNAPSHOT builds 03/197403/1
Matthias Sohn [Wed, 30 Nov 2022 14:41:41 +0000 (15:41 +0100)]
Prepare 6.4.1-SNAPSHOT builds

Change-Id: I860bfde113c05015c41304c4a77c44c224bd0923

22 months agoJGit v6.4.0.202211300538-r 93/197393/1 v6.4.0.202211300538-r
Matthias Sohn [Wed, 30 Nov 2022 10:38:12 +0000 (11:38 +0100)]
JGit v6.4.0.202211300538-r

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

22 months agoFix crashes on rare combination of file names 60/197360/1
Dmitrii Filippov [Mon, 27 Jun 2022 18:03:53 +0000 (20:03 +0200)]
Fix crashes on rare combination of file names

The NameConflictTreeWalk class is used in merge for iterating over
entries in commits. The class uses a separate iterator for each
commit's tree. In rare cases it can incorrectly report the same entry
twice. As a result, duplicated entries are added to the merge result
and later jgit throws an exception when it tries to process merge
result.

The problem appears only when there is a directory-file conflict for
the last item in trees. Example from the bug:
Commit 1:
* subtree - file
* subtree-0 - file
Commit 2:
* subtree - directory
* subtree-0 - file
Here the names are ordered like this:
"subtree" file <"subtree-0" file < "subtree" directory.

The NameConflictTreeWalk handles similar cases correctly if there are
other files after subtree... in commits - this is processed in the
AbstractTreeIterator.min function. Existing code has a special
optimization for the case, when all trees are pointed to the same
entry name - it skips additional checks. However, this optimization
incorrectly skips checks if one of trees reached the end.

The fix processes a situation when some trees reached the end, while
others are still point to an entry.

bug: 535919
Change-Id: I62fde3dd89779fac282479c093400448b4ac5c86

22 months agoMerge "Fix crashes on rare combination of file names"
Han-Wen NIenhuys [Mon, 28 Nov 2022 14:34:46 +0000 (09:34 -0500)]
Merge "Fix crashes on rare combination of file names"

22 months agoPrepare 6.5.0-SNAPSHOT builds 67/197267/1
Matthias Sohn [Wed, 23 Nov 2022 18:09:33 +0000 (19:09 +0100)]
Prepare 6.5.0-SNAPSHOT builds

Change-Id: I4238b6181e96e22e540cf34802a332f868cb6dfb

22 months agoMerge branch 'stable-6.4' 66/197266/1
Matthias Sohn [Wed, 23 Nov 2022 18:08:58 +0000 (19:08 +0100)]
Merge branch 'stable-6.4'

* stable-6.4:
  Prepare 6.4.0-SNAPSHOT build
  JGit v6.4.0.202211231055-rc1

Change-Id: I5bf49cb31d8c401e8f8f12a69d96ac8b42ff3605

22 months agoPrepare 6.4.0-SNAPSHOT build 55/197255/1
Matthias Sohn [Wed, 23 Nov 2022 16:10:33 +0000 (17:10 +0100)]
Prepare 6.4.0-SNAPSHOT build

Change-Id: I41c4f73472bb47d8f9d2d117d17e11bba4802928

22 months agoJGit v6.4.0.202211231055-rc1 53/197253/1 v6.4.0.202211231055-rc1
Matthias Sohn [Wed, 23 Nov 2022 15:56:09 +0000 (16:56 +0100)]
JGit v6.4.0.202211231055-rc1

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

22 months agoMerge branch 'master' into stable-6.4 52/197252/1
Matthias Sohn [Wed, 23 Nov 2022 15:54:34 +0000 (16:54 +0100)]
Merge branch 'master' into stable-6.4

* master:
  [pgm] Add options --name-only, --name-status to diff, log, show
  Update Orbit to R20221123021534 for 2022-12
  RBE: Update toolchain with bazel-toolchains 5.1.2 release
  SshTestGitServer: : ensure UploadPack is closed to fix resource leak
  UploadPackTest: ensure UploadPack is closed to fix resource leak
  [pgm] Ensure UploadPack is closed to fix resource leak
  UploadPackServlet#doPost use try-with-resource to ensure up is closed
  Fix warnings in PatchApplierTest
  Fix boxing warnings in TransportTest
  Silence warnings about unclosed BasePackPushConnection
  Fix warning about non-externalized String
  Remove unused imports
  Suppress non-externalized String warnings
  Remove unused API problem filters
  Silence API errors
  Silence API errors
  Silence API warnings
  Add 4.26 target platform
  Use "releases" repository for 4.25 target platform
  Update Apache Mina SSHD to 2.9.2
  Update Orbit to S20221118032057
  DfsBlockCache: Report IndexEventConsumer metrics for reverse indexes.
  DfsStreamKey: Replace ForReverseIndex to separate metrics.
  RawText.isBinary(): handle complete buffer correctly
  PackExt: Add a reverse index extension.

Change-Id: Ia41a2b0662bdb174e05a1adba6502191ef5ce4c5

22 months ago[pgm] Add options --name-only, --name-status to diff, log, show 16/197116/6
alerthak [Sat, 19 Nov 2022 02:56:02 +0000 (05:56 +0300)]
[pgm] Add options --name-only, --name-status to diff, log, show

Change-Id: Ib218bd2ccbd7990feca4c35d8c8dc34d4a8291e6

22 months agoUpdate Orbit to R20221123021534 for 2022-12 37/197237/1
Matthias Sohn [Wed, 23 Nov 2022 09:32:51 +0000 (10:32 +0100)]
Update Orbit to R20221123021534 for 2022-12

Change-Id: I9de11cc198ce3926d5233c4e30dc74f36674d3b5

22 months agoRBE: Update toolchain with bazel-toolchains 5.1.2 release 77/196877/2
David Ostrovsky [Fri, 11 Nov 2022 10:18:38 +0000 (11:18 +0100)]
RBE: Update toolchain with bazel-toolchains 5.1.2 release

Due to this platform style migration: [1] the RBE toolchain needs to be
updated to use the latest rbe_config_gen from bazel-toolchains (at least
version 5.1.2 so that it contains: [2]).

This change makes RBE build forwards compatible so that Bazel could be
updated to the upcoming major 6.0 release.

[1] https://github.com/bazelbuild/bazel/issues/8622
[2] https://github.com/bazelbuild/bazel-toolchains/commit/8c717f8258cd5f6c7a45b97d974292755852b658

Change-Id: Ia3a108fa05b1d52cd2018ba901ffd4c9e55ae8ab

22 months agoSshTestGitServer: : ensure UploadPack is closed to fix resource leak 54/197154/2
Matthias Sohn [Sun, 20 Nov 2022 20:33:17 +0000 (21:33 +0100)]
SshTestGitServer: : ensure UploadPack is closed to fix resource leak

Change-Id: Ib766f1d56b3ca7940c593ebfe0ac68fc5028a11c

22 months agoUploadPackTest: ensure UploadPack is closed to fix resource leak 53/197153/2
Matthias Sohn [Sun, 20 Nov 2022 20:24:00 +0000 (21:24 +0100)]
UploadPackTest: ensure UploadPack is closed to fix resource leak

Change-Id: I4c8cf6041b4011934d338138d4531d190fdd6abb

22 months ago[pgm] Ensure UploadPack is closed to fix resource leak 52/197152/2
Matthias Sohn [Sun, 20 Nov 2022 20:21:26 +0000 (21:21 +0100)]
[pgm] Ensure UploadPack is closed to fix resource leak

Change-Id: I40da4b331012dd1c6f4b497e46c973fd776b737f

22 months agoUploadPackServlet#doPost use try-with-resource to ensure up is closed 51/197151/2
Matthias Sohn [Sun, 20 Nov 2022 20:13:50 +0000 (21:13 +0100)]
UploadPackServlet#doPost use try-with-resource to ensure up is closed

Change-Id: Iadbf81f183bb94f3b00b9940f065586b13e85c95

22 months agoFix warnings in PatchApplierTest 50/197150/1
Matthias Sohn [Sun, 20 Nov 2022 19:41:20 +0000 (20:41 +0100)]
Fix warnings in PatchApplierTest

- don't use final for method parameters
- fix hiding member warnigns

Change-Id: I73c386f669918d3291ee3380024c018483aa3c97

22 months agoFix boxing warnings in TransportTest 49/197149/1
Matthias Sohn [Sun, 20 Nov 2022 19:34:57 +0000 (20:34 +0100)]
Fix boxing warnings in TransportTest

Change-Id: I7e6dc845b89899cff262fab77c3977dbef5eea02

22 months agoSilence warnings about unclosed BasePackPushConnection 48/197148/1
Matthias Sohn [Sun, 20 Nov 2022 19:32:37 +0000 (20:32 +0100)]
Silence warnings about unclosed BasePackPushConnection

Change-Id: If52e8462e6222dd58d1004dd5ac174a27d96d098

22 months agoFix warning about non-externalized String 47/197147/1
Matthias Sohn [Sun, 20 Nov 2022 19:30:45 +0000 (20:30 +0100)]
Fix warning about non-externalized String

Change-Id: I00b2132eac6d6ad2701d3f8151eb8c80ad6d679d

22 months agoMerge branch 'stable-6.3' 46/197146/1
Matthias Sohn [Sun, 20 Nov 2022 19:24:14 +0000 (20:24 +0100)]
Merge branch 'stable-6.3'

* stable-6.3:
  Remove unused imports
  Suppress non-externalized String warnings
  Remove unused API problem filters
  Silence API errors
  Silence API errors
  Silence API warnings

Change-Id: I6778c8266bc7e918c943dcabf23aa230f4e998d5

22 months agoMerge branch 'stable-6.2' into stable-6.3 43/197143/1
Matthias Sohn [Sun, 20 Nov 2022 19:22:24 +0000 (20:22 +0100)]
Merge branch 'stable-6.2' into stable-6.3

* stable-6.2:
  Remove unused imports
  Suppress non-externalized String warnings
  Remove unused API problem filters
  Silence API errors
  Silence API errors
  Silence API warnings

Change-Id: I71aa9f890c5eb05849ad16a00b9974da5e51171e

22 months agoRemove unused imports 42/197142/1
Matthias Sohn [Sun, 20 Nov 2022 19:18:01 +0000 (20:18 +0100)]
Remove unused imports

Change-Id: I57a3ae0a8608a517d9cc5cc27cee136f9faeb810

22 months agoSuppress non-externalized String warnings 41/197141/1
Matthias Sohn [Sun, 20 Nov 2022 19:16:28 +0000 (20:16 +0100)]
Suppress non-externalized String warnings

Change-Id: I95c61bd906bd3f7cdea9581e0ffa92ec607c6140

22 months agoRemove unused API problem filters 40/197140/1
Matthias Sohn [Sun, 20 Nov 2022 19:14:20 +0000 (20:14 +0100)]
Remove unused API problem filters

Change-Id: I890716bc052dcce2ce136040035b442247c08332

22 months agoMerge branch 'stable-6.1' into stable-6.2 39/197139/1
Matthias Sohn [Sun, 20 Nov 2022 19:10:37 +0000 (20:10 +0100)]
Merge branch 'stable-6.1' into stable-6.2

* stable-6.1:
  Silence API errors
  Silence API errors
  Silence API warnings

Change-Id: Id3efa1b32710661cde63e93c5b8832785a805415

22 months agoSilence API errors 38/197138/1
Matthias Sohn [Sun, 20 Nov 2022 19:09:02 +0000 (20:09 +0100)]
Silence API errors

Change-Id: I07c42fe9417edb0570dd475a7e935112a878a93b

22 months agoMerge branch 'stable-6.0' into stable-6.1 37/197137/1
Matthias Sohn [Sun, 20 Nov 2022 19:08:42 +0000 (20:08 +0100)]
Merge branch 'stable-6.0' into stable-6.1

* stable-6.0:
  Silence API errors
  Silence API warnings

Change-Id: I2b8336652e60dec97666582cf9331c8505729473

22 months 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

22 months 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

22 months 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

22 months agoAdd 4.26 target platform 45/197145/1
Matthias Sohn [Sun, 20 Nov 2022 17:15:21 +0000 (18:15 +0100)]
Add 4.26 target platform

Change-Id: I569d0b432b5da175da091e37feecadc321d686a9

22 months agoUse "releases" repository for 4.25 target platform 44/197144/1
Matthias Sohn [Sun, 20 Nov 2022 17:15:09 +0000 (18:15 +0100)]
Use "releases" repository for 4.25 target platform

Change-Id: Ib8d33714c67de949b9574b4ec29c1ae99f75d419

22 months agoUpdate Apache Mina SSHD to 2.9.2 85/192885/4
Thomas Wolf [Mon, 25 Apr 2022 05:52:25 +0000 (07:52 +0200)]
Update Apache Mina SSHD to 2.9.2

Release notes for 2.9.2:
https://github.com/apache/mina-sshd/blob/master/docs/changes/2.9.2.md

Change-Id: I7809bcba1d45b76ab9dcc031f86beb2f69da3788
Signed-off-by: Thomas Wolf <twolf@apache.org>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
22 months agoMerge branch 'stable-6.4' 15/197115/1
Matthias Sohn [Fri, 18 Nov 2022 21:25:56 +0000 (22:25 +0100)]
Merge branch 'stable-6.4'

* stable-6.4:
  Prepare 6.4.0-SNAPSHOT builds
  JGit v6.4.0.202211160543-m3

Change-Id: I6a98ffb40d93422dc128328b8427ea740731b960

22 months agoUpdate Orbit to S20221118032057 14/197114/1
Matthias Sohn [Fri, 18 Nov 2022 21:09:04 +0000 (22:09 +0100)]
Update Orbit to S20221118032057

update
- com.jcraft.jsch to 0.1.55.v20221112-0806
- net.bytebuddy.byte-buddy to 1.12.18.v20221114-2102
- net.bytebuddy.byte-buddy-agent to 1.12.18.v20221114-2102
- org.apache.commons.codec to 1.14.0.v20221112-0806
- org.apache.httpcomponents.httpclient to 4.5.13.v20221112-0806
- org.slf4j.api to 1.7.30.v20221112-0806
- org.slf4j.binding.simple to 1.7.30.v20221112-0806

Change-Id: I4f29994c8a4374f6ace5c640397245c3c2ff4f53

22 months agoDfsBlockCache: Report IndexEventConsumer metrics for reverse indexes. 90/196890/3
Anna Papitto [Thu, 10 Nov 2022 22:49:27 +0000 (14:49 -0800)]
DfsBlockCache: Report IndexEventConsumer metrics for reverse indexes.

IndexEventConsumer metrics are reported per index PackExt and reverse
indexes did not have one, so they were not included.

Now that there is a REVERSE_INDEX PackExt, enable reporting
IndexEventConsumer metrics for reverse indexes.

Change-Id: Ia6a752f6eb8932a5b4ba45cc15cbc7e0786fd247
Signed-off-by: Anna Papitto <annapapitto@google.com>
22 months agoDfsStreamKey: Replace ForReverseIndex to separate metrics. 89/196889/3
Anna Papitto [Fri, 11 Nov 2022 18:44:37 +0000 (10:44 -0800)]
DfsStreamKey: Replace ForReverseIndex to separate metrics.

Keys used for identifying reverse indexes in the DfsBlockCache use a
custom subclass ForReverseIndex because there was no PackExt for them.
This conflates BlockCacheMetrics for reverse indexes with those for
packs, since the key falls back onto 0 when there is no extension.

Replace the custom ForReverseIndex with a DfsStreamKey usage to bring
keys for the new REVERSE_INDEX extension in line with INDEX and BITMAP
and separate reverse index and pack BlockCacheMetrics.

Change-Id: I305e2c16d2a8cb2a824855ea92e0c9a9b188fce5
Signed-off-by: Anna Papitto <annapapitto@google.com>
22 months agoMerge "PackExt: Add a reverse index extension."
Ivan Frade [Thu, 17 Nov 2022 17:38:10 +0000 (12:38 -0500)]
Merge "PackExt: Add a reverse index extension."

23 months agoPrepare 6.4.0-SNAPSHOT builds 66/197066/1
Matthias Sohn [Wed, 16 Nov 2022 23:06:09 +0000 (00:06 +0100)]
Prepare 6.4.0-SNAPSHOT builds

Change-Id: I0e915a1d32ff948e355f17181f4e5ed78ead42db

23 months agoRawText.isBinary(): handle complete buffer correctly 57/196557/2
Thomas Wolf [Mon, 31 Oct 2022 21:44:50 +0000 (22:44 +0100)]
RawText.isBinary(): handle complete buffer correctly

Make sure we always get consistent results, whether or not we have the
full data in the buffer.

Change-Id: Ieb379a0c375ad3dd352e63ac2f23bda6ef16c215
Signed-off-by: Thomas Wolf <twolf@apache.org>
23 months agoJGit v6.4.0.202211160543-m3 12/197012/1 v6.4.0.202211160543-m3
Matthias Sohn [Wed, 16 Nov 2022 10:43:19 +0000 (11:43 +0100)]
JGit v6.4.0.202211160543-m3

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

23 months agoMerge branch 'master' into stable-6.4 11/197011/1
Matthias Sohn [Wed, 16 Nov 2022 10:29:24 +0000 (11:29 +0100)]
Merge branch 'master' into stable-6.4

* master:
  [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
  Fix API breakage caused by extracting WorkTreeUpdater
  Update Orbit to S20221109014815
  Use replace instead of replaceAll in toCleanString
  Extract Exception -> HTTP status code mapping for reuse
  Don't handle internal git errors as an HTTP error
  Fix the path for JSchText.properties
  Fix Maven SHA1 for Bazel build
  UploadPack: Receive and parse client session-id
  TransferConfig: Move reading advertisesid setting into TransferConfig
  FirstWant: Parse client session-id if received.
  ReceivePack: Receive and parse client session-id.
  Ignore IllegalStateException if JVM is already shutting down
  Allow to perform PackedBatchRefUpdate without locking loose refs

Change-Id: Ib38376bb8fa4a64af93bf1ffb5883711eaa432d7

23 months agoMerge branch 'stable-6.3' 10/197010/1
Matthias Sohn [Wed, 16 Nov 2022 09:15:30 +0000 (10:15 +0100)]
Merge branch 'stable-6.3'

* stable-6.3:
  [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
  Fix API breakage caused by extracting WorkTreeUpdater
  Extract Exception -> HTTP status code mapping for reuse
  Don't handle internal git errors as an HTTP error
  Ignore IllegalStateException if JVM is already shutting down
  Allow to perform PackedBatchRefUpdate without locking loose refs

Change-Id: Ib58879be292c54a2a7f4936ac0986997985c822b

23 months agoMerge branch 'stable-6.2' into stable-6.3 08/197008/1
Matthias Sohn [Wed, 16 Nov 2022 09:14:13 +0000 (10:14 +0100)]
Merge branch 'stable-6.2' into stable-6.3

* stable-6.2:
  Extract Exception -> HTTP status code mapping for reuse
  Don't handle internal git errors as an HTTP error
  Allow to perform PackedBatchRefUpdate without locking loose refs

Change-Id: I562be0802efa231023c5f10e6461339b2d7fbacf

23 months agoMerge branch 'stable-6.1' into stable-6.2 07/197007/1
Matthias Sohn [Wed, 16 Nov 2022 09:13:20 +0000 (10:13 +0100)]
Merge branch 'stable-6.1' into stable-6.2

* stable-6.1:
  Extract Exception -> HTTP status code mapping for reuse
  Don't handle internal git errors as an HTTP error
  Allow to perform PackedBatchRefUpdate without locking loose refs

Change-Id: Icb321779184d20f3871e236fda1a3acba605a6da

23 months agoMerge "Merge branch 'stable-6.0' into stable-6.1" into stable-6.1
Matthias Sohn [Wed, 16 Nov 2022 09:10:43 +0000 (04:10 -0500)]
Merge "Merge branch 'stable-6.0' into stable-6.1" into stable-6.1

23 months agoMerge branch 'stable-6.2' into stable-6.3 04/197004/1
Matthias Sohn [Wed, 16 Nov 2022 08:56:08 +0000 (09:56 +0100)]
Merge branch 'stable-6.2' into stable-6.3

* stable-6.2:
  [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: I9c1576011c11b4ff8f453d18d9e786cee59860fa

23 months agoMerge branch 'stable-6.1' into stable-6.2 03/197003/1
Matthias Sohn [Wed, 16 Nov 2022 08:55:22 +0000 (09:55 +0100)]
Merge branch 'stable-6.1' into stable-6.2

* stable-6.1:
  [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: Ie433c46a01a0f33848d54ecf99b30a44ca01e286

23 months agoMerge branch 'stable-6.0' into stable-6.1 02/197002/1
Matthias Sohn [Wed, 16 Nov 2022 08:54:28 +0000 (09:54 +0100)]
Merge branch 'stable-6.0' into stable-6.1

* stable-6.0:
  [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: I176419026c3f4fdd8ebd34c61468c1ec3482ff45

23 months agoPackExt: Add a reverse index extension. 88/196888/2
Anna Papitto [Thu, 10 Nov 2022 22:45:46 +0000 (14:45 -0800)]
PackExt: Add a reverse index extension.

There is no reverse index PackExt because the reverse index is not currently
written to a file. This prevents fine-grained performance reporting for reverse
indexes, which will be useful when introducing a reverse index file and
observing performance changes.

Add a reverse index extension that matches the one in cgit
(https://github.com/git/git/blob/9bf691b78cf906751e65d65ba0c6ffdcd9a5a12c/Documentation/gitformat-pack.txt#L302)
in preparation for adding a reverse index file while observing
performance before and after.

Change-Id: Iee53f1e01cf645a3c468892fcf97c8444f9a784a
Signed-off-by: Anna Papitto <annapapitto@google.com>
23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months 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

23 months agoFix API breakage caused by extracting WorkTreeUpdater 10/196910/2
Matthias Sohn [Mon, 14 Nov 2022 09:45:58 +0000 (10:45 +0100)]
Fix API breakage caused by extracting WorkTreeUpdater

448052dc2e made WorkTreeUpdater package visible which breaks API for
subclasses of ResolveMerger since they cannot access WorkTreeUpdater.

Fix this by moving WorkTreeUpdater into ResolveMerger as a nested class
and mark it protected so that subclasses can use it.

Bug: 581049
Change-Id: I5a2c4953f8514dc0a1b8041c8e069d28370bb2eb

23 months agoUpdate Orbit to S20221109014815 20/196920/1
Matthias Sohn [Mon, 14 Nov 2022 13:34:30 +0000 (14:34 +0100)]
Update Orbit to S20221109014815

and update
- com.sun.jna to 5.12.1.v20221103-2317
- com.sun.jna.platform to 5.12.1.v20221103-2317
- org.bouncycastle.bcpg to 1.72.0.v20221013-1810
- org.bouncycastle.bcpkix to 1.72.0.v20221013-1810
- org.bouncycastle.bcprov to 1.72.0.v20221013-1810
- org.bouncycastle.bcutil to 1.72.0.v20221013-1810
- org.mockito.mockito-core to 4.8.1.v20221103-2317
- org.objenesis to 3.3.0.v20221103-2317

Change-Id: If00094d23e51d5f66928f83c1334aa6b18b98dfe

23 months agoUse replace instead of replaceAll in toCleanString 59/196659/2
Eryk Szymanski [Tue, 8 Nov 2022 17:22:50 +0000 (18:22 +0100)]
Use replace instead of replaceAll in toCleanString

This is from SonarLint (rule.java:S4348)
Regex patterns should not be created needlessly:

When String::replaceAll is used, the first argument should be a real
regular expression. If it’s not the case, String::replace does exactly
the same thing as String::replaceAll without the performance drawback of
the regex.

Change-Id: I00ba967ff4a27eeeb6fccf9373f6df2c94ecd823

23 months agoExtract Exception -> HTTP status code mapping for reuse 52/196852/3
Sven Selberg [Wed, 9 Nov 2022 17:28:45 +0000 (18:28 +0100)]
Extract Exception -> HTTP status code mapping for reuse

Extract private static method UploadPackServlet#statusCodeForThrowable
to a public static method in the UploadPackErrorHandler interface so
that implementers of this interface can reuse the default mapping.

Change-Id: Ie4a0a006b0148d5b828d610c55d19ce407aab055

23 months agoDon't handle internal git errors as an HTTP error 49/196849/4
Sven Selberg [Wed, 9 Nov 2022 15:58:17 +0000 (16:58 +0100)]
Don't handle internal git errors as an HTTP error

The fix that fixed the propagation of error-codes:
  8984e1f66 HTTP Smart: set correct HTTP status on error [1]
made some faulty assumptions.

"Wants not valid", can be an intermittent git error and the HTTP
response should be 200 and not 400 since the request isn't necessary
faulty.

[1] https://git.eclipse.org/r/c/jgit/jgit/+/192677

Bug: 579676
Change-Id: I461bc78ff6e450636811ece50d21c57a2a7f2ae3

23 months agoFix the path for JSchText.properties 58/196558/2
Sebastian Schuberth [Wed, 26 Oct 2022 20:28:46 +0000 (22:28 +0200)]
Fix the path for JSchText.properties

The paths needs to include "ssh" to match the class's package name. This
resolves

Caused by: TransportException: ssh://git@git.xx.com/xx/xx.git: remote hung up unexpectedly
    Caused by: TranslationBundleLoadingException: Loading of translation bundle failed for [org.eclipse.jgit.internal.transport.ssh.jsch.JSchText, en_US]
        Caused by: MissingResourceException: Can't find bundle for base name org.eclipse.jgit.internal.transport.ssh.jsch.JSchText, locale en_US

Also see [1] for reference.

[1]: https://github.com/oss-review-toolkit/ort/issues/5894#issuecomment-1292100687

Change-Id: Ie27b9fc1cdd1d83f8123821be42e65da59ecf49d
Signed-off-by: Sebastian Schuberth <opensource@schuberth.dev>
23 months agoMerge "UploadPack: Receive and parse client session-id"
Ivan Frade [Fri, 4 Nov 2022 21:56:15 +0000 (17:56 -0400)]
Merge "UploadPack: Receive and parse client session-id"

23 months agoMerge "TransferConfig: Move reading advertisesid setting into TransferConfig"
Ivan Frade [Thu, 3 Nov 2022 20:24:26 +0000 (16:24 -0400)]
Merge "TransferConfig: Move reading advertisesid setting into TransferConfig"

23 months agoMerge "FirstWant: Parse client session-id if received."
Ivan Frade [Thu, 3 Nov 2022 20:23:34 +0000 (16:23 -0400)]
Merge "FirstWant: Parse client session-id if received."

23 months agoFix crashes on rare combination of file names 11/194411/31
Dmitrii Filippov [Mon, 27 Jun 2022 18:03:53 +0000 (20:03 +0200)]
Fix crashes on rare combination of file names

The NameConflictTreeWalk class is used in merge for iterating over
entries in commits. The class uses a separate iterator for each
commit's tree. In rare cases it can incorrectly report the same entry
twice. As a result, duplicated entries are added to the merge result
and later jgit throws an exception when it tries to process merge
result.

The problem appears only when there is a directory-file conflict for
the last item in trees. Example from the bug:
Commit 1:
* subtree - file
* subtree-0 - file
Commit 2:
* subtree - directory
* subtree-0 - file
Here the names are ordered like this:
"subtree" file <"subtree-0" file < "subtree" directory.

The NameConflictTreeWalk handles similar cases correctly if there are
other files after subtree... in commits - this is processed in the
AbstractTreeIterator.min function. Existing code has a special
optimization for the case, when all trees are pointed to the same
entry name - it skips additional checks. However, this optimization
incorrectly skips checks if one of trees reached the end.

The fix processes a situation when some trees reached the end, while
others are still point to an entry.

bug: 535919
Change-Id: I62fde3dd89779fac282479c093400448b4ac5c86

23 months agoFix Maven SHA1 for Bazel build 95/196595/4
Patrick Hiesel [Thu, 3 Nov 2022 11:59:37 +0000 (12:59 +0100)]
Fix Maven SHA1 for Bazel build

The httpcore SHA was wrong resulting in a build breakage.

With this change, `bazelisk build all` succeeds.

Change-Id: I111ab450db2db2328e7d4fe849e29f55e4897543

23 months agoUploadPack: Receive and parse client session-id 97/196497/12
Josh Brown [Tue, 1 Nov 2022 20:51:48 +0000 (20:51 +0000)]
UploadPack: Receive and parse client session-id

Before this change JGit did not support the session-id capability
implemented by native Git in UploadPack. This change implements
advertising the capability from the server and parsing the session-id
received from the client during an UploadPack operation.

Enable the transfer.advertisesid config setting to advertise the
capability from the server. The client may send a session-id capability
in response. If received, the value from this is parsed and available
via the getClientSID method on the UploadPack object.

This change does not add the capability to send a session-id from the
JGit client.

https://git-scm.com/docs/gitprotocol-capabilities#_session_idsession_id

Change-Id: Ib1b6929ff1b3a4528e767925b5e5c44b5d18182f
Signed-off-by: Josh Brown <sjoshbrown@google.com>
23 months agoTransferConfig: Move reading advertisesid setting into TransferConfig 66/196566/6
Josh Brown [Tue, 1 Nov 2022 19:00:07 +0000 (19:00 +0000)]
TransferConfig: Move reading advertisesid setting into TransferConfig

The config setting to enable advertising the session-id capability is
currently read in the ReceivePack class. This change moves it to a
common location in the TransferConfig class so that it can be reused
in other places like UploadPack. TransferConfig is also a more logical
place for the setting as it resides in the `transfer` config section.

Set the transfer.advertisesid setting to true to send the session-id
capability to the client.

Change-Id: If68ecb5e68b59f5c452a7992d02e3688b0a86747
Signed-off-by: Josh Brown <sjoshbrown@google.com>
23 months agoFirstWant: Parse client session-id if received. 65/196565/7
Josh Brown [Tue, 1 Nov 2022 18:16:44 +0000 (18:16 +0000)]
FirstWant: Parse client session-id if received.

In protocol V0 the client capabilities are appended to the first line.
Parsing session-id is currently only supported during a ReceivePack
operation. This change will parse the client session-id capability if
it has been sent by the client.

If the server sends the session-id capability to the client. The client
may respond with a session ID of its own. FirstWant.fromLine will now
parse the ID and make it available via the getClientSID method.

This change does not add support to send the session-id capability from
the server. The change is necessary to support session-id in UploadPack.

Change-Id: Id3fe44fdf9a72984ee3de9cf40cc4e71d434df4a
Signed-off-by: Josh Brown <sjoshbrown@google.com>
23 months agoMerge branch 'stable-6.4' 46/196546/1
Matthias Sohn [Thu, 27 Oct 2022 21:42:01 +0000 (23:42 +0200)]
Merge branch 'stable-6.4'

* stable-6.4:
  Prepare 6.4.0-SNAPSHOT builds
  JGit v6.4.0.202210260700-m2

Change-Id: I3839c8b57912f7678e1a9f9f06349bee321ff175

23 months agoReceivePack: Receive and parse client session-id. 23/196323/14
Josh Brown [Tue, 11 Oct 2022 21:56:09 +0000 (14:56 -0700)]
ReceivePack: Receive and parse client session-id.

Before this change JGit did not support the session-id capability
implemented by native Git. This change implements advertising the
capability from the server and parsing the session-id received from
the client during a ReceivePack operation.

Enable the transfer.advertisesid config setting to advertise the
capability from the server. The client may send a session-id capability
in response. If received, the value from this is parsed and available
via the getClientSID method on the ReceivePack object. All capabilities
in the form `capability=value` are now split into key value pairs at the
first `=` character. This change replaces specific handling for the
agent capability.

This change does not add advertisement or parsing to UploadPack. This
change also does not add the ability to send a session ID from the JGit
client.

https://git-scm.com/docs/protocol-v2/2.33.0#_session_idsession_id

Change-Id: I56fb115e843b11b27e128c4ac427b05d5ec129d0
Signed-off-by: Josh Brown <sjoshbrown@google.com>
23 months 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

23 months agoPrepare 6.4.0-SNAPSHOT builds 17/196517/1
Matthias Sohn [Wed, 26 Oct 2022 15:42:04 +0000 (17:42 +0200)]
Prepare 6.4.0-SNAPSHOT builds

Change-Id: If4da93f775bcbe923e400ebb9315a34485646b40

23 months agoAllow to perform PackedBatchRefUpdate without locking loose refs 10/196510/3
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

23 months agoJGit v6.4.0.202210260700-m2 09/196509/1 v6.4.0.202210260700-m2
Matthias Sohn [Wed, 26 Oct 2022 11:01:14 +0000 (13:01 +0200)]
JGit v6.4.0.202210260700-m2

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

23 months agoPushCommand: allow users to disable use of bitmaps for push 05/194705/3
kylezhao [Thu, 14 Jul 2022 03:23:03 +0000 (11:23 +0800)]
PushCommand: allow users to disable use of bitmaps for push

Reachability bitmaps are designed to speed up the "counting objects"
phase of generating a pack during a clone or fetch. They are not
optimized for Git clients sending a small topic branch via "git push".
In some cases (see [1]), using reachability bitmaps during "git push"
can cause significant performance regressions.

Add PushCommand#setUseBitmaps(boolean) to allow users to tell "git push"
not to use bitmaps.

[1]: https://lore.kernel.org/git/87zhoz8b9o.fsf@evledraar.gmail.com/

Change-Id: I7fb7d26084ec63ddfa7249cf58abb85929b30e56
Signed-off-by: kylezhao <kylezhao@tencent.com>
23 months agoI/O redirection for the pre-push hook 52/196452/2
Thomas Wolf [Thu, 20 Oct 2022 21:25:38 +0000 (23:25 +0200)]
I/O redirection for the pre-push hook

Fix and complete the implementation of calling the pre-push hook.
Add the missing error stream redirect, and add the missing setters
in Transport and in PushCommand. In Transport, delay setting up a
PrePushHook such that it happens only on a push. Previously, the
hook was set up also for fetches.

Bug: 549246
Change-Id: I64a576dfc6b139426f05d9ea6654027ab805734e
Signed-off-by: Thomas Wolf <twolf@apache.org>
23 months agoPackParser: populate full size of the PackedObjectInfos 82/191082/7
Ivan Frade [Thu, 16 Dec 2021 21:08:33 +0000 (13:08 -0800)]
PackParser: populate full size of the PackedObjectInfos

We need the full size of the objects to populate the object-size index
of a pack. This size is not always the one encoded in the object header
in the pack (e.g. for deltas).

Populate the full size of PackedObjectInfos in the PackParser, which is
invoked when receiving a pack e.g. in a push.

Change-Id: I102c20901aefb5e85047e2e526c0d733f82ff74b

23 months agoPackedObjectInfo: add the full size to the description 81/191081/7
Ivan Frade [Wed, 15 Dec 2021 00:24:26 +0000 (16:24 -0800)]
PackedObjectInfo: add the full size to the description

So we can create a size index later.

Change-Id: I9db47ced929fbf045fc37bead6449bbf5484d308

23 months agoObjectReader: New #isNotLargerThan method 80/191080/6
Ivan Frade [Sat, 4 Dec 2021 00:11:10 +0000 (16:11 -0800)]
ObjectReader: New #isNotLargerThan method

Partial clones filter the objects to send by size calling
ObjectReader#getObjectSize per object. This method reads the object from
storage to get the size, which can be expensive.

Offer a #isNotLargerThan method. The default implementation reads the
object, but subclasses can override it with more efficient lookups (e.g.
adding an index).

isNotLargerThan gives implementors more options to optimize than
getObjectIndex (e.g. can be implemented storing only object over certain
size).

Change-Id: Iefd4b1370cb9144f15cc0391286aeeb365e6ea87

2 years agoFail build if there are license issues with dependencies 33/196333/4
Matthias Sohn [Wed, 12 Oct 2022 21:33:14 +0000 (23:33 +0200)]
Fail build if there are license issues with dependencies

Configure the dash license-tool-plugin to fail the build if there are
license issues with build dependencies. This plugin will generate a list
of all build dependencies and their license to target/dash/summary.

Delete the checked-in dependency list DEPENDENCIES since the build now
always generates it to target/dash/summary.

See https://github.com/eclipse/dash-licenses#example-maven-plugin

Change-Id: I0c2bf8eb166d85b840d42afc61750b4a083b7659

2 years agoUpdate org.apache.httpcomponents:httpcore to 4.4.15 94/196294/1
Matthias Sohn [Mon, 10 Oct 2022 15:54:18 +0000 (17:54 +0200)]
Update org.apache.httpcomponents:httpcore to 4.4.15

In target platform we updated to this version already earlier.

Change-Id: Iefa06bac2c007810936a5675482addd99f8f9cd3

2 years agoUpdate Orbit to S20220927175816 81/196281/1
Matthias Sohn [Sun, 9 Oct 2022 23:20:07 +0000 (01:20 +0200)]
Update Orbit to S20220927175816

and
- com.google.code.gson:gson to 2.9.1

Change-Id: Ia9e4fdc557478d3ca37b0169be93711791952068

2 years agoUpdate JMH to 1.35 80/196280/1
Matthias Sohn [Sun, 9 Oct 2022 22:50:25 +0000 (00:50 +0200)]
Update JMH to 1.35

Update
- org.openjdk.jmh:jmh-core to 1.35
- org.openjdk.jmh:jmh-generator-annprocess to 1.35

Change-Id: Iaebae71a9b49b2116da9d2614e6ae1ddbd692aab

2 years agoUpdate org.eclipse.jdt:ecj to 3.31.0 79/196279/1
Matthias Sohn [Sun, 9 Oct 2022 22:47:15 +0000 (00:47 +0200)]
Update org.eclipse.jdt:ecj to 3.31.0

Change-Id: I410f762de37e5273916d4850157744f0a9be1564

2 years agoUpdate plexus compiler to 2.12.1 78/196278/1
Matthias Sohn [Sun, 9 Oct 2022 22:45:13 +0000 (00:45 +0200)]
Update plexus compiler to 2.12.1

Change-Id: Id55b46b7546c830a90cbdf794bb237abf2afbbe4

2 years agoUpdate org.apache.maven.wagon:wagon-ssh to 3.5.2 77/196277/1
Matthias Sohn [Sun, 9 Oct 2022 22:43:35 +0000 (00:43 +0200)]
Update org.apache.maven.wagon:wagon-ssh to 3.5.2

Change-Id: If80cb8e81a5ff8888812626d0658106dec5303ab

2 years agopgm/BUILD: Add dependencty to java EWAH 22/196122/3
Ivan Frade [Thu, 29 Sep 2022 18:24:29 +0000 (11:24 -0700)]
pgm/BUILD: Add dependencty to java EWAH

A fetch to a locally run daemon triggers a runtime exception:

Listening on localhost/127.0.0.1:9418
java.lang.NoClassDefFoundError:
com/googlecode/javaewah/EWAHCompressedBitmap

Add javaEWAH in the deps of the PGM library.

To reproduce:

0. Assume a git repo in <dir-with-repos>/a-repo
1. Run daemon e.g.:
  $ bazel run //org.eclipse.jgit.pgm:jgit -- daemon --export-all=true
  --listen localhost --enable upload-pack <dir-with-repos>

2. Fetch:
  $ git clone git://0.0.0.0:9418/a-repo

Change-Id: I503f9fe45347a5891c3f3de0452b7f300b1e8206

2 years ago[sshd] Guard against numerical overflow 48/196148/1
Thomas Wolf [Sat, 1 Oct 2022 18:44:59 +0000 (20:44 +0200)]
[sshd] Guard against numerical overflow

Check the key length before adding; the addition might overflow.

Change-Id: Icde7c92a5bb267fdd869d5a1c0842967ab1a7fd9
Signed-off-by: Thomas Wolf <twolf@apache.org>
2 years agoMerge branch 'stable-6.3' 93/196093/1
Matthias Sohn [Wed, 28 Sep 2022 16:16:47 +0000 (18:16 +0200)]
Merge branch 'stable-6.3'

* stable-6.3:
  Remove unused imports

Change-Id: I4a92c5afb8f179798234eb772eb34879d41808af

2 years agoRemove unused imports 91/196091/1
Matthias Sohn [Wed, 28 Sep 2022 15:58:50 +0000 (17:58 +0200)]
Remove unused imports

Change-Id: Ib6f80a5f013d30a9b7a59cb05e3ee13aa46b28c8

2 years agoRemove unused API filters 92/196092/1
Matthias Sohn [Thu, 22 Sep 2022 14:34:36 +0000 (16:34 +0200)]
Remove unused API filters

Change-Id: Ief32f935c701842f03b173ee48465d7dcf7dfabd

2 years agoObjectDirectory: avoid using File.getCanonicalPath() 86/195186/8
Jörg Kubitz [Mon, 15 Aug 2022 09:05:04 +0000 (11:05 +0200)]
ObjectDirectory: avoid using File.getCanonicalPath()

On java 17 + Windows OS java.io.File.getCanonicalPath is a very slow
system call which uses most time during clone.

That is since JDK 12 the result of File.getCanonicalPath is not cached
anymore by default:
https://bugs.openjdk.java.net/browse/JDK-8207005

* Use toRealPath() to follow symbolic links also on windows.
* Cache the result.

Bug: 580568
Change-Id: I95f4f5b2babefd7210ee4740646230225ebf3788