aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* JGit v5.11.0.202103091610-rv5.11.0.202103091610-rMatthias Sohn2021-03-0988-121/+121
| | | | | Change-Id: I8e6855eaf7228459f492036feb4e34ca085698a7 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Merge branch 'master' into stable-5.11Matthias Sohn2021-03-0922-276/+790
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master: Manually set status of jmh dependencies Update DEPENDENCIES report for 5.11.0 Add dependency to dash-licenses PackFile: Add id + ext based constructors GC: deleteOrphans: Use PackFile PackExt: Convert to Enum Restore preserved packs during missing object seeks Pack: Replace extensions bitset with bitmapIdx PackFile PackDirectory: Use PackFile to ensure we find preserved packs GC: Use PackFile to de-dup logic Create a PackFile class for Pack filenames Change-Id: I1d56517cb6a95e10aed22cdb9e5f3e504872d110
| * Manually set status of jmh dependenciesMatthias Sohn2021-03-071-2/+2
| | | | | | | | | | | | | | | | | | The following jmh dependencies were approved as works-with: - jmh-core/1.21 has GPL-2.0 license and was approved in CQ20517 - jmh-generator-annprocess/1.21 has GPL-2.0 license and was approved in CQ20518 Change-Id: Ibbe28c6e8359c576b23f40281e74f2e0d4a0dee0
| * Update DEPENDENCIES report for 5.11.0Matthias Sohn2021-03-071-0/+66
| | | | | | | | | | | | | | | | Computed by dash license-tool-plugin [1]. [1] https://github.com/eclipse/dash-licenses Change-Id: I28727115914613cefdcf9a9f462c195b6af23156
| * Add dependency to dash-licensesMatthias Sohn2021-03-071-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is required to run the license check using the license tool [1] required by the Eclipse project handbook [2]: mvn org.eclipse.dash:license-tool-plugin:license-check -Ddash.summary=DEPENDENCIES Note: the tool still requires Java 11 hence it needs to be run in a separate build step and is not yet integrated in the build which runs on Java 8. [1] https://github.com/eclipse/dash-licenses [2] https://www.eclipse.org/projects/handbook/#ip-license-tool Change-Id: Ib41d54de246c3c9499cc3be9f026294c39fdfd99
| * PackFile: Add id + ext based constructorsNasser Grainawi2021-03-0711-62/+106
| | | | | | | | | | | | | | | | | | | | | | Add new constructors to PackFile to improve a common use case where callers know the directory, id, and extension, but previously needed to construct a valid file name (with prefix, '.', etc) to create a PackFile. Most callers can use the variant that has id as an ObjectId, but provide an id as String variant too. Change-Id: I39e4466abe8c9509f5916d5bfe675066570b8585 Signed-off-by: Nasser Grainawi <quic_nasserg@quicinc.com>
| * GC: deleteOrphans: Use PackFileNasser Grainawi2021-03-041-13/+16
| | | | | | | | | | | | | | | | It's easier to follow the logic here when we can use our own objects instead of Strings. Change-Id: I6a166edcc67903fc1ca3544f458634c4cef8fde7 Signed-off-by: Nasser Grainawi <quic_nasserg@quicinc.com>
| * PackExt: Convert to EnumNasser Grainawi2021-03-042-56/+19
| | | | | | | | | | | | | | | | | | | | This class already looked very much like an Enum, but wasn't one. As an Enum, we can use PackExt in EnumMaps and EnumSets. Convert the Map key usage in PackDirectory to an EnumMap. Change-Id: Ice097fd468a05805f914e6862fbd1d96ec8c45d1 Signed-off-by: Nasser Grainawi <quic_nasserg@quicinc.com>
| * Restore preserved packs during missing object seeksMartin Fick2021-03-043-12/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide a recovery path for objects being referenced during the pack pruning race. Due to the pack pruning race, it is possible for objects to become referenced after a pack has been deemed safe to prune, but before it actually gets pruned. If this happened previously, the newly referenced objects would be missing and potentially result in a corrupted ref. Add the ability to recover from this situation when an object is missing but happens to still be available in a pack in the "preserved" directory. This is likely only useful when used in conjunction with the --preserve-old-packs GC option, which prunes packs by hard-linking to the preserved directory. If an object is missing and found in a pack in the preserved directory, immediately recover that pack and its associated files (idx, bitmaps...) by moving them back to the original pack directory, and then retry the operation that would have failed due to the missing object. This retry can now succeed and the repository may avoid corruption. This approach should drastically reduce the chance of a corrupt repository during pack pruning at very little extra cost. This extra cost should only be incurred when objects are missing and a failure would normally occur. Change-Id: I2a704e3276b88cc892159d9bfe2455c6eec64252 Signed-off-by: Martin Fick <quic_mfick@quicinc.com> Signed-off-by: Nasser Grainawi <quic_nasserg@quicinc.com>
| * Pack: Replace extensions bitset with bitmapIdx PackFileNasser Grainawi2021-03-044-48/+40
| | | | | | | | | | | | | | | | | | The only extension that was ever consulted from the bitmap was the bitmap index. We can simplify the Pack code as well as the code of all the callers if we focus on just that usage. Change-Id: I799ddfdee93142af67ce5081d14a430d36aa4c15 Signed-off-by: Nasser Grainawi <quic_nasserg@quicinc.com>
| * PackDirectory: Use PackFile to ensure we find preserved packsNasser Grainawi2021-03-041-31/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update scanPacksImpl and listPackDirectory (renamed to getPackFilesByExtById) to use the new PackFile functionality to validate file names and complete pack file sets (.pack, .idx, etc). Most importantly, this allows a later change to rely on scanPacks() to complete a packList that contains packs with the 'old-' prefix in their extension. This also eliminates duplication of logic for how to identify and construct pack files. Change-Id: I7175e5fefb187a29e0a7cf53c392aee922314f31 Signed-off-by: Nasser Grainawi <quic_nasserg@quicinc.com>
| * GC: Use PackFile to de-dup logicNasser Grainawi2021-03-041-25/+16
| | | | | | | | | | | | | | | | GC has several places where it tries to build files names for packs that we can use the PackFile class for instead. Change-Id: I99e5ceff9050f8583368fca35279251955e4644d Signed-off-by: Nasser Grainawi <quic_nasserg@quicinc.com>
| * Create a PackFile class for Pack filenamesNasser Grainawi2021-03-0411-60/+348
| | | | | | | | | | | | | | | | | | | | | | The PackFile class is intended to be a central place to do all common pack filename manipulation and parsing to help reduce repeated code and bugs. Use the PackFile class in the Pack class and in many tests to ensure it works well in a variety of situations. Later changes will expand use of PackFiles to even more areas. Change-Id: I921b30f865759162bae46ddd2c6d669de06add4a Signed-off-by: Nasser Grainawi <quic_nasserg@quicinc.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Prepare 5.11.0-SNAPSHOT buildsMatthias Sohn2021-03-0488-121/+121
| | | | | | | | | | Change-Id: I89ed49a6acc53dd75d16f40c99e1140e0c18f646 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | JGit v5.11.0.202103031150-rc1v5.11.0.202103031150-rc1Matthias Sohn2021-03-0388-121/+121
| | | | | | | | | | Change-Id: I0a86fa59645888f9f36ea6938c9121e095f02fc6 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Merge branch 'master' into stable-5.11Matthias Sohn2021-03-0343-265/+460
|\| | | | | | | | | | | | | | | | | | | * master: HTTP: cookie file stores expiration in seconds Update Orbit to S20210223232630 LFS: handle invalid pointers better Fix errorprone configuration for maven-compiler-plugin with javac Change-Id: Ib76e754bd36789de0a3c6b85a4814aa1fe9cb401
| * HTTP: cookie file stores expiration in secondsThomas Wolf2021-03-036-87/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | A cookie file stores the expiration in seconds since the Linux Epoch, not in milliseconds. Correct reading and writing cookie files; with a backwards-compatibility hack to read files that contain a millisecond timestamp. Add a test, and fix tests not to rely on the actual current time so that they will also run successfully after 2030-01-01 noon. Bug: 571574 Change-Id: If3ba68391e574520701cdee119544eedc42a1ff2 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
| * Merge "Update Orbit to S20210223232630"Matthias Sohn2021-03-0229-44/+44
| |\
| | * Update Orbit to S20210223232630Matthias Sohn2021-03-0129-44/+44
| | | | | | | | | | | | Change-Id: Ida7a54cfe0bd15c1c28b892dea3452958924f0c0 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | LFS: handle invalid pointers betterThomas Wolf2021-03-016-50/+289
| |/ | | | | | | | | | | | | | | | | | | | | | | Make sure that SmudgeFilter calls LfsPointer.parseLfsPointer() with a stream that supports mark/reset, and make sure that parseLfsPointer() resets the stream properly if it decides that the stream content is not a LFS pointer. Add a test. Bug: 570758 Change-Id: I2593d67cff31b2dfdfaaa48e437331f0ed877915 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
| * Fix errorprone configuration for maven-compiler-plugin with javacMatthias Sohn2021-02-272-84/+37
| | | | | | | | | | | | | | | | | | | | | | | | See https://errorprone.info/docs/installation. Add new profile jdk8 to enable running errorprone with javac on java 8 and java 11. Remove errorprone configuration from benchmark module, didn't find a way to make it work and this module does not contain any productive code. Change-Id: I6a84195af05e6cea9e7c04ad5cd4c79742e80cb3 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Merge branch 'stable-5.11'Matthias Sohn2021-02-250-0/+0
| |\ | |/ |/| | | | | | | | | | | * stable-5.11: Prepare 5.11.0-SNAPSHOT builds JGit v5.11.0.202102240950-m3 Change-Id: Ia216a698dd4f0dd235dfe4de4d2cc127aa530eed
* | Prepare 5.11.0-SNAPSHOT buildsMatthias Sohn2021-02-2488-121/+121
| | | | | | | | | | Change-Id: If3dbe084ee37ae4b993d3a10ec48b14e8709ff6d Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | JGit v5.11.0.202102240950-m3v5.11.0.202102240950-m3Matthias Sohn2021-02-2488-121/+121
| | | | | | | | | | Change-Id: Iea6b3515fa63db497989194b6bf50fe7324086d0 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Merge branch 'master' into stable-5.11Matthias Sohn2021-02-24188-1367/+6701
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master: (35 commits) [releng] japicmp: update last release version IgnoreNode: include path to file for invalid .gitignore patterns FastIgnoreRule: include bad pattern in log message init: add config option to set default for the initial branch name init: allow specifying the initial branch name for the new repository Fail clone if initial branch doesn't exist in remote repository GPG: fix reading unprotected old-format secret keys Update Orbit to S20210216215844 Add missing bazel dependency for o.e.j.gpg.bc.test GPG: handle extended private key format dfs: handle short copies [GPG] Provide a factory for the BouncyCastleGpgSigner Fix boxing warnings GPG: compute the keygrip to find a secret key GPG signature verification via BouncyCastle Post commit hook failure should not cause commit failure Allow to define additional Hook classes outside JGit GitHook: use default charset for output and error streams GitHook: use generic OutputStream instead of PrintStream Update jetty to 9.4.36.v20210114 ... Change-Id: I1cf5ab262c67b986e82422c48dfc103e335d28cc
| * [releng] japicmp: update last release versionThomas Wolf2021-02-231-1/+1
| | | | | | | | | | | | | | The baseline for the 5.11 release is 5.10.0.202012080955-r. Change-Id: Ied9b42dc58ba981e5586fa58d1b3e70a39c78a10 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
| * IgnoreNode: include path to file for invalid .gitignore patternsThomas Wolf2021-02-235-26/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | Include the full file path of the .gitignore file and the line number of the invalid pattern. Also include the pattern itself. .gitignore files inside the repository are reported with their repository-relative path; files outside (from git config core.excludesFile or .git/info/exclude) are reported with their full absolute path. Bug: 571143 Change-Id: Ibe5969679bc22cff923c62e3ab9801d90d6d06d1 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
| * FastIgnoreRule: include bad pattern in log messageThomas Wolf2021-02-233-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | When a .gitignore pattern cannot be parsed include the pattern in the log message. Just reporting "not closed bracket" isn't helpful if the user doesn't know in which pattern the problem occurred. Even better would be to include the full path of the .gitignore file that contained the offending pattern. This is not implemented in this change; it may need new API and needs more thought. Bug: 571143 Change-Id: Id5b16d9cf550544ba3ad409a02041946fa8516ab Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
| * init: add config option to set default for the initial branch nameMatthias Sohn2021-02-224-4/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We introduced the option --initial-branch=<branch-name> to allow initializing a new repository with a different initial branch. To allow users to override the initial branch name more permanently (i.e. without having to specify the name manually for each 'git init'), introduce the 'init.defaultBranch' option. This option was added to git in 2.28.0. See https://git-scm.com/docs/git-config#Documentation/git-config.txt-initdefaultBranch Bug: 564794 Change-Id: I679b14057a54cd3d19e44460c4a5bd3a368ec848 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * init: allow specifying the initial branch name for the new repositoryMatthias Sohn2021-02-228-2/+144
| | | | | | | | | | | | | | | | | | | | | | Add option --initial-branch/-b to InitCommand and the CLI init command. This is the first step to implement support for the new option init.defaultBranch. Both were added to git in release 2.28. See https://git-scm.com/docs/git-init#Documentation/git-init.txt--bltbranch-namegt Bug: 564794 Change-Id: Ia383b3f90b5549db80f99b2310450a7faf6bce4c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Fail clone if initial branch doesn't exist in remote repositoryMatthias Sohn2021-02-228-8/+139
| | | | | | | | | | | | | | | | | | | | jgit clone --branch foo <url> did not fail if the remote branch "foo" didn't exist in the remote repository being cloned. Bug: 546580 Change-Id: I55648ad3a39da4a5711dfa8e6d6682bb8190a6d6 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * GPG: fix reading unprotected old-format secret keysThomas Wolf2021-02-224-15/+53
| | | | | | | | | | | | | | | | Fix code and add a test case. The old code passed on the original input stream, which has already been consumed. Bug: 570501 Change-Id: I81f60698ce42443df57e59b1d1ab155574136fa8 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
| * Update Orbit to S20210216215844Matthias Sohn2021-02-2130-110/+44
| | | | | | | | Change-Id: Ic3af137e4aad0e6f7fd32c910766f547562442d6 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Add missing bazel dependency for o.e.j.gpg.bc.testMatthias Sohn2021-02-201-0/+1
| | | | | | | | | | | | This was missed in 64cbea8a9794047fe576d03ab8a46e4eaf7eabee. Change-Id: I0b2b234b9888a7dd8b7ace624233b141fb7c4394 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * GPG: handle extended private key formatThomas Wolf2021-02-1920-94/+2157
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add detection for the key-value pair format that was available in gpg-agent for some time already and that has become the default since gpg-agent 2.2.20. If a secret key in the .gnupg/private-keys-v1.d directory is found to have this format, extract the human-readable key from it, convert it to the binary serialized form and hand that to BouncyCastle. Encrypted keys in the new format may use AES/OCB. OCB is a patent- encumbered algorithm; although there is a license for open-source software, that may not be good enough and OCB may not be available in Java. It is not available in the default security provider in Java, and it is also not available in the BouncyCastle version included in Eclipse. Implement AES/OCB decryption, throwing a PGPException with a nice message if the algorithm is not available. Include a copy of the normal s-expression parser of BouncyCastle and fix it to properly handle data from such keys: such keys do not contain an internal hash since the AES/OCB cipher includes and checks a MAC already. Bug: 570501 Change-Id: Ifa6391a809a84cfc6ae7c6610af6a79204b4143b Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
| * dfs: handle short copieswh2021-02-191-2/+9
| | | | | | | | | | | | | | | | | | | | `copy` is documented as possibly returning a smaller number of bytes than requested. In practice, this can occur if a block is cached and the reader never pulls in the file to check its size. Bug: 565874 Change-Id: I1e53b3d2f4ab09334178934dc0ef74ea99045cd3 Signed-off-by: wh <wh9692@protonmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Merge "[GPG] Provide a factory for the BouncyCastleGpgSigner"Thomas Wolf2021-02-192-1/+36
| |\
| | * [GPG] Provide a factory for the BouncyCastleGpgSignerThomas Wolf2021-02-192-1/+36
| | | | | | | | | | | | | | | | | | | | | Otherwise client code has no way to ever create an instance without using internal non-API. Change-Id: I6201f98d4b1704a053159967b8adacd98e368522 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
| * | Merge "Rename PackFile to Pack"Jonathan Nieder2021-02-1837-264/+267
| |\ \ | | |/ | |/|
| | * Rename PackFile to PackNasser Grainawi2021-02-1037-264/+267
| | | | | | | | | | | | | | | | | | | | | | | | Pack better represents the purpose of the object and paves the way to add a PackFile object that extends File. Change-Id: I39b4f697902d395e9b6df5e8ce53078ce72fcea3 Signed-off-by: Nasser Grainawi <quic_nasserg@quicinc.com>
| * | Fix boxing warningsMatthias Sohn2021-02-172-2/+2
| | | | | | | | | | | | Change-Id: Idf4887a99e87c375ec32e2fd289cfce82d78cbce Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | GPG: compute the keygrip to find a secret keyThomas Wolf2021-02-1625-67/+869
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The gpg-agent stores secret keys in individual files in the secret key directory private-keys-v1.d. The files have the key's keygrip (in upper case) as name and extension ".key". A keygrip is a SHA1 hash over the parameters of the public key. By computing this keygrip, we can pre-compute the expected file name and then check only that one file instead of having to iterate over all keys stored in that directory. This file naming scheme is actually an implementation detail of gpg-agent. It is unlikely to change, though. The keygrip itself is computed via libgcrypt and will remain stable according to the GPG main author.[1] Add an implementation for calculating the keygrip and include tests. Do not iterate over files in BouncyCastleGpgKeyLocator but only check the single file identified by the keygrip. Ideally upstream BouncyCastle would provide such a getKeyGrip() method. But as it re-builds GPG and libgcrypt internals, it's doubtful it would be included there, and since BouncyCastle even lacks a number of curve OIDs for ed25519/curve25519 and uses the short-Weierstrass parameters instead of the more common Montgomery parameters, including it there might be quite a bit of work. [1] http://gnupg.10057.n7.nabble.com/GnuPG-2-1-x-and-2-2-x-keyring-formats-tp54146p54154.html Bug: 547536 Change-Id: I30022a0e7b33b1bf35aec1222f84591f0c30ddfd Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
| * | GPG signature verification via BouncyCastleThomas Wolf2021-02-1624-44/+1507
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a GpgSignatureVerifier interface, plus a factory to create instances thereof that is provided via the ServiceLoader mechanism. Implement the new interface for BouncyCastle. A verifier maintains an internal LRU cache of previously found public keys to speed up verifying multiple objects (tag or commits). Mergetags are not handled. Provide a new VerifySignatureCommand in org.eclipse.jgit.api together with a factory method Git.verifySignature(). The command can verify signatures on tags or commits, and can be limited to accept only tags or commits. Provide a new public WrongObjectTypeException thrown when the command is limited to either tags or commits and a name resolves to some other object kind. In jgit.pgm, implement "git tag -v", "git log --show-signature", and "git show --show-signature". The output is similar to command-line gpg invoked via git, but not identical. In particular, lines are not prefixed by "gpg:" but by "bc:". Trust levels for public keys are read from the keys' trust packets, not from GPG's internal trust database. A trust packet may or may not be set. Command-line GPG produces more warning lines depending on the trust level, warning about keys with a trust level below "full". There are no unit tests because JGit still doesn't have any setup to do signing unit tests; this would require at least a faked .gpg directory with pre-created key rings and keys, and a way to make the BouncyCastle classes use that directory instead of the default. See bug 547538 and also bug 544847. Tested manually with a small test repository containing signed and unsigned commits and tags, with signatures made with different keys and made by command-line git using GPG 2.2.25 and by JGit using BouncyCastle 1.65. Bug: 547751 Change-Id: If7e34aeed6ca6636a92bf774d893d98f6d459181 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
| * | Post commit hook failure should not cause commit failureTim Neumann2021-02-152-4/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As the post commit hook is run after a commit is finished, it can not abort the commit and the exit code of this hook should not have any effect. This can be achieved by not throwing a AbortedByHookException exception. The stderr output is not lost thanks to contributions for bug 553471. Bug: 553428 Change-Id: I451a76e04103e632ff44e045561c5a41f7b7d558 Signed-off-by: Tim Neumann <Tim.Neumann@advantest.com> Signed-off-by: Fabian Pfaff <fabian.pfaff@vogella.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Allow to define additional Hook classes outside JGitMatthias Sohn2021-02-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | EGit wants to add gitflow specific hooks in org.eclipse.egit.gitflow. Make GitHook public to allow sub-classing outside of the org.eclipse.jgit.hooks package. Change-Id: I439575ec901e3610b5cf9d66f7641c8324faa865 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | GitHook: use default charset for output and error streamsMatthias Sohn2021-02-151-4/+6
| | | | | | | | | | | | | | | | | | External scripts most probably expect the default charset. Change-Id: I318a5e1d9f536a95e70c06ffb5b6f408cd40f73a Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | GitHook: use generic OutputStream instead of PrintStreamMatthias Sohn2021-02-155-28/+49
| | | | | | | | | | | | Change-Id: I15e64dc963c9d27dc9c8de4976dd63f74b918b15 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Update jetty to 9.4.36.v20210114Matthias Sohn2021-02-1317-315/+315
| | | | | | | | | | | | Change-Id: Iea57f0fddb0f10dbd1c9be886bfa5ad8c3ff5cb5 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Allow dir/file conflicts in virtual base commit on recursive merge.Marija Savtchouk2021-02-092-10/+277
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If RecursiveMerger finds multiple base commits, it tries to compute the virtual ancestor to use as a base for the three way merge. Currently, the content conflicts between ancestors are ignored (file staged with the conflict markers). If the path is a file in one ancestor and a dir in the other, it results in NoMergeBaseException (CONFLICTS_DURING_MERGE_BASE_CALCULATION). Allow these conflicts by ignoring this unmerged path in the virtual base. The merger will compute diff in the children instead and it can be further fixed manually if needed. Change-Id: Id59648ae1d6bdf300b26fff513c3204317b755ab Signed-off-by: Marija Savtchouk <mariasavtchouk@google.com>
| * Merge "GitHook: make fields outputStream and errorStream private"Christian Halstrick2021-02-091-2/+2
| |\