summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test
Commit message (Collapse)AuthorAgeFilesLines
* JGit v5.1.8.201906050907-rv5.1.8.201906050907-rMatthias Sohn2019-06-052-2/+2
| | | | | Change-Id: Iae0ffe161df2ca8a800d21688d6b7d7419dfb640 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Test detecting modified packfilesChristian Halstrick2019-06-051-11/+222
| | | | | | | | | | | | | Test that JGit detects that packfiles have changed even if they are repacked multiple times in one tick of the filesystem timer. Test that this detection works also when repacking doesn't change the length or the filekey of the packfile. In this case where a modified file can't be detected by looking at file metadata JGit should still detect too fast modification by racy git checks and trigger rescanning the pack list and consequently rereading of packfile content. Change-Id: I67682cfb807c58afc6de9375224ff7489d6618fb Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Extend FileSnapshot for packfiles to also use checksum to detect changesMatthias Sohn2019-06-041-0/+143
| | | | | | | | | | | | | | If the attributes of FileSnapshot don't detect modification of a packfile read the packfile's checksum and compare it against the checksum cached in the loaded packfile. Since reading the checksum needs less IO than reloading the complete packfile this may help to reduce the overhead to detect modficiation when a gc completes while ObjectDirectory scans for packfiles in another thread. Bug: 546891 Change-Id: I9811b497eb11b8a85ae689081dc5d949ca8c4be5 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add FileSnapshot test testing recognition of file size changesMatthias Sohn2019-05-291-0/+17
| | | | Change-Id: Ibcd76a5e6e4183ada0be1d4436ce957243f2094d Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Capture reason for result of FileSnapshot#isModifiedMatthias Sohn2019-05-291-0/+7
| | | | | | | | | | | | | | | This allows to verify the expected behavior in FileSnapshotTest#testSimulatePackfileReplacement and enables extending FileSnapshot for packfiles to read the packfile's checksum as another criterion to detect modifications without reading the full content. Also add another field capturing the result of the last check if lastModified was racily clean. Remove unnecessary determination of raciness in the constructor. It was determined twice in all relevant cases. Change-Id: I100a2f49d7949693d7b72daa89437e166f1dc107 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Skip FileSnapshotTest#testSimulatePackfileReplacement on WindowsMatthias Sohn2019-05-291-0/+3
| | | | | | NTFS does not support FileKey hence ignore this test on Windows. Change-Id: I7b53a591daa5e03eb5e401b5b26d612ab68ce10d Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Tune max heap size for testsMatthias Sohn2019-05-291-1/+1
| | | | | | | | | | | | | | | | | | | | | This is an attempt to fix crashes observed on the new Jenkins infrastructure running on Kubernetes [1]. Increase it to 512m for - org.eclipse.jgit.ant.test - org.eclipse.jgit.http.test - org.eclipse.jgit.lfs.server.test - org.eclipse.jgit.lfs.test - org.eclipse.jgit.pgm.test Decrease it to 768m for - org.eclipse.jgit.test [1] e.g. https://ci-staging.eclipse.org/jgit/job/stable/job/jgit.gerrit/16074/console Change-Id: Id074ed0f7bcb8a13da649a547342af2a08439d9f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> (cherry picked from commit e19e859977525c2a39aaa928dfdef20e5fab7e3c)
* Fix FileSnapshotTest.testNewFileNoWait() to match its javadocMatthias Sohn2019-05-271-2/+0
| | | | | | | testNewFileNoWait() was identical to testNewFileWithWait() but claims it doesn't wait at all. Hence remove the waits. Change-Id: I49b8ca5cb49a43c55fe61870c18c42f32fb4b74d Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Include filekey file attribute when comparing FileSnapshotsMatthias Sohn2019-05-221-0/+28
| | | | | | | | | | | | | | | | | | | | | | Due to finite filesystem timestamp resolution the last modified timestamp of files cannot detect file changes which happened in the immediate past (less than one filesystem timer tick ago). Some filesystems expose unique file identifiers, e.g. inodes in Posix filesystems which are named filekeys in Java's BasicFileAttributes. Use them as another means to detect file modifications based on stat information. Running git gc on a repository yields a new packfile with the same id as a packfile which existed before the gc if these packfiles contain the same set of objects. The content of the old and the new packfile might differ if a different PackConfig was used when writing the packfile. Considering filekeys in FileSnapshot may help to detect such packfile modifications. Bug: 546891 Change-Id: I711a80328c55e1a31171d540880b8e80ec1fe095 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Measure file timestamp resolution used in FileSnapshotMatthias Sohn2019-05-221-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | FileSnapshot.notRacyClean() assumed a worst case filesystem timestamp resolution of 2.5 sec (FAT has a resolution of 2 sec). Instead measure timestamp resolution to avoid unnecessary IO caused by false positives in detecting the racy git problem caused by finite filesystem timestamp resolution [1]. Cache the measured resolution per FileStore since timestamp resolution depends on the respective filesystem type. If timestamp resolution cannot be measured or fails due to an exception fallback to the worst case FAT timestamp resolution and avoid caching this value. Add a 10% safety margin in FileSnapshot.notRacyClean(), though running FsTest.testFsTimestampResolution() 1000 times which is not using a safety margin didn't fail on Mac using APFS and Java 8, 11, 12. Measured Java file timestamp resolution: [2] [1] https://github.com/git/git/blob/master/Documentation/technical/racy-git.txt [2] https://docs.google.com/spreadsheets/d/1imy0y6WmRqBf0kjCxzxj2X7M50eIVfa7oaUIzEOHmjo Bug: 546891 Change-Id: I493f3b57b6b306285ffa7d392339d253e5966ab8 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Prepare 5.1.8-SNAPSHOT buildsMatthias Sohn2019-04-202-47/+47
| | | | | Change-Id: I331bbaefd42ef94673ae8565c9b2b3af9eadfda0 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* JGit v5.1.7.201904200442-rv5.1.7.201904200442-rMatthias Sohn2019-04-202-2/+2
| | | | | Change-Id: Ifaa3a88c5e117912a8c691b8b8369dd9a17faebb Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Merge branch 'stable-5.0' into stable-5.1Matthias Sohn2019-03-211-0/+17
|\ | | | | | | | | | | | | | | * stable-5.0: Fix GC to delete empty fanout directories after repacking Change-Id: I5c0e7d59f137c27e4588f20f4472d3ea450cd59c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Merge branch 'stable-4.11' into stable-5.0Matthias Sohn2019-03-211-0/+17
| |\ | | | | | | | | | | | | | | | | | | | | | * stable-4.11: Fix GC to delete empty fanout directories after repacking Change-Id: Idce894a24e126e0fbe7bc9b6a3c64318f1a8eb75 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | * Merge branch 'stable-4.10' into stable-4.11Matthias Sohn2019-03-211-0/+17
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-4.10: Fix GC to delete empty fanout directories after repacking Change-Id: I7118b9c668dcbb0f5435cc613e964c557bfebf01 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | | * Merge branch 'stable-4.9' into stable-4.10Matthias Sohn2019-03-211-0/+17
| | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-4.9: Fix GC to delete empty fanout directories after repacking Change-Id: Ibdbfe08eb290286fa738010bad1c604e857885cd Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | | | * Fix GC to delete empty fanout directories after repackingMatthias Sohn2019-03-201-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The prune method did not delete empty fanout directories when loose objects moved to a new pack file but only when loose unreferenced objects were pruned. Change-Id: Ia068f4914c54d9cf9f40b75e8ea50759402b5000 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | | | * Prepare 4.9.10-SNAPSHOT buildsMatthias Sohn2019-03-132-47/+47
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I2bdbe822ee623c5f15a26d092136d8602cef06ac Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | | | * JGit v4.9.9.201903122025-rv4.9.9.201903122025-rMatthias Sohn2019-03-132-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I807d24461b3557eee48294bfaa652b2a13d78113 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | * | | Prepare 4.11.8-SNAPSHOT buildsMatthias Sohn2019-03-132-47/+47
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I92789b0c02e83786961b81556bf2faec5d26b0c1 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | * | | JGit v4.11.7.201903122105-rv4.11.7.201903122105-rMatthias Sohn2019-03-132-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I4fc62c304b5a8452ca72a3b305e5732a26120000 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | | | Merge branch 'stable-4.11' into stable-5.0David Pursehouse2019-03-061-0/+52
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-4.11: Fix error log message in ObjectDirectory.handlePackError() Properly format pack checksums in PackFile.idx() Cancel gc if thread was interrupted PackFile: report correct message for checksum mismatch ObjectDirectory: Clean up logging Bazel: Stop using native.git_repository ObjectDirectory: extra logging on packfile exceptions Change-Id: If75b149e693005dd3fe06b523e6e6784bedf44c1 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
| | * | | Merge branch 'stable-4.10' into stable-4.11David Pursehouse2019-03-061-0/+52
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-4.10: Fix error log message in ObjectDirectory.handlePackError() Properly format pack checksums in PackFile.idx() Cancel gc if thread was interrupted PackFile: report correct message for checksum mismatch ObjectDirectory: Clean up logging Bazel: Stop using native.git_repository ObjectDirectory: extra logging on packfile exceptions Change-Id: I9052e318b5d920770f7c7121d36e3c58df9d5f5a Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
| | | * | Merge branch 'stable-4.9' into stable-4.10David Pursehouse2019-03-061-0/+52
| | | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-4.9: Fix error log message in ObjectDirectory.handlePackError() Properly format pack checksums in PackFile.idx() Cancel gc if thread was interrupted PackFile: report correct message for checksum mismatch ObjectDirectory: Clean up logging Bazel: Stop using native.git_repository ObjectDirectory: extra logging on packfile exceptions Change-Id: I0847251eb010616a705e0b91df4bdebc225fa95d Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
| | | | * Cancel gc if thread was interruptedMatthias Sohn2019-03-061-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | see https://groups.google.com/d/msg/repo-discuss/oDB2rl3doDc/tFEh5Xt0CAAJ Change-Id: Ia6d4631c64e065d8b9b09e0b45e7a9ea8ac3f41d Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> (cherry picked from commit 882fed0d96c533513c43ae77aaff9cc07b94012c)
| | | | * Prepare 4.9.9-SNAPSHOT buildsMatthias Sohn2018-12-252-47/+47
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I0f7238ce8f79063a410c85701020ffce2b1234cf Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | | | * JGit v4.9.8.201812241815-rv4.9.8.201812241815-rMatthias Sohn2018-12-252-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ic75e4611cce396b186680bc962f0c73b2ee5fff1 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | | | * Prepare 4.9.8-SNAPSHOT buildsMatthias Sohn2018-10-202-47/+47
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Iab7b0f2a21a76f801a83fbeb54f09d1525878f4d Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | | | * JGit v4.9.7.201810191756-rv4.9.7.201810191756-rMatthias Sohn2018-10-192-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ib980731eb9ec7f4c92deac9b4cf2f7a994d670c2 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | * | | Prepare 4.11.7-SNAPSHOT buildsMatthias Sohn2018-12-252-47/+47
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I97dc0f4aeb51c2084f40531ceac84e90bf70608d Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | * | | JGit v4.11.6.201812241910-rv4.11.6.201812241910-rMatthias Sohn2018-12-252-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I21bfe7a76450184bce43cbe8ebcaa7891e4b12ed Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | | Prepare 5.1.7-SNAPSHOT buildsMatthias Sohn2019-03-132-47/+47
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ica716b2ad18f8390e75466430ef81c86ea06f004 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | | JGit v5.1.6.201903130242-rv5.1.6.201903130242-rMatthias Sohn2019-03-132-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Iaf5e451f72dc8512afee99a9f3fb91aa348e3cf5 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | | Cancel gc if thread was interruptedMatthias Sohn2019-03-031-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | see https://groups.google.com/d/msg/repo-discuss/oDB2rl3doDc/tFEh5Xt0CAAJ Change-Id: Ia6d4631c64e065d8b9b09e0b45e7a9ea8ac3f41d Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | | Prepare 5.1.6-SNAPSHOT buildsMatthias Sohn2018-12-272-47/+47
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: If3313d602aa57cfa031ba2c9ec03bd51b464dc19 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | | JGit v5.1.5.201812261915-rv5.1.5.201812261915-rMatthias Sohn2018-12-272-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I249a440d1ca1c997343da942ae55fcb27a645b92 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | | Prepare 5.1.5-SNAPSHOT buildsMatthias Sohn2018-12-262-47/+47
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I3eeb24b01a4f955e7e933238defb42635ebfec7d Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | | JGit v5.1.4.201812251853-rv5.1.4.201812251853-rMatthias Sohn2018-12-262-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I30ba167bcd8144074553d7446a45fa6be19584fe Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | | UploadPack: Defer want-ref resolution to after parsingJonathan Nieder2018-12-261-30/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ProtocolV2Parser explains: // TODO(ifrade): This validation should be done after the // protocol parsing. It is not a protocol problem asking for an // unexisting ref and we wouldn't need the ref database here. Do so. This way all ref database accesses are in one place, in the UploadPack class. No user-visible change intended --- this is just to make the code easier to manipulate. Change-Id: I68e87dff7b9a63ccc169bd0836e8e8baaf5d1048 Signed-off-by: Jonathan Nieder <jrn@google.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | | Merge branch 'stable-5.0' into stable-5.1David Pursehouse2018-11-271-16/+39
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-5.0: Fix DescribeCommand with multiple match options Fix git-describe tie-breakers Change-Id: I63e7a56bb617b5ce8774e1dc7f5efdde25e7cd97 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
| * | | | Merge branch 'stable-4.11' into stable-5.0David Pursehouse2018-11-271-16/+39
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-4.11: Fix DescribeCommand with multiple match options Fix git-describe tie-breakers Change-Id: Ibb98f143ee0ce7635beb30ec404b4134a73788f6 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
| | * | | Fix DescribeCommand with multiple match optionsMatthias Sohn2018-11-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when multiple match options are given in git describe the result must not depend on the order of the match options. JGit wrongly picked the first match using the match options in the order they were defined. Fix this by concatenating the streams of matching tags for all match options and then choosing the first match on the concatenated stream sorted in tie break order. See https://git-scm.com/docs/git-describe#git-describe---matchltpatterngt Change-Id: Id01433d35fa16fb4c30526605bee041ac1d954b2 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | * | | Fix git-describe tie-breakersHåvard Wall2018-11-091-15/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Correct behaviour as git 1.7.1.1 is to resolve tie-breakers to choose the most recent tag. https://github.com/git/git/blob/master/Documentation/RelNotes/1.7.1.1.txt: * "git describe" did not tie-break tags that point at the same commit correctly; newer ones are preferred by paying attention to the tagger date now. Bug: 538610 Change-Id: Ib0b2a301997bb7f75935baf7005473f4de952a64 Signed-off-by: Håvard Wall <haavardw@gmail.com>
| | * | | Prepare 4.11.6-SNAPSHOT buildsMatthias Sohn2018-10-202-47/+47
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ic823775aad59530f516602e7e848474d65763314 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | * | | JGit v4.11.5.201810191925-rv4.11.5.201810191925-rMatthias Sohn2018-10-202-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I9d11536062de74775ca545c26f341610d0ddaeb2 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | | Prepare 5.1.4-SNAPSHOT buildsMatthias Sohn2018-10-202-47/+47
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Iee86860f3b4eb9f4af818c60342fd29465c0474c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | | JGit v5.1.3.201810200350-rv5.1.3.201810200350-rMatthias Sohn2018-10-202-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ib2c5a79d4fdf77680b7b65652fc3659527df27ad Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | | Prepare 5.1.3-SNAPSHOT buildsMatthias Sohn2018-10-062-47/+47
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I75c1a01885115fc709ab37f181234264c3f7423a Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | | JGit v5.1.2.201810061102-rv5.1.2.201810061102-rMatthias Sohn2018-10-062-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Id34e4ae12a796460862edc37c5eb072314199bf4 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | | Merge branch 'stable-5.0' into stable-5.1Matthias Sohn2018-10-063-2/+210
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-5.0: Prepare 4.11.5-SNAPSHOT builds JGit v4.11.4.201810060650-r Fix configuration of maven-javadoc-plugin Prepare 4.9.7-SNAPSHOT builds JGit v4.9.6.201810051924-r Prepare 4.7.6-SNAPSHOT builds JGit v4.7.5.201810051826-r BaseReceivePack: Validate incoming .gitmodules files ObjectChecker: Report .gitmodules files found in the pack SubmoduleAddCommand: Reject submodule URIs that look like cli options * Fix todos in SubmoduleAddTest Change-Id: I53272081094b8948a40a1ce409af08b6ef330c1e Signed-off-by: Jonathan Nieder <jrn@google.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>