aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* SignatureUtils.toString(): allow null signature creation dateHEADmasterThomas Wolf35 hours1-6/+9
| | | | | | | | | | | Some signatures may not have a "created at" timestamp, or the tool used to verify the signature does not report it. If we get none, do not report anything about the signature creation time. This can happen for instance if 'smimesign' is used for verifying x509 signatures. Change-Id: I1a63aa62ffe173e00f27e8aea539b26cd40387c0
* Update assertj-core to 3.27.0Matthias Sohn44 hours6-10/+10
| | | | Change-Id: Ib52a7e36f34e83ab42da9a1ee81de8ac7c7c24b1
* Update jetty to 12.0.16Matthias Sohn2 days6-45/+45
| | | | Change-Id: Iec52e35db378c3f58f9d80c7e721e98d5e8f01b2
* Update bytebuddy to 1.15.11Matthias Sohn2 days6-15/+15
| | | | Change-Id: Ic101cbc37da273b52c8b5a334ca9ea5ecfc2bee6
* Update commons-io:commons-io to 2.18.0Matthias Sohn2 days6-10/+10
| | | | Change-Id: I91c7bc8f856a490669be74df953443c143c61357
* Add missing @since 7.2 to TestRepository#getTimeZoneIdMatthias Sohn2 days1-0/+1
| | | | Change-Id: Icf3b29d075e5d91e64cea06dcd75119745bd13e0
* Update maven pluginsMatthias Sohn2 days2-32/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - cyclonedx-maven-plugin to 2.9.1 - eclipse-jarsigner-plugin to 1.5.2 - git-commit-id-maven-plugin to 9.0.1 - gmavenplus-plugin to 4.0.1 - japicmp-maven-plugin to 0.23.0 - maven-artifact-plugin to 3.5.3 - maven-clean-plugin to 3.4.0 - maven-dependency-plugin to 3.8.1 - maven-deploy-plugin to 3.1.3 - maven-enforcer-plugin to 3.5.0 - maven-install-plugin to 3.1.3 - maven-jar-plugin to 3.4.2 - maven-javadoc-plugin-version to 3.11.2 - maven-jxr-plugin-version>3.6.0 - maven-pmd-plugin to 3.26.0 - maven-project-info-reports-plugin-version>3.8.0 - maven-shade-plugin to 3.6.0 - maven-site-plugin to 4.0.0-M16 - maven-surefire-plugin-version>3.5.2 - maven-surefire-report-plugin to 3.5.2 - spotbugs-maven-plugin-version>4.8.6.6 - spring-boot-maven-plugin to 3.4.1 - tycho to 4.0.10 Change-Id: I604c0550c98cb98ebc79817ee352ac5b0357d35f
* Merge "http.server/BUILD: expose servlet resources as target"Ivan Frade2 days1-1/+6
|\
| * http.server/BUILD: expose servlet resources as targetIvan Frade2 days1-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | JGit has moved to jakarta servlet-api, but gerrit is still in the javax version. This is blocking gerrit to update their jgit code. Gerrit can workaround this rebuilding the jar of jgit-servlet but it is complicated to pass-through the resources. Expose the resources of the servlet as a target, to help gerrit build a javax version of the jgit-servlet. Change-Id: Ifd794e4222ad442f4a538a4d38caa73d58be0f6d
* | Merge "Merge branch 'stable-7.1'"Matthias Sohn2 days32-4476/+127
|\ \
| * \ Merge branch 'stable-7.1'Matthias Sohn2 days32-4476/+127
| |\ \ | | |/ | |/| | | | | | | | | | | | | | | | * stable-7.1: WindowCache: share removal work among multiple threads Update target platform version in maven build to 4.32 (2024-06) Change-Id: Ic88bb210c5ea080b7553fadec2a1b8d71924365c
| | * Merge branch 'stable-7.0' into stable-7.1stable-7.1Matthias Sohn2 days32-4476/+127
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-7.0: WindowCache: share removal work among multiple threads Update target platform version in maven build to 4.32 (2024-06) Change-Id: Idd6a8a2c3b5c6f53645dbe7144afb2e1e24e8ca3
| | | * Merge branch 'stable-6.10' into stable-7.0Matthias Sohn2 days32-4476/+127
| | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-6.10: WindowCache: share removal work among multiple threads Update target platform version in maven build to 4.32 (2024-06) Change-Id: I6ca4988e9ea1e9fc6b3382b40f18f3d9db7b7acb
| | | | * WindowCache: share removal work among multiple threadsMartin Fick2 days1-5/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Split the removal process into blocks so that it can be shared by multiple threads. This potential work sharing can provide 2 optimizations for removals: 1) It provides an opportunity for separate removal requests to be consolidated into one removal pass. 2) It can reduce removing thread latencies by sharing the removal work with other removing threads which otherwise might not have any work to do due to their removal request being consolidated. This makes the system more efficient and can actually reduce latencies as system load increases due to pack removals! The optimizations above are all achieved without blockng threads to wait for other threads to complete (although naturally there are some synchronization points), and while ensuring that no threads do more work than if they were the only thread available to perform a removal. Change-Id: Ic6809a8abf056299abde0f0c58c77aaf245a8df5 Signed-off-by: Martin Fick <mfick@nvidia.com>
| | | | * Update target platform version in maven build to 4.32 (2024-06)Matthias Sohn2 days31-4381/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The p2 repositories matching jgit-4.17 target platform were moved to the archive server and are no longer available on the download server. Update to the jgit-4.32 target platform which matches Eclipse platform 2024-06. Purge older target platforms to reduce our maintenance effort. Change-Id: I948400e5b8c0db2ab0d50f8fa4e0e42521302ce7
* | | | | CommitTimeRevFilter: add missing @sinceThomas Wolf2 days1-4/+10
|/ / / / | | | | | | | | | | | | | | | | | | | | Annotate the new methods using Instant. Change-Id: I1dc4eec59b44e784bcc151bd6a28347f6fd0de03
* | | | transport: Remove usage of CommitTimeRevFilter with long and DatesIvan Frade4 days2-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [errorprone] The Date API is full of major design flaws and pitfalls and should be avoided at all costs. Prefer the java.time APIs, specifically, java.time.Instant (for physical time) and java.time.LocalDate[Time] (for civil time). Move callers to the CommitTimeRevFilter java.time.Instant API introduced in the parent commit. Change-Id: Ib92c56ae09f1ad3df7628a8c61212eb84250700d
* | | | CommitTimeRevFilter: Move to java.time APIIvan Frade4 days3-19/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Deprecate the methods using Date and offer the equivalent as Instant. Keep an int with seconds as internal representation, as it seems more efficient to compare than Instant.before/after. Change-Id: Ie751ab5661c7dafaab58a16c219143b78092f84a
* | | | Merge "Merge branch 'stable-7.1'"Matthias Sohn5 days6-61/+71
|\ \ \ \
| * | | | Merge branch 'stable-7.1'Matthias Sohn6 days6-61/+71
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-7.1: FileSnapshot: fix warnings Optionally.Hard: avoid Optional creation on every use, Pack: fix threading bug getting idx Fix potential NPE in TreeWalk#getFilterCommandDefinition Advertise "agent" capability when using protocol v2 FileSnapshot: silence "Stale file handle" exceptions Change-Id: I772dd3b3ce7f27e33c1879ce21ec024cc2f9c52a
| | * | | Merge branch 'stable-7.0' into stable-7.1Matthias Sohn6 days6-59/+66
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-7.0: FileSnapshot: fix warnings Optionally.Hard: avoid Optional creation on every use, Pack: fix threading bug getting idx Fix potential NPE in TreeWalk#getFilterCommandDefinition Advertise "agent" capability when using protocol v2 FileSnapshot: silence "Stale file handle" exceptions Change-Id: I4fdea7450f27eebfa7ae08002fd51e67b58bf6bb
| | | * | Merge branch 'stable-6.10' into stable-7.0stable-7.0Matthias Sohn6 days6-59/+66
| | | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-6.10: FileSnapshot: fix warnings Optionally.Hard: avoid Optional creation on every use, Pack: fix threading bug getting idx Fix potential NPE in TreeWalk#getFilterCommandDefinition Advertise "agent" capability when using protocol v2 FileSnapshot: silence "Stale file handle" exceptions Change-Id: Ibe8bf9ad43cb1e56a5a5e4f4d9d5818334b2550a
| | | | * FileSnapshot: fix warningsMatthias Sohn6 days1-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - comment empty code block - suppress non-translatable text warning Change-Id: Id49b4a56bbe5454edfe1ea8b79ceeaf51ceac370
| | | | * Optionally.Hard: avoid Optional creation on every use,Martin Fick9 days1-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the getOptional() call created an new Optional for its element, and this appears to be somewhat expensive. During a time when a server is heavily loaded because of a poorly maintained repository with potentially 2K+ pack files, calls to Optionally.ofNullable() from within the getOptional() method appeared extensively in the Stacktrace. Reduce the getOptional() call overhead by storing an already created Optional of the element instead of the element itself. This trades the extra space of one extra reference for a potential speed gain in a hotspot. Since the current users of Optionally.Hard reference objects significantly larger than a single reference (and most users are likely to be, else why would they be using an Optionally?), this is likely a good tradeoff. Change-Id: I7adccc915480cbb97a43dcbe074cfb620888c936 Signed-off-by: Martin Fick <mfick@nvidia.com>
| | | | * Pack: fix threading bug getting idxMartin Fick9 days1-46/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When converting to Optionally, a threading bug was introduced, fix it. The Optionally class itself is not thread safe, and previously it was being called from idx() without any thread synchronization mechanism. This was because previously the variable which held the cached index was volatile. The Optionally<PackIndex> kept the volatile attribute, but that only synchronizes the reference to the Optionally, and not the element inside the Optionally. A clear() from another thread could thus be missed by the idx() call, potentially allowing the idx() call to interact poorly with the Optionally, potentially even causing a memory leak. To fix this, extend the synchronized inside the idx() method to the entire method. Then, additionally remove the now redundant Optional fetch in idx() and the no longer needed volatile. Change-Id: I6077e1aaed96c53200805b4c87a67afb49c2b373 Signed-off-by: Martin Fick <mfick@nvidia.com>
| | | | * Fix potential NPE in TreeWalk#getFilterCommandDefinitionNasser Grainawi11 days1-0/+3
| | | | | | | | | | | | | | | | | | | | Change-Id: Ic6f0fd26153b47b4aeeec105bac431225d9bf8bf
| | | | * Advertise "agent" capability when using protocol v2Antonio Barone12 days2-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "agent" capability was not advertised by the server when executing git-upload-pack over protocol v2. This, in turn, prevented the clients from advertising its client agent too, as documented [1]: "The client may optionally send its own agent string by including the agent capability with a value Y (in the form agent=Y) in its request to the server (but it MUST NOT do so if the server did not advertise the agent capability)." When using jgit with Gerrit this had the effect of preventing the logging of the git client agent in the sshd_log. [1] https://git-scm.com/docs/protocol-v2#_agent Bug: jgit-118 Change-Id: Ifb6ea65fde020425920338f7dd9cc683fed6a4a4
| | | | * FileSnapshot: silence "Stale file handle" exceptionsMartin Fick2024-12-051-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes a FileSystemException with "Stale file handle" can be thrown while creating a FileSnapshot, likely because the file or directory was deleted. Since NoSuchFileExceptions are already silenced, and the FileSnapshot already handles all IOExceptions, there is likely no value in seeing this info in the logs, treat these situation the same and silence them also. Change-Id: I922f4edf2d332cd704e60276f41a76df242f281c Signed-off-by: Martin Fick <mfick@nvidia.com>
* | | | | TestRepository: Deprecate #getDate and use #getInstant insteadIvan Frade8 days4-14/+29
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Errorprone recomments to use the more modern java.time API instead of the java.util.Date family of classes. This removes all uses of TestRepository#getDate and replace them with getInstant. The method is marked as deprecated and doesn't have any other usages. Change-Id: I84ea63abf781d0d3c7c2724891fd2ef7afc2db1d
* | | | ArchiveCommandTest: add more detailed message if test failedXenoAmess9 days1-1/+4
| | | | | | | | | | | | | | | | Change-Id: I05230cd79d5b744bd1b37a2fb5ba69a8ad6bab62
* | | | Merge "RevertCommand: use only first line in revert commit message"Matthias Sohn9 days4-9/+45
|\ \ \ \
| * | | | RevertCommand: use only first line in revert commit messageThomas Wolf10 days4-9/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | C git uses only the first line of the title paragraph of the reverted commit to build the title of the revert commit. Align the JGit behavior with that. Since git 2.43.0, a revert of a revert uses a title "Reapply "xxx"" instead of "Revert "Revert "xxx""".[1] This is _not_ implemented in this change. [1] https://github.com/git/git/commit/883cb1b8f86d Bug: jgit-117 Change-Id: I030092c6b9447bb738e6d761af5ce50df58cc6d3
* | | | | Merge "PushCertificateIdentTest: Add test for the timezone parsing"Ivan Frade9 days1-0/+45
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | PushCertificateIdentTest: Add test for the timezone parsingIvan Frade9 days1-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PushCertificateIdent translates the hhmm in the certificate ident to minutes and then back to hhmm when a timezone is needed. This accepts invalid timezones like +0061 (which becomes +0101 (!)). Add test covering these peculiar timezone translations. This will help when porting the PushCertificateIdent to the new java.time API Change-Id: I008648d4e0c977eb3b3135e548d577680cf5f39c
* | | | | Submodules: use relative paths for worktree and gitdirSimon Eder10 days8-15/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently absolute paths are used for a submodules 'worktree' and 'gitdir'. This has drawbacks if a git repository containing submodules is copied to a different location. Enable using relative paths when creating a file-based repository. Add optional relative path support to the clone and init commands, and use it in the submodule commands to generate relative paths. The new implementation mimics the cgit behavior which also uses relative paths instead of absolute ones. Bug: jgit-78 Change-Id: I31c5a938d5cbc030d273fc649c94ee0c90b4ce01
* | | | | Merge "FileSnapshot: Delete malformed "catch" line (merge artifact?)"Ivan Frade11 days1-2/+0
|\| | | |
| * | | | FileSnapshot: Delete malformed "catch" line (merge artifact?)Ivan Frade11 days1-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The merge of this file left an empty catch block: error: [EmptyCatch] Caught exceptions should not be ignored Delete the catch, as the exception is a subclass of the FileSystemException catched just under it. Change-Id: I78d6b1ca8152b6eee50a69d24ca987868866ba06
* | | | | Merge "Remove use of deprecated java.security.AccessController"Matthias Sohn11 days1-9/+6
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Remove use of deprecated java.security.AccessControllerMatthias Sohn12 days1-9/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's deprecated and marked for removal since Java 17. Change-Id: I6d0d4ac08f10cc73a409f202628a23faed4e5b36
* | | | | Merge "PersonIdent: Default to UTC in timezone parsing"Ivan Frade11 days1-2/+9
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | PersonIdent: Default to UTC in timezone parsingIvan Frade12 days1-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old method "getTimeZone(int tzOffset)" defaults to UTC if the offset is out of range, but the new "getZoneId(int tzOffset)" throws an exception. Return UTC if the offset is invalid, to keep the behavior consistent with older code. Change-Id: Iffe1980b3bd9c05ef2293635a1cbb493144afb79
* | | | | Merge "Update .mailmap"Matthias Sohn12 days1-0/+13
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Update .mailmapMatthias Sohn13 days1-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for contributors - who used multiple email addresses - who used multiple display names Change-Id: If868bfdfe6fbb37af2360e5553fb9453c7fa4835
* | | | | RawParseUtils: Default to UTC in invalid timezonesIvan Frade12 days2-2/+23
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PersonIdent used to translate invalid timezones to UTC [1], but the new java.time code just throws an exception. Also the parsing used happen on demand, but now is done in the constructor, so the exception is thrown even if the timezone is not used at all. Check the parsed timezone and default to UTC if it is out of range. [1] https://docs.oracle.com/javase/8/docs/api/java/util/TimeZone.html#getTimeZone-java.lang.String- Change-Id: I90dd7d842ac8f44caef3b76d57375dead76bebde
* | | | Merge "RawParseUtils: Use java.time API to build PersonIdents"Ivan Frade2024-12-061-14/+39
|\ \ \ \
| * | | | RawParseUtils: Use java.time API to build PersonIdentsIvan Frade2024-12-051-14/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PersonIdent has deprecated the long/int constructors for the time, in favor of Instant/ZoneId. Update RawParseUtils to create PersonIdents with the new constructors. Change-Id: Ic62ff0c4219b4bd228c694e73e00a7c794e3553a
* | | | | Merge branch 'stable-7.1'Matthias Sohn2024-12-069-48/+87
|\ \ \ \ \ | |/ / / / |/| / / / | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-7.1: FileSnapshot: silence "Not a Directory" exceptions FileSnapshot: refactor to share error handling Mark Attribute#getValue as @Nullable Fix potential NPE in ResolveMerger#getAttributesContentMergeStrategy Fix NPE in DiffFormatter#getDiffDriver Pack: ensure packfile is still valid while still recoverable WindowCache: add bulk purge(), call from bulk sites UploadPack#implies: add missing @since tag Disable MergeToolTest#testEmptyToolName Change-Id: Ifa8df2b9e6e4ee371113b7114fe20b42333e3718
| * | | Merge branch 'stable-7.0' into stable-7.1Matthias Sohn2024-12-0610-48/+95
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-7.0: FileSnapshot: silence "Not a Directory" exceptions FileSnapshot: refactor to share error handling Mark Attribute#getValue as @Nullable Fix potential NPE in ResolveMerger#getAttributesContentMergeStrategy Fix NPE in DiffFormatter#getDiffDriver Pack: ensure packfile is still valid while still recoverable WindowCache: add bulk purge(), call from bulk sites UploadPack#implies: add missing @since tag Disable MergeToolTest#testEmptyToolName Change-Id: Icb25fed5b703c6a39a64231fd8ca93c1f1a581be
| | * | Merge branch 'stable-6.10' into stable-7.0Matthias Sohn2024-12-069-48/+89
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-6.10: FileSnapshot: silence "Not a Directory" exceptions FileSnapshot: refactor to share error handling Mark Attribute#getValue as @Nullable Fix potential NPE in ResolveMerger#getAttributesContentMergeStrategy Fix NPE in DiffFormatter#getDiffDriver Pack: ensure packfile is still valid while still recoverable WindowCache: add bulk purge(), call from bulk sites UploadPack#implies: add missing @since tag Disable MergeToolTest#testEmptyToolName Change-Id: I854f44e76b73ae434a0d6b6ab782fd0aed72f219
| | | * Merge changes I022639c4,I1fcce5ef into stable-6.10Matthias Sohn2024-12-051-15/+20
| | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | * changes: FileSnapshot: silence "Not a Directory" exceptions FileSnapshot: refactor to share error handling