]> source.dussan.org Git - jgit.git/log
jgit.git
3 years agoMerge branch 'stable-5.12' into stable-5.13 31/188031/1
Thomas Wolf [Tue, 23 Nov 2021 18:47:13 +0000 (19:47 +0100)]
Merge branch 'stable-5.12' into stable-5.13

* stable-5.12:
  Better git system config finding

Change-Id: Iebbae08b6bb6ef510ca07329df77223bc2128ec1
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoSet JSch global config values only if not set already 30/188030/1
Thomas Wolf [Tue, 19 Oct 2021 07:07:14 +0000 (09:07 +0200)]
Set JSch global config values only if not set already

Bug: 576604
Change-Id: I04415f07bf2023bc8435c097d1d3c65221d563f1
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
(cherry picked from commit f8b0c00e6a8f5628babff6dd37254a21589b6e44)

3 years agoMerge branch 'stable-5.11' into stable-5.12 29/188029/1
Thomas Wolf [Tue, 23 Nov 2021 18:46:10 +0000 (19:46 +0100)]
Merge branch 'stable-5.11' into stable-5.12

* stable-5.11:
  Better git system config finding

Change-Id: I47946b91658cb2e38709179b7a8513b1211431e4
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoMerge branch 'stable-5.10' into stable-5.11 28/188028/1
Thomas Wolf [Tue, 23 Nov 2021 18:44:58 +0000 (19:44 +0100)]
Merge branch 'stable-5.10' into stable-5.11

* stable-5.10:
  Better git system config finding

Change-Id: I460d855ea7878b279dbaffa6eb7ce5ca93f4c12c
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoMerge branch 'stable-5.9' into stable-5.10 27/188027/1
Thomas Wolf [Tue, 23 Nov 2021 18:43:35 +0000 (19:43 +0100)]
Merge branch 'stable-5.9' into stable-5.10

* stable-5.9:
  Better git system config finding

Change-Id: I1022d003e0d3b9d452abfed9ac49663d0a93c6e6
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoBetter git system config finding 24/188024/1
Thomas Wolf [Fri, 19 Nov 2021 18:15:46 +0000 (19:15 +0100)]
Better git system config finding

We've used "GIT_EDITOR=edit git config --system --edit" to determine
the location of the git system config for a long time. But git 2.34.0
always expects this command to have a tty, but there isn't one when
called from Java. If there isn't one, the Java process may get a
SIGTTOU from the child process and hangs.

Arguably it's a bug in C git 2.34.0 to unconditionally assume there
was a tty. But JGit needs a fix *now*, otherwise any application using
JGit will lock up if git 2.34.0 is installed on the machine.

Therefore, use a different approach if the C git found is 2.8.0 or
newer: parse the output of

  git config --system --show-origin --list -z

"--show-origin" exists since git 2.8.0; it prefixes the values with
the file name of the config file they come from, which is the system
config file for this command. (This works even if the first item in
the system config is an include.)

Bug: 577358
Change-Id: I3ef170ed3f488f63c3501468303119319b03575d
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
(cherry picked from commit 9446e62733da5005be1d5182f0dce759a3052d4a)

3 years agoMerge branch 'stable-5.12' into stable-5.13 92/187292/1
Matthias Sohn [Wed, 3 Nov 2021 22:18:21 +0000 (23:18 +0100)]
Merge branch 'stable-5.12' into stable-5.13

* stable-5.12:
  Fix target platforms

- jetty 9.4.43 moved to archive.eclipse.org
- use the final release p2 repo instead of staging for 2021-09

Change-Id: I35c1264b8e9c63874663141288dca03b47f263ed

3 years agoMerge branch 'stable-5.11' into stable-5.12 90/187290/1
Matthias Sohn [Wed, 3 Nov 2021 22:13:39 +0000 (23:13 +0100)]
Merge branch 'stable-5.11' into stable-5.12

* stable-5.11:
  Fix target platforms

- jetty 9.4.41 moved to archive.eclipse.org
- use the final release p2 repo instead of staging for 2021-06

Change-Id: I7a02b1fe271910dd82acf45242d8425aba2f52f9

3 years agoMerge branch 'stable-5.10' into stable-5.11 89/187289/1
Matthias Sohn [Wed, 3 Nov 2021 22:09:15 +0000 (23:09 +0100)]
Merge branch 'stable-5.10' into stable-5.11

* stable-5.10:
  Fix target platforms

- jetty 9.4.36 moved to archive.eclipse.org
- use the final release p2 repo instead of staging for 2021-03

Change-Id: I6ce2294bb150fedf8ded7fe6c1e23019d9c178d6

3 years agoMerge branch 'stable-5.9' into stable-5.10 88/187288/1
Matthias Sohn [Wed, 3 Nov 2021 22:01:44 +0000 (23:01 +0100)]
Merge branch 'stable-5.9' into stable-5.10

* stable-5.9:
  Fix target platforms

Change-Id: Ib1876923ba98252682f41a03877792fd22b418d6

3 years agoFix target platforms 87/187287/1
Matthias Sohn [Wed, 3 Nov 2021 21:40:48 +0000 (22:40 +0100)]
Fix target platforms

- jetty 9.4.30 moved to archive.eclipse.org
- use the final release p2 repo instead of staging for 2020-09

Change-Id: Ia096200e5983f0022c6c0da4dae035433e852807

3 years agoMerge branch 'stable-5.12' into stable-5.13 56/186556/1
Matthias Sohn [Fri, 15 Oct 2021 20:58:21 +0000 (22:58 +0200)]
Merge branch 'stable-5.12' into stable-5.13

* stable-5.12:
  Fix missing peel-part in lsRefsV2 for loose annotated tags
  Fix RevWalk.getMergedInto() ignores annotated tags
  Optimize RevWalk.getMergedInto()
  reftable: drop code for truncated reads
  reftable: pass on invalid object ID in conversion
  Update eclipse-jarsigner-plugin to 1.3.2
  Fix running benchmarks from bazel
  Update eclipse-jarsigner-plugin to 1.3.2

Change-Id: Ie5da8d2d07f39ab5aaeca560040637635d4eb04c

3 years agoMerge branch 'stable-5.11' into stable-5.12 55/186555/1
Matthias Sohn [Fri, 15 Oct 2021 20:48:01 +0000 (22:48 +0200)]
Merge branch 'stable-5.11' into stable-5.12

* stable-5.11:
  Fix missing peel-part in lsRefsV2 for loose annotated tags
  reftable: drop code for truncated reads
  reftable: pass on invalid object ID in conversion
  Update eclipse-jarsigner-plugin to 1.3.2
  Fix running benchmarks from bazel
  Update eclipse-jarsigner-plugin to 1.3.2

Change-Id: I2122b3966bddb10d43d439eb8c5d6cc4583c6ba6

3 years agoMerge branch 'stable-5.10' into stable-5.11 53/186553/1
Matthias Sohn [Fri, 15 Oct 2021 20:45:18 +0000 (22:45 +0200)]
Merge branch 'stable-5.10' into stable-5.11

* stable-5.10:
  Fix missing peel-part in lsRefsV2 for loose annotated tags
  reftable: drop code for truncated reads
  reftable: pass on invalid object ID in conversion
  Update eclipse-jarsigner-plugin to 1.3.2
  Fix running benchmarks from bazel
  Update eclipse-jarsigner-plugin to 1.3.2

Change-Id: I23ccb89306263ce042ce782d881812d4b5187672

3 years agoMerge branch 'stable-5.9' into stable-5.10 52/186552/1
Matthias Sohn [Fri, 15 Oct 2021 20:32:00 +0000 (22:32 +0200)]
Merge branch 'stable-5.9' into stable-5.10

* stable-5.9:
  Fix missing peel-part in lsRefsV2 for loose annotated tags
  reftable: drop code for truncated reads
  reftable: pass on invalid object ID in conversion
  Update eclipse-jarsigner-plugin to 1.3.2
  Fix running benchmarks from bazel
  Update eclipse-jarsigner-plugin to 1.3.2

Change-Id: I4e7c7727ebfa9a7748477f2300bd66d775548ad6

3 years agoFix missing peel-part in lsRefsV2 for loose annotated tags 20/186520/4
Saša Živkov [Fri, 15 Oct 2021 08:13:53 +0000 (10:13 +0200)]
Fix missing peel-part in lsRefsV2 for loose annotated tags

We observed the following issue:

  $ git tag -a v1.0 -m v1.0
  $ git push origin tag v1.0
  $ git ls-remote origin v1.0^{}
  ... empty result ...

  On the server (Gerrit) side run git-gc to pack the refs:
  $ git gc

  Repeat the ls-remote from the client and the result is correct:
  $ git ls-remote origin v1.0^{}
  7ad85c810de3ae922903d4bdd17c53cd627260ba        refs/tags/v1.0^{}

Unfortunately, the existing UploadPackTest didn't reveal this issue
although it provided the test case needed to do so: testV2LsRefsPeel.
This is because The UploadPackTest uses InMemoryRepository which
internally uses Dfs* implementations. The issue is only reproducible
when using the FileRepository.

It is a non-trivial task to refactor the UploadPackTest to work against
both InMemoryRepository and FileRepository and this change is not trying
to do that. This change creates a new test:
UploadPackLsRefsFileRepositoryTest and copies the necesssary code from
the UploadPackTest.

Change-Id: Icfc7d0ca63f1524bafe24c9626ce12ea72aa3718
Signed-off-by: Saša Živkov <sasa.zivkov@sap.com>
3 years agoFix RevWalk.getMergedInto() ignores annotated tags 01/184901/5
kylezhao [Thu, 2 Sep 2021 03:53:48 +0000 (11:53 +0800)]
Fix RevWalk.getMergedInto() ignores annotated tags

If an annotated tag refers to a commit, we should not ignore it.

Change-Id: I77504f93636e9e984540e7d8535ef301adce6a80
Signed-off-by: kylezhao <kylezhao@tencent.com>
3 years agoOptimize RevWalk.getMergedInto() 06/184806/6
kylezhao [Tue, 31 Aug 2021 11:36:44 +0000 (19:36 +0800)]
Optimize RevWalk.getMergedInto()

Transitive Relation Definition:
On the DAG of commit history, if A can reach B, C can reach A, then C
can reach B.

Example:
As is shown in the graph below:

  1 - 2 - 3 - 4 (side)
            \
             5 -  6^ (master) - 7 (topic)

Find out which branches is 2 merged into:
After we calculated that master contains 2, we can mark 6 as TEMP_MARK
to avoid unwanted walks.
When we want to figure out if 2 is merge into the topic, the traversal
path would be [7, 6] instead of [7, 6, 5, 3, 2].

Test:
This change can significantly improve performance for tags.
On a copy of the Linux repository, the command 'git tag --contains
<commit>' had the following performance improvement:

commit      | Before   | After   | Rel %
47a44d27ca  | 29251ms  | 6687ms  | -77%
90327e7dff  | 21388ms  | 6256ms  | -70%
f85fac0efa  | 11150ms  | 7338ms  | -34%

The current version ignores tags, even though the tag is a type of
the ref.
Follow-up commits I'll fix it.

Change-Id: Ie6295ca4d16070499912af462239e679a97cce47
Signed-off-by: kylezhao <kylezhao@tencent.com>
Reviewed-by: Christian Halstrick <christian.halstrick@sap.com>
Reviewed-by: Martin Fick <mfick@codeaurora.org>
3 years agoMerge branch 'stable-5.8' into stable-5.9 99/186299/1
Matthias Sohn [Thu, 7 Oct 2021 22:36:14 +0000 (00:36 +0200)]
Merge branch 'stable-5.8' into stable-5.9

* stable-5.8:
  reftable: drop code for truncated reads
  reftable: pass on invalid object ID in conversion
  Update eclipse-jarsigner-plugin to 1.3.2

Change-Id: I9e66ef90dc9a65bac47b35705d679bf992bd72b9

3 years agoMerge branch 'stable-5.7' into stable-5.8 97/186297/1
Matthias Sohn [Thu, 7 Oct 2021 22:33:33 +0000 (00:33 +0200)]
Merge branch 'stable-5.7' into stable-5.8

* stable-5.7:
  reftable: drop code for truncated reads
  reftable: pass on invalid object ID in conversion
  Update eclipse-jarsigner-plugin to 1.3.2

Change-Id: I88c47ff57f4829baec5b19aad3d8d6bd21f31a86

3 years agoMerge branch 'stable-5.6' into stable-5.7 96/186296/1
Matthias Sohn [Thu, 7 Oct 2021 22:18:42 +0000 (00:18 +0200)]
Merge branch 'stable-5.6' into stable-5.7

* stable-5.6:
  reftable: drop code for truncated reads
  reftable: pass on invalid object ID in conversion
  Update eclipse-jarsigner-plugin to 1.3.2

Change-Id: I1c18f5f435f4a4a86e0548a310dbfc74191e1ed5

3 years agoreftable: drop code for truncated reads 02/185902/4
Han-Wen Nienhuys [Tue, 28 Sep 2021 18:05:03 +0000 (20:05 +0200)]
reftable: drop code for truncated reads

The reftable format is a block based format, but allows for variably
sized blocks. This obviously happens for reflog blocks (which are zlib
compressed), but is also accepted for index blocks: In the spec, this
is motivated as

     To achieve constant O(1) disk seeks for lookups the index must be
     a single level, which is permitted to exceed the file's
     configured block size, but not the format's max block size of
     15.99 MiB.

Hence, when parsing a block, one cannot be sure of its exact size:
after reading a default-size block (eg. 4kb), the block header may
state that the block is in fact larger.

Before, the code would mark the block as `truncated`, noting

     // Its OK during sequential scan for an index block to have been
     // partially read and be truncated in-memory. This happens when
     // the index block is larger than the file's blockSize. Caller
     // will break out of its scan loop once it sees the blockType.

This looks like either

* a remnant of never-implemented functionality. There is no reason to
  ever sequentially scan an index block.

* alluding to sequential scan of the data blocks before the index
  blocks (eg. scanning refs, which ends when we find the first ref index
  block, and we can then ignore the index block).

This comment is followed by code that populates the
restartTbl/restartCnt fields relative to the (possibly truncated)
buffer. If the buffer is truncated, this essentially reads garbage,
leading to OOB array access when using the index block.

Fix this by dropping the truncated logic and issuing a second read if
the first read was short.

Add a test.

We have never observed this failure scenario at Google. We use 64kb
blocksize, which requires us to need fewer index entries. The reftable
spec mentions an Android repo of size 36M. With 64kb blocks, that's
just 562 index entries. Even with historical growth, we are long from
requiring an index whose size exceeds a single block.

When adding the analogous test for seeking refs, there was no failure.
This points to another possibility which is that the code tries to
avoid writing large index blocks for refs.

I did not investigate further which one it is.

Fixes https://bugs.eclipse.org/bugs/show_bug.cgi?id=576250

Bug: 576250
Change-Id: I41ec21fac9e526ef57b3d6fb57b988bd353ee338
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
3 years agoreftable: pass on invalid object ID in conversion 56/185856/2
Han-Wen Nienhuys [Mon, 27 Sep 2021 14:07:27 +0000 (16:07 +0200)]
reftable: pass on invalid object ID in conversion

Before, while trying to determine if an object ID was a tag or not,
the reftable conversion would yield an exception.

Change-Id: I3688a0ffa9e774ba27f320e3840ff8cada21ecf0

3 years agoUpdate eclipse-jarsigner-plugin to 1.3.2 54/185754/1
Matthias Sohn [Mon, 20 Sep 2021 22:18:03 +0000 (00:18 +0200)]
Update eclipse-jarsigner-plugin to 1.3.2

Change-Id: Id5d05d96c392913de7b4451421c2ffb7b63ab83f
(cherry picked from commit c70c0acb4752f00672e3b856539587e4977bfaea)

3 years agoFix running benchmarks from bazel 55/185855/2
Matthias Sohn [Mon, 27 Sep 2021 13:53:30 +0000 (15:53 +0200)]
Fix running benchmarks from bazel

add missing dependency to
- javaewah
- slf4j-api

Change-Id: I28dc982791b32f10d20b2fd0671aa8d2514a0fb3

3 years agoUpdate eclipse-jarsigner-plugin to 1.3.2 43/185643/2
Matthias Sohn [Mon, 20 Sep 2021 22:18:03 +0000 (00:18 +0200)]
Update eclipse-jarsigner-plugin to 1.3.2

Change-Id: Id5d05d96c392913de7b4451421c2ffb7b63ab83f

3 years agoAdd org.bouncycastle.bcutil to p2 repository 11/185611/1
Matthias Sohn [Mon, 20 Sep 2021 14:41:17 +0000 (16:41 +0200)]
Add org.bouncycastle.bcutil to p2 repository

Bug: 575621
Change-Id: I57de7af9f9b236cac570d9c10c3d1c3886720868

3 years agoPrepare 5.13.1-SNAPSHOT builds 70/185170/1
Matthias Sohn [Wed, 8 Sep 2021 18:24:36 +0000 (20:24 +0200)]
Prepare 5.13.1-SNAPSHOT builds

Change-Id: Ib2f689d8d13eab022da5b5e83d6d6bebc1bb81d3

3 years agoJGit v5.13.0.202109080827-r 48/185148/1 v5.13.0.202109080827-r
Matthias Sohn [Wed, 8 Sep 2021 12:27:06 +0000 (14:27 +0200)]
JGit v5.13.0.202109080827-r

Change-Id: If3b2d4256712cc7e577c23e75c0d4ad940870e72
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
3 years agoMerge branch 'master' into stable-5.13 82/184982/1
Matthias Sohn [Sat, 4 Sep 2021 09:45:33 +0000 (11:45 +0200)]
Merge branch 'master' into stable-5.13

* master:
  Revert "DFS block cache: Refactor to enable parallel index loading"

Change-Id: Ifd7cf7a366bf682da6e92ac9dd416bd88e9f1654

3 years agoRevert "DFS block cache: Refactor to enable parallel index loading" 78/184978/2
Minh Thai [Fri, 3 Sep 2021 20:48:57 +0000 (13:48 -0700)]
Revert "DFS block cache: Refactor to enable parallel index loading"

This reverts commit 3cd7eb1b23dcf3d0477e8cd22a57f1b799a5ba5f.

Change-Id: I71ce68ce19503f0f9ad83069dc53eba6ab2c489b
Signed-off-by: Minh Thai <mthai@google.com>
3 years agoPrepare 5.13.0-SNAPSHOT builds 82/184882/1
Matthias Sohn [Wed, 1 Sep 2021 18:00:56 +0000 (20:00 +0200)]
Prepare 5.13.0-SNAPSHOT builds

Change-Id: I2a1d7ab24d5ca718348f4ce3cda351553e48cd1f

3 years agoJGit v5.13.0.202109011149-rc1 66/184866/1 v5.13.0.202109011149-rc1
Matthias Sohn [Wed, 1 Sep 2021 14:49:12 +0000 (16:49 +0200)]
JGit v5.13.0.202109011149-rc1

Change-Id: Id8d0970102f18e61a2fc7cf941267c9089d71c1a
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
3 years agoMerge branch 'master' into stable-5.13 62/184862/1
Matthias Sohn [Wed, 1 Sep 2021 14:31:13 +0000 (16:31 +0200)]
Merge branch 'master' into stable-5.13

* master:
  GitServlet: allow to override default error handlers
  Silence API error for new interface method ProtocolV2Hook#onObjectInfo
  transport: add object-info capability
  Ignore IllegalStateException if JVM is already shutting down
  Update orbit to R20210825222808 for 2021-09
  RevWalk: getMergedInto's result is wrong on the second call

Change-Id: I007882d0c663e406d8845cc807f3792ae7673230

3 years agoMerge branch 'stable-5.12' 61/184861/1
Matthias Sohn [Wed, 1 Sep 2021 14:23:47 +0000 (16:23 +0200)]
Merge branch 'stable-5.12'

* stable-5.12:
  GitServlet: allow to override default error handlers

Change-Id: I4710cec30c58d7a6525a42dc5f1fdffc912ed073

3 years agoMerge branch 'stable-5.11' into stable-5.12 60/184860/1
Matthias Sohn [Wed, 1 Sep 2021 14:22:21 +0000 (16:22 +0200)]
Merge branch 'stable-5.11' into stable-5.12

* stable-5.11:
  GitServlet: allow to override default error handlers

Change-Id: I65c01857ab42ec3023da16e6816d58e1a36e40e4

3 years agoMerge branch 'stable-5.10' into stable-5.11 58/184858/1
Matthias Sohn [Wed, 1 Sep 2021 14:08:03 +0000 (16:08 +0200)]
Merge branch 'stable-5.10' into stable-5.11

* stable-5.10:
  GitServlet: allow to override default error handlers

Change-Id: If10a99bcdc91105059b15a1d137dd38af228c58d

3 years agoMerge branch 'stable-5.9' into stable-5.10 57/184857/1
Matthias Sohn [Wed, 1 Sep 2021 13:55:58 +0000 (15:55 +0200)]
Merge branch 'stable-5.9' into stable-5.10

* stable-5.9:
  GitServlet: allow to override default error handlers

Change-Id: I55273087f8a67762130728eaaf635519c25255b3

3 years agoGitServlet: allow to override default error handlers 43/184843/3
Antonio Barone [Wed, 1 Sep 2021 10:04:07 +0000 (12:04 +0200)]
GitServlet: allow to override default error handlers

GitServlet delegates repository access over HTTP to the GitFilter
servlet.

GitServlet, in turn, can be extended by jgit consumers to provide custom
logic when handling such operations.

This is the case, for example, with Gerrit Code Review, which provides
custom behavior with a GitOverHttpServlet [1].

Among possible customizations, the ability of specifying a custom error
handler for UploadPack and ReceivePack was already introduced in
GitFilter by Idd3b87d6b and I9c708aa5a2, respectively.

However the `setUploadPackErrorHandler` and `setReceivePackErrorHandler`
methods were never added to the GitServlet.

Expose the `setUploadPackErrorHandler` and `setReceivePackErrorHandler`
methods to the GitServlet, so that consumers of the jgit library might
specify custom error handlers.

[1] https://gerrit.googlesource.com/gerrit/+/refs/heads/stable-3.2/java/com/google/gerrit/httpd/GitOverHttpServlet.java#95

Change-Id: I712d485ff68b662b48c71ef75650c5a155950d23

3 years agoSilence API error for new interface method ProtocolV2Hook#onObjectInfo 54/184854/1
Matthias Sohn [Wed, 1 Sep 2021 12:50:48 +0000 (14:50 +0200)]
Silence API error for new interface method ProtocolV2Hook#onObjectInfo

Change-Id: Ie4d09db2b89f26bc6ceb4e84f10c7e66b0ff684f

3 years agotransport: add object-info capability 83/183183/23
Bruno Albuquerque [Fri, 16 Jul 2021 18:44:46 +0000 (11:44 -0700)]
transport: add object-info capability

Sometimes it is useful to obtain metadata associated with an object
without the need to first download it locally. This is specially useful
when using partial clones.

This change implements the object-info capability that allows clients to
query the remote server for object metadata (currently only size). This
is a backport of the same capability that was recently added to the Git
project a2ba162cda (object-info: support for retrieving object info,
2021-04-20).

Signed-off-by: Bruno Albuquerque <bga@google.com>
Change-Id: I4dc9828e1c247f08b0976b8810be92d124366165

3 years agoMerge branch 'stable-5.12' 81/184781/1
Matthias Sohn [Mon, 30 Aug 2021 20:25:02 +0000 (22:25 +0200)]
Merge branch 'stable-5.12'

* stable-5.12:
  RevWalk: getMergedInto's result is wrong on the second call

Change-Id: Iee51703b2b009df15c0d8ee19fd480058b665bce

3 years agoIgnore IllegalStateException if JVM is already shutting down 25/183925/4
Matthias Sohn [Thu, 12 Aug 2021 07:28:04 +0000 (09:28 +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: 575367
Change-Id: Ic967c16c7f566c84778795315ab369e76668b364

3 years agoUpdate orbit to R20210825222808 for 2021-09 94/184494/1
Matthias Sohn [Thu, 26 Aug 2021 18:42:26 +0000 (20:42 +0200)]
Update orbit to R20210825222808 for 2021-09

Change-Id: I5a98f2134d19c3495d7d39cccfd7cf6f07640bd5

3 years agoPrepare 5.13.0-SNAPSHOT builds 31/184431/1
Matthias Sohn [Wed, 25 Aug 2021 20:33:09 +0000 (22:33 +0200)]
Prepare 5.13.0-SNAPSHOT builds

Change-Id: I6db044fdd57b60adbc2dd078c4af8cb54bb331c3

3 years agoJGit v5.13.0.202108250949-m3 07/184407/1 v5.13.0.202108250949-m3
Matthias Sohn [Wed, 25 Aug 2021 13:49:20 +0000 (15:49 +0200)]
JGit v5.13.0.202108250949-m3

Change-Id: Icc079b28327f5a02256f9a06837c2be6352ea6e3
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
3 years agoUpdate spotbugs-maven-plugin to 4.3.0 81/182981/4
Marco Miller [Mon, 12 Jul 2021 12:53:36 +0000 (08:53 -0400)]
Update spotbugs-maven-plugin to 4.3.0

Change-Id: Iafb680923cbc6c81067773159a9a0e2fcdc60169
Signed-off-by: Marco Miller <marco.miller@ericsson.com>
3 years agoUpdate ant to 1.10.11 also in pom.xml 47/184347/1
Matthias Sohn [Tue, 24 Aug 2021 08:25:29 +0000 (10:25 +0200)]
Update ant to 1.10.11 also in pom.xml

This was missed when the target platform was updated to use ant 1.10.11
in cf9baedb5d.

Change-Id: I0d503fa4b27df73a7dad68f1b729346596d78332

3 years agoDFS block cache: add additional stats to DfsReaderIoStats 63/184163/5
Alina Djamankulova [Tue, 17 Aug 2021 16:56:06 +0000 (09:56 -0700)]
DFS block cache: add additional stats to DfsReaderIoStats

New stats are populated in DfsPackFile to provide details about loading
pack, bitmap and reverse indexes.

Signed-off-by: Alina Djamankulova <adjama@google.com>
Change-Id: Ib6e8384ecc31821261e5099d0768c0b1227e8364

3 years agoUpdate Orbit to S20210817231813 00/184300/2
Matthias Sohn [Mon, 23 Aug 2021 08:01:14 +0000 (10:01 +0200)]
Update Orbit to S20210817231813

and org.apache.ant to 1.10.11.v20210720-1445

Change-Id: Ic9c2f42628e47fffc99a07d591bc465b4e24b86e

3 years ago[gpg] Better GPG home directory determination 89/184189/2
Thomas Wolf [Tue, 10 Aug 2021 21:26:42 +0000 (23:26 +0200)]
[gpg] Better GPG home directory determination

GPG can use customized directories instead of the standard ~/.gnupg or
%APPDATA%\gnupg directories:

* Environment variable GNUPGHOME can define the location.
* On Windows, a registry key may define the location (but this is
  deprecated).
* Portable installations may use a directory defined via a file
  "gpgconf.ctl".
* GPG programs may take a --homedir command-line argument, which
  overrides anything.

Implement handling of environment variable GNUPGHOME. The other ways of
GPG to get its home directory are outside the reach of JGit. Provide a
system property "jgit.gpg.home" that the user can set in such cases.

Do tilde replacement for the system property and for GNUPGHOME.

Note that on VMS, the default directory would be ~/gnupg (without dot).
This is not accounted for, but a user on VMS could now use either the
system property or GNUPGHOME to direct JGit to the right directory.

Bug: 575327
Change-Id: Id5ea04a85d58dba0c0df7a705777630d36042467
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoFS: cleanup use of final modifier 49/184049/3
Matthias Sohn [Fri, 13 Aug 2021 07:47:34 +0000 (09:47 +0200)]
FS: cleanup use of final modifier

See the contributor guide [1].

[1] https://wiki.eclipse.org/EGit/Contributor_Guide#Use_of_the_.22final.22_modifier

Change-Id: I4673442310a3a53d838407f7eb11964144bb04d0

3 years agoEnsure FS#searchPath only selects executable files 48/184048/2
Matthias Sohn [Fri, 13 Aug 2021 07:36:26 +0000 (09:36 +0200)]
Ensure FS#searchPath only selects executable files

On Posix non executable files on the path should be ignored, on Windows
File#canExecute always returns true.

While we are here also add missing braces.

Bug: 575385
Change-Id: I80cd5057bdf9632a17f103db6f1356e975b6e150

3 years agoRevWalk: getMergedInto's result is wrong on the second call 60/183960/2
kylezhao [Thu, 12 Aug 2021 11:37:58 +0000 (19:37 +0800)]
RevWalk: getMergedInto's result is wrong on the second call

Make sure the future user can reset all UNINTERESTING commmits after
this operation.

Signed-off-by: kylezhao <kylezhao@tencent.com>
Change-Id: I7549b9ff67bd31acd5dfc92331cb9a30b47b8278

3 years agoDFS block cache: Refactor to enable parallel index loading 62/183562/10
Alina Djamankulova [Fri, 30 Jul 2021 20:36:15 +0000 (13:36 -0700)]
DFS block cache: Refactor to enable parallel index loading

With this change bitmap index creation is not blocked on index and
reverse index full initialization in DfsPackFile. Now bitmap index and index could be
read from storage in parallel in separate threads.

Update PackBitmapIndexV1 constructor to get packIndex and reverseIndex
suppliers instead of actual objects. Inner class IdxPositionBitmap was added to initialize pack objects after bitmap
index is fully read from storage. Update DfsPackFile and PackBitmapIndex
accordingly.

Signed-off-by: Alina Djamankulova <adjama@google.com>
Change-Id: Iea59ab58501b2acbbf9263412982ec9c6898a7ee

3 years agoMerge branch 'stable-5.12' 27/183527/1
Thomas Wolf [Thu, 29 Jul 2021 11:12:40 +0000 (13:12 +0200)]
Merge branch 'stable-5.12'

* stable-5.12:
  [test] Create keystore with the keytool of the running JDK
  Fix garbage collection failing to delete pack file
  ReachabilityCheckerTestCase: fix reachable from self test case

Change-Id: I4b54f4850819736144edb784617ee902f491ffd6
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoMerge branch 'stable-5.11' into stable-5.12 84/183484/1
Thomas Wolf [Thu, 29 Jul 2021 11:11:54 +0000 (13:11 +0200)]
Merge branch 'stable-5.11' into stable-5.12

* stable-5.11:
  [test] Create keystore with the keytool of the running JDK
  ReachabilityCheckerTestCase: fix reachable from self test case

Change-Id: Ie8db450a1fad05bddb812a55b2ceb03b2805403a
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoMerge branch 'stable-5.10' into stable-5.11 83/183483/1
Thomas Wolf [Thu, 29 Jul 2021 11:11:08 +0000 (13:11 +0200)]
Merge branch 'stable-5.10' into stable-5.11

* stable-5.10:
  [test] Create keystore with the keytool of the running JDK
  ReachabilityCheckerTestCase: fix reachable from self test case

Change-Id: I55f4dd19e9fa3b789bd9a79d256fe9abb55ee7f4
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoMerge branch 'stable-5.9' into stable-5.10 82/183482/1
Thomas Wolf [Thu, 29 Jul 2021 11:10:33 +0000 (13:10 +0200)]
Merge branch 'stable-5.9' into stable-5.10

* stable-5.9:
  [test] Create keystore with the keytool of the running JDK
  ReachabilityCheckerTestCase: fix reachable from self test case

Change-Id: Ic37426211905d987ddd11480a54d95b86143c94c
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoMerge branch 'stable-5.8' into stable-5.9 81/183481/1
Thomas Wolf [Thu, 29 Jul 2021 11:09:52 +0000 (13:09 +0200)]
Merge branch 'stable-5.8' into stable-5.9

* stable-5.8:
  [test] Create keystore with the keytool of the running JDK
  ReachabilityCheckerTestCase: fix reachable from self test case

Change-Id: If09cbb877c674f15261715cecef7a2393bf66fa3
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoMerge branch 'stable-5.7' into stable-5.8 80/183480/1
Thomas Wolf [Thu, 29 Jul 2021 11:09:13 +0000 (13:09 +0200)]
Merge branch 'stable-5.7' into stable-5.8

* stable-5.7:
  [test] Create keystore with the keytool of the running JDK
  ReachabilityCheckerTestCase: fix reachable from self test case

Change-Id: I32010c6bf45d5138e17143d6c284ac56434eade1
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoMerge branch 'stable-5.6' into stable-5.7 79/183479/1
Thomas Wolf [Thu, 29 Jul 2021 11:08:01 +0000 (13:08 +0200)]
Merge branch 'stable-5.6' into stable-5.7

* stable-5.6:
  [test] Create keystore with the keytool of the running JDK
  ReachabilityCheckerTestCase: fix reachable from self test case

Change-Id: I1f6b4fc26f6ee6f22cc0aacd032c1e73ba246dbc
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoMerge branch 'stable-5.5' into stable-5.6 78/183478/1
Thomas Wolf [Thu, 29 Jul 2021 11:06:56 +0000 (13:06 +0200)]
Merge branch 'stable-5.5' into stable-5.6

* stable-5.5:
  [test] Create keystore with the keytool of the running JDK

Change-Id: Icb0bb6dc4ad05b1f3eb562547893f2e0aedf8775
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoMerge branch 'stable-5.4' into stable-5.5 77/183477/1
Thomas Wolf [Thu, 29 Jul 2021 11:05:59 +0000 (13:05 +0200)]
Merge branch 'stable-5.4' into stable-5.5

* stable-5.4:
  [test] Create keystore with the keytool of the running JDK

Change-Id: I5ff3dc1c771aeb33af39eb68f166c7282b478cf8
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoMerge branch 'stable-5.3' into stable-5.4 76/183476/1
Thomas Wolf [Thu, 29 Jul 2021 11:05:20 +0000 (13:05 +0200)]
Merge branch 'stable-5.3' into stable-5.4

* stable-5.3:
  [test] Create keystore with the keytool of the running JDK

Change-Id: If92372b7bfbfb9445fcb934c48dc1cd6610e061b
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoMerge branch 'stable-5.2' into stable-5.3 75/183475/1
Thomas Wolf [Thu, 29 Jul 2021 11:03:56 +0000 (13:03 +0200)]
Merge branch 'stable-5.2' into stable-5.3

* stable-5.2:
  [test] Create keystore with the keytool of the running JDK

Change-Id: I981de862c614986a7b443fed1cce7b895b758682
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoMerge branch 'stable-5.1' into stable-5.2 74/183474/1
Thomas Wolf [Thu, 29 Jul 2021 11:02:16 +0000 (13:02 +0200)]
Merge branch 'stable-5.1' into stable-5.2

* stable-5.1:
  [test] Create keystore with the keytool of the running JDK

Change-Id: Ic56f4f23c37432377be88e07d06c5ad75591d84f
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years ago[test] Create keystore with the keytool of the running JDK 71/183471/1
Thomas Wolf [Sun, 25 Jul 2021 13:44:35 +0000 (15:44 +0200)]
[test] Create keystore with the keytool of the running JDK

Call keytool with the absolute path of "java.home". Otherwise a keytool
for a different, maybe even newer Java version might be picked up, and
then the keystore may not be readable by the JVM used to run the tests.

(cherry picked from commit 2d73c702d3e9128b7dc03a01fe2cf18f119d3ffe)

Change-Id: Iea77024947a34267f008847d81312fe0abadc615
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years ago[gpg] Update to Bouncy Castle 1.69 76/183376/1
Thomas Wolf [Mon, 26 Jul 2021 11:28:40 +0000 (13:28 +0200)]
[gpg] Update to Bouncy Castle 1.69

Bump lower bound in MANIFEST.MF and adapt code.

Change-Id: I3a3c7948e5fc29f5517fe84209fcea81834e8e5b

3 years ago[test] Create keystore with the keytool of the running JDK 51/183351/1
Thomas Wolf [Sun, 25 Jul 2021 13:44:35 +0000 (15:44 +0200)]
[test] Create keystore with the keytool of the running JDK

Call keytool with the absolute path of "java.home". Otherwise a keytool
for a different, maybe even newer Java version might be picked up, and
then the keystore may not be readable by the JVM used to run the tests.

Change-Id: Iea77024947a34267f008847d81312fe0abadc615
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years ago[sshd] Minor code clean-up 52/183252/3
Thomas Wolf [Wed, 21 Jul 2021 17:53:47 +0000 (19:53 +0200)]
[sshd] Minor code clean-up

Since upstream changed the method profile to throw Exception it's not
necessary anymore to re-throw as IOException.

Change-Id: I31afab4f6e1a2f0feef79e6abced20d0ca1c493b

3 years agoSupport commit.template config property 21/179821/5
Julian Ruppel [Mon, 26 Apr 2021 08:24:05 +0000 (10:24 +0200)]
Support commit.template config property

Adds functionality to read the git commit.template property. The
template content is read either via a default encoding or, if present,
via encoding specified by i18n.commitEncoding property.

Bug: 446355

Change-Id: I0c45db98e324ddff26a7e0262835f259d6528a86
Signed-off-by: Julian Ruppel <julian.ruppel@sap.com>
3 years agoRelax version range for hamcrest and assertj 65/183165/1
Matthias Sohn [Mon, 19 Jul 2021 10:32:26 +0000 (12:32 +0200)]
Relax version range for hamcrest and assertj

We currently cannot use hamcrest 2.2 and assertj 3.20.2 (which requires
hamcrest 2.2) in egit tests since other Eclipse dependencies (e.g.
swtbot) require hamcrest 1.1.

Hence relax version range for these components in jgit so that jgit
tests also work when using the egit target platform.

Change-Id: I521e2ec4491bd8d790609b8a66a8f14511a865a1

3 years agobazel: don't expose jsch and jzlib to org.eclipse.jgit 71/183071/2
Matthias Sohn [Wed, 14 Jul 2021 22:00:43 +0000 (00:00 +0200)]
bazel: don't expose jsch and jzlib to org.eclipse.jgit

These libraries are no longer used by org.eclipse.jgit since the code
depending on them was moved to org.eclipse.jgit.ssh.jsch.

Change-Id: Ic1c66e8ca06d904abf44d84154bbe9a770aa94d5

3 years agoUpdate orbit to I20210713220109 70/183070/2
Matthias Sohn [Wed, 14 Jul 2021 20:30:06 +0000 (22:30 +0200)]
Update orbit to I20210713220109

update
- org.apache.commons.compress to 1.20.0.v20210713-192
- org.bouncycastle.bcpg to 1.69.0.v20210713-1924
- org.bouncycastle.bcpkix to 1.69.0.v20210713-1924
- org.bouncycastle.bcprov to 1.69.0.v20210713-1924

- add org.bouncycastle.bcutil 1.69.0.v20210713-1924

In bazel build don't expose bouncycastle to org.eclipse.jgit since it's
not used there anymore since code depending on bouncycastle was moved to
org.eclipse.jgit.gpg.bc.

CQ: 21771
CQ: 23471
CQ: 23472
CQ: 23473
CQ: 23474
Change-Id: Id3d94c00c39bbc57e3f49a61150841249dc3985c

3 years agoUpdate orbit to I20210711110031 88/182788/8
Matthias Sohn [Sun, 11 Jul 2021 12:21:40 +0000 (14:21 +0200)]
Update orbit to I20210711110031

and update
- assertj to 3.20.2.v20210706-1104
- hamcrest to 2.2.0.v20210711-0821
  - classes which were in org.hamcrest.core 1.3 and org.hamcrest.library
    1.3 were all moved to org.hamcrest in 2.2
  - the annotation org.hamcrest.Factory was removed and is no longer
    needed
  - junit 4.13 requires hamcrest-core and hamcrest-library 1.3 therefore
    keep them in the target platform

CQ: 23501
Change-Id: Ife871c0343b611be9203aed7f86577e85bbf5c95

3 years ago[sshd] Ignore revoked keys in OpenSshServerKeyDatabase.lookup() 68/182868/2
Thomas Wolf [Tue, 18 May 2021 19:44:18 +0000 (21:44 +0200)]
[sshd] Ignore revoked keys in OpenSshServerKeyDatabase.lookup()

It makes no sense to return revoked keys.

Change-Id: I99eee1de3dba5c0c8d275b7c1a24053874b3cb03
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years ago[sshd] Distinguish key type and signature algorithm for host key 67/182867/2
Thomas Wolf [Tue, 29 Jun 2021 21:08:02 +0000 (23:08 +0200)]
[sshd] Distinguish key type and signature algorithm for host key

Since the introduction of the rsa-sha2-512 and rsa-sha2-256 signature
types, the key type for RSA is no longer automatically the signature
algorithm. We re-order the list for the host key proposal such that
keys we already have are preferred; this minimizes warnings about new
host keys. When doing so, put all of rsa-sha2-512, rsa-sha2-256, and
ssh-rsa at the front, in that order, not just ssh-rsa.

This ensures that we do prefer RSA keys if we already have an RSA host
key, but at the same time we still prefer the stronger signature
algorithms over the weaker and deprecated SHA1-based ssh-rsa signature.
It also helps avoid a bug found in some Github versions where the Github
SSH server uses a rsa-sha2-512 signature even though ssh-rsa was
negotiated.[1]

[1] https://www.eclipse.org/forums/index.php/t/1108282/

Bug: 574635
Change-Id: I0a49dcfa0c2c93f23118c983cd0bc9e5a467d886
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years ago[sshd] Implement SSH config KexAlgorithms 66/182866/2
Thomas Wolf [Tue, 29 Jun 2021 20:57:09 +0000 (22:57 +0200)]
[sshd] Implement SSH config KexAlgorithms

Make the used KEX algorithms configurable via the ssh config. Also
implement adding algorithms not in the default set: since sshd 2.6.0
deprecated SHA1-based algorithms, it is possible that the default set
has not all available algorithms, so adding algorithms makes sense.

This enables users who have to use a git server that only supports
old SHA1-based key exchange methods to enable those methods in the
ssh config:

  KexAlgorithms +diffie-hellman-group1-sha1

There are two more SHA1 algorithms that are not enabled by default:
diffie-hellman-group14-sha1 and diffie-hellman-group-exchange-sha1.
KeyAlgorithms accepts a comma-separated list of algorithm names.

Since adding algorithms is now supported, adapt the handling of
signature algorithms, too. Make sure that definitions for the KEX
exchange signature (HostKeyAlgorithms) don't conflict with the
definition for signatures for pubkey auth (PubkeyAcceptedAlgorithms).

HostKeyAlgorithms updates the signature factories set on the session
to include the default factories plus any that might have been added
via the SSH config. Move the handling of PubkeyAcceptedAlgorithms
from the client to the JGitPubkeyAuthentication, where it can be done
only if pubkey auth is attempted at all and where it can store its
adapted list of factories locally.

Bug: 574636
Change-Id: Ia5d5f174bbc8e5b41e10ec2c25216d861174e7c3
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
3 years agoUpdate orbit to S20210705204906 18/182918/1
Matthias Sohn [Thu, 8 Jul 2021 19:54:38 +0000 (21:54 +0200)]
Update orbit to S20210705204906

Change-Id: Ib4ec9f80a8a346fa8c709e58f8076372d14eca64

3 years agoUpdate jetty to 9.4.43.v20210629 05/182905/1
Matthias Sohn [Thu, 8 Jul 2021 16:15:04 +0000 (18:15 +0200)]
Update jetty to 9.4.43.v20210629

Change-Id: I4ceea58cb0a04d041ca4e698e096a00ccd12bfc0

3 years agoUpdate JMH used in benchmarks to 1.32 20/182620/2
Matthias Sohn [Tue, 29 Jun 2021 19:34:49 +0000 (21:34 +0200)]
Update JMH used in benchmarks to 1.32

Change-Id: I98734165de8256ab1461733169957efbfa5f36e4
CQ: 23499
CQ: 23500

3 years agoUpdate target platform to I20210626190330 73/180473/10
Thomas Wolf [Tue, 11 May 2021 07:04:52 +0000 (09:04 +0200)]
Update target platform to I20210626190330

Update
- com.google.gson to 2.8.7.v20210624-1215
- javaewah to 1.1.12.v20210622-2206
- org.apache.sshd.osgi to 2.7.0.v20210623-0618
- org.apache.sshd.sftp to 2.7.0.v20210623-0618
- org.tukaani.xz to 1.9.0.v20210624-1259
- Apache MINA sshd to 2.7.0
  - Remove work-arounds for problems resolved upstream since 2.6.0, and
    adapt to upstream API changes.
- update DEPENDENCIES.

CQ: 23469
CQ: 23470
CQ: 23496
CQ: 23497
CQ: 23498
Bug: 574220
Change-Id: I898b216c3492f8488fbf25fa4b49f1250f86f3c8
Also-by: David Ostrovsky <david@ostrovsky.org>
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
3 years agoAdd 4.21 target platform 23/182623/2
Matthias Sohn [Tue, 29 Jun 2021 19:44:06 +0000 (21:44 +0200)]
Add 4.21 target platform

Change-Id: I88d32956fd7ad5c23aa395abd88f35359b519b79

3 years agoUpdate 4.20 target platform to use final 4.20 release 22/182622/2
Matthias Sohn [Tue, 29 Jun 2021 19:43:44 +0000 (21:43 +0200)]
Update 4.20 target platform to use final 4.20 release

Change-Id: I8d6a1617a7713faf5186cfb5b2a084d0f1f9e63f

3 years agoMerge "Remove use of deprecated getAllRefs() in ReceivePack"
Matthias Sohn [Thu, 1 Jul 2021 18:13:19 +0000 (14:13 -0400)]
Merge "Remove use of deprecated getAllRefs() in ReceivePack"

3 years agoMerge "Merge branch 'stable-5.11' into stable-5.12" into stable-5.12
Matthias Sohn [Tue, 29 Jun 2021 18:22:22 +0000 (14:22 -0400)]
Merge "Merge branch 'stable-5.11' into stable-5.12" into stable-5.12

3 years ago[pgm] Fix default meta variable defined in StopOptionHandler 00/182500/1
Matthias Sohn [Sun, 27 Jun 2021 20:18:33 +0000 (22:18 +0200)]
[pgm] Fix default meta variable defined in StopOptionHandler

Change-Id: I703718e2476d40d34b11083414ac0ed5e34bf90a

3 years agoFix typo in javadoc of PathTreeFilterHandler 99/182499/1
Matthias Sohn [Sun, 27 Jun 2021 17:06:19 +0000 (19:06 +0200)]
Fix typo in javadoc of PathTreeFilterHandler

Change-Id: Icf0dc814baf0dc44addd102d9c03b821b4022a84

3 years agoRemove use of deprecated getAllRefs() in ReceivePack 00/182200/5
Luca Milanesio [Sat, 19 Jun 2021 00:50:35 +0000 (01:50 +0100)]
Remove use of deprecated getAllRefs() in ReceivePack

Repository.getAllRefs() is deprecated and should not
be used anymore. Leverage the ref-db and the retrieval
of refs by prefix and adapt the result to the expected
refname/ref map.

Bug: 534731
Change-Id: I37a9092859f220ddc4e5063d01544f3e82208be8
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
3 years agoMerge branch 'stable-5.12' 90/182490/1
Matthias Sohn [Sat, 26 Jun 2021 14:37:59 +0000 (16:37 +0200)]
Merge branch 'stable-5.12'

* stable-5.12:
  Retry loose object read upon "Stale file handle" exception
  Ignore missing javadoc in test bundles

Change-Id: I67c613c066a3252f9b0d0a3dcc026b57e10bfe1d

3 years agoMerge branch 'stable-5.11' into stable-5.12 89/182489/1
Matthias Sohn [Sat, 26 Jun 2021 14:36:55 +0000 (16:36 +0200)]
Merge branch 'stable-5.11' into stable-5.12

* stable-5.11:
  Retry loose object read upon "Stale file handle" exception
  Ignore missing javadoc in test bundles

Change-Id: Ia4dc886c920cec3c9da86e1a90a0af68bd016b4f

3 years agoMerge branch 'stable-5.10' into stable-5.11 88/182488/2
Matthias Sohn [Sat, 26 Jun 2021 13:41:19 +0000 (15:41 +0200)]
Merge branch 'stable-5.10' into stable-5.11

* stable-5.10:
  Retry loose object read upon "Stale file handle" exception
  Ignore missing javadoc in test bundles

Change-Id: Ia385fa6b5d2fee64476793e06860a279bf2f6e36

3 years agoMerge branch 'stable-5.9' into stable-5.10 80/182480/1
Matthias Sohn [Fri, 25 Jun 2021 20:23:47 +0000 (22:23 +0200)]
Merge branch 'stable-5.9' into stable-5.10

* stable-5.9:
  Retry loose object read upon "Stale file handle" exception
  Ignore missing javadoc in test bundles

Change-Id: I56fc2c47193a891285a705d44b3507f23982dc8a

3 years agosearchForReuse might impact performance in large repositories 55/181355/20
Fabio Ponciroli [Thu, 3 Jun 2021 14:15:17 +0000 (16:15 +0200)]
searchForReuse might impact performance in large repositories

The search for reuse phase for *all* the objects scans *all*
the packfiles, looking for the best candidate to serve back to the
client.

This can lead to an expensive operation when the number of
packfiles and objects is high.

Add parameter "pack.searchForReuseTimeout" to limit the time spent
on this search.

Change-Id: I54f5cddb6796fdc93ad9585c2ab4b44854fa6c48

3 years agoRetry loose object read upon "Stale file handle" exception 95/181295/12
Antonio Barone [Wed, 2 Jun 2021 15:13:17 +0000 (18:13 +0300)]
Retry loose object read upon "Stale file handle" exception

When reading loose objects over NFS it is possible that the OS syscall
would fail with ESTALE errors: This happens when the open file
descriptor no longer refers to a valid file.

Notoriously it is possible to hit this scenario when git data is shared
among multiple clients, for example by multiple gerrit instances in HA.

If one of the two clients performs a GC operation that would cause the
packing and then the pruning of loose objects, the other client might
still hold a reference to those objects, which would cause an exception
to bubble up the stack.

The Linux NFS FAQ[1] (at point A.10), suggests that the proper way to
handle such ESTALE scenarios is to:

"[...] close the file or directory where the error occurred, and reopen
it so the NFS client can resolve the pathname again and retrieve the new
file handle."

In case of a stale file handle exception, we now attempt to read the
loose object again (up to 5 times), until we either succeed or encounter
a FileNotFoundException, in which case the search can continue to
Packfiles and alternates.

The limit of 5 provides an arbitrary upper bounds that is consistent to
the one chosen when handling stale file handles for packed-refs
files (see [2] for context).

[1] http://nfs.sourceforge.net/
[2] https://git.eclipse.org/r/c/jgit/jgit/+/54350

Bug: 573791
Change-Id: I9950002f772bbd8afeb9c6108391923be9d0ef51

3 years agoIgnore missing javadoc in test bundles 25/182425/1
Matthias Sohn [Thu, 24 Jun 2021 21:13:51 +0000 (23:13 +0200)]
Ignore missing javadoc in test bundles

Change-Id: I83ed20823dc6b22ff48c2a554acb2f7d3b6067b7

3 years agoFix garbage collection failing to delete pack file 26/182426/1
andrewxian2000 [Mon, 14 Jun 2021 21:58:52 +0000 (09:58 +1200)]
Fix garbage collection failing to delete pack file

The loosen() method has opened pack file and the open pack file handle
may prevent it from being deleted e.g. on Windows. Fix this by closing
the pack file only after loosen() finished.

Bug: 574178
Change-Id: Icd59931a218d84c9c97b450eea87b21ed01248ff
Signed-off-by: andrew.xian2000@gmail.com
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
3 years agoUpgrade maven-dependency-plugin to 3.2.0 10/182110/3
Marco Miller [Thu, 17 Jun 2021 11:34:24 +0000 (07:34 -0400)]
Upgrade maven-dependency-plugin to 3.2.0

Change-Id: I9dea176e8b30658bcb6a9dee8c54184c0fa86de8
Signed-off-by: Marco Miller <marco.miller@ericsson.com>
3 years agoUpgrade jacoco-maven-plugin to 0.8.7 23/180523/3
Marco Miller [Wed, 12 May 2021 12:50:29 +0000 (08:50 -0400)]
Upgrade jacoco-maven-plugin to 0.8.7

Change-Id: I6742b2d8ec75422542a55a9840bfe43e8cf17400
Signed-off-by: Marco Miller <marco.miller@ericsson.com>