summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Prepare 4.9.0-SNAPSHOT buildsMatthias Sohn2017-05-3056-323/+323
| | | | | Change-Id: I52a4153d573799e861ab104939f51fac1aceb9ee Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Fix out-of-bounds exception in RepoCommand#relativeHan-Wen Nienhuys2017-05-242-10/+22
| | | | | Change-Id: I9c91aa2ff037bff27a8131fba54be22f5f27d80d Signed-off-by: Han-Wen Nienhuys <hanwen@google.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Fix null return from FS.readPipe when command fails to launchBryan Donlan2017-05-242-4/+19
| | | | | | | | | | | | | | | When a command invoked from readPipe fails to launch (i.e. the exec call fails due to a missing command executable), Process.start() throws, which gets caught by the generic IOException handler, resulting in a null return. This change detects this case and rethrows a CommandFailedException instead. Additionally, this change uses /bin/sh instead of bash for its posix command failure test, to accomodate building in environments where bash is unavailable. Change-Id: Ifae51e457e5718be610c0a0914b18fe35ea7b008 Signed-off-by: Bryan Donlan <bdonlan@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* RenameDetector: Clarify rename limits <= 0Dave Borowitz2017-05-241-1/+3
| | | | Change-Id: I8da386e02272316b8e5e5c2f31ce10ad98bcdb28
* Remove unnecessary cast for DfsReaderZhen Chen2017-05-222-2/+2
| | | | | Change-Id: I22aaccfc9d589750f9d1d711b655dd0fd543fa57 Signed-off-by: Zhen Chen <czhen@google.com>
* Merge "Fix javadoc of TooLargeObjectInPackException"David Pursehouse2017-05-221-1/+2
|\
| * Fix javadoc of TooLargeObjectInPackExceptionMatthias Sohn2017-05-191-1/+2
| | | | | | | | | | | | | | The API exception should have the same javadoc like the internal exception org.eclipse.jgit.errors.TooLargeObjectInPackException Change-Id: Ia7508c77609e53c8e808412ac523a93194648e49 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Allow DfsReader to be subclassedShawn Pearce2017-05-195-8/+14
| | | | | | | | | | | | | | Necessary if a DFS implementation wants to override close() to record DfsReaderIoStats. Change-Id: I144575f9bf1abf2c1fd72030550c4f0795fcf44d
* | Track read IO for DfsReaderShawn Pearce2017-05-194-11/+173
| | | | | | | | | | | | | | | | | | Compute how much disk IO a DfsReader is performing, and how long the sum of those operations took on this reader instance. Implementations of DFS and interested applications can get the stats by calling the new DfsReader.getIoStats() method at or after close(). Change-Id: If585741301f29182617933d6406d4a70497f2ca7
* | Merge "Exclude refs/tags from bitmap commit selection"Terry Parker2017-05-187-59/+159
|\ \ | |/ |/|
| * Exclude refs/tags from bitmap commit selectionTerry Parker2017-05-187-59/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit db77610 ensured that all refs/tags commits are added to the primary GC pack. It did that by adding all of the refs/tags commits to the primary GC pack PackWriter's "interesting" object set. Unfortunately, all commit objects in the "interesting" set are selected as commits for which bitmap indices will be built. In a repository like chromium with lots of tags, this changed the number of bitmaps created from <700 to >10000. That puts huge memory pressure on the GC task. This change restores the original behavior of ignoring tags when selecting commits for bitmaps. In the "uninteresting" set, commits for refs/heads and refs/tags for unannotated tags can not be differentiated. We instead identify refs/tags commits by passing their ObjectIds as a new "noBitmaps" parameter to the PackWriter.preparePack() methods. PackWriterBitmapPreparer.setupTipCommitBitmaps() can then use that "noBitmaps" parameter to exclude those commits. Change-Id: Icd287c6b04fc1e48de773033fe432a9b0e904ac5 Signed-off-by: Terry Parker <tparker@google.com>
* | Merge branch 'stable-4.8'Matthias Sohn2017-05-180-0/+0
|\ \ | |/ |/| | | | | | | | | | | | | * stable-4.8: Prepare 4.8.0-SNAPSHOT builds JGit v4.8.0.201705170830-rc1 Change-Id: I001bac19abae58f8d634ba1bf2df1e0067154955 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Prepare 4.8.0-SNAPSHOT buildsMatthias Sohn2017-05-1756-59/+59
| | | | | | | | | | Change-Id: I27fc4e4969fafde0fcba26aeebe30d732770b68f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * JGit v4.8.0.201705170830-rc1v4.8.0.201705170830-rc1Matthias Sohn2017-05-1756-59/+59
|/ | | | | Change-Id: I60c0a40f2e38748641b25a25bcf10346e2950886 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* [findBugs] Use UTF-8 to write to the error stream in TextProgressMonitorMatthias Sohn2017-05-151-1/+4
| | | | Change-Id: Ic85db2043d6f673f268bf781917daad45d28f8cd Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* [findBugs] Use UTF-8 to read git-rebase-todo fileMatthias Sohn2017-05-151-6/+8
| | | | Change-Id: I7c6f71e13ef106678157eae1aa3f9d39712e577b Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* [findBugs] Use UTF-8 when writing to the error stream in GitHookMatthias Sohn2017-05-151-2/+12
| | | | Change-Id: Ica8a40b909ed45cf8e538714e4f26b64ff9a3d21 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* [findBugs] Use UTF-8 when writing to the error stream in jgit pgmMatthias Sohn2017-05-151-1/+4
| | | | Change-Id: Ic2555ea932dbbd1a3a6868e731f247b9754d7f09 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add shutdown hook to cleanup unfinished clone when JVM is killedMatthias Sohn2017-05-131-0/+4
| | | | | Bug: 516303 Change-Id: I5181b0e8096af3537296848ac7dd74dff0b6d279 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Clean up the disk when cloning failsThomas Wolf2017-05-121-10/+80
| | | | | | | | | | | | | | CloneCommand.call() has three stages: preparation, then the actual clone (init/fetch), and finally maybe checking out the working directory. Restructure such that if we fail or are cancelled during the actual clone (middle phase), we do clean up the disk again. This prevents leaving behind a partial clone in an inconsistent state: either we have a fully successfully built clone, or nothing at all. Bug: 516303 Change-Id: I9b18c60f8f99816d42a3deb7d4a33a9f22eeb709 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* Upgrade japicmp-maven-plugin to latest versionDavid Pursehouse2017-05-121-1/+1
| | | | | Change-Id: Iace4350e51592e42f0dacf05558e53a6f87e1a6a Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Upgrade maven-pmd-plugin to latest versionDavid Pursehouse2017-05-121-1/+1
| | | | | Change-Id: Ief52488d97bb2771b4c5a40c4a9578c68a24964b Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Remove unused clirr-maven-plugin from LFS pom.xml filesDavid Pursehouse2017-05-122-38/+0
| | | | | Change-Id: I7252b6c89d91ac675c0e02e4d17ba0212b617098 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Update jetty to 9.4.5Mat Booth2017-05-1117-179/+168
| | | | | | | | | | * Adapt to API removals in jetty 9.4+ * Manifests changed to restrict jetty to [9.4.5,10.0.0) Bug: 514336 Bug: 516514 Change-Id: Ifcfd968084dfa6db0ae07cf541d33a6cdedc1ee2 Signed-off-by: Mat Booth <mat.booth@redhat.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Specify minimum Maven version in pom.xmlDavid Pursehouse2017-05-111-0/+4
| | | | | | | | | | Maven version 3.3.1 is the minimum required version as reported by running: mvn versions:display-plugin-updates Change-Id: I9514013dcffa6cb945496515c3eb4894c9043d7b Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Checkout should not use too long filenamesChristian Halstrick2017-05-102-1/+20
| | | | | | | | | | DirCacheCheckout is generating names for temporary files. It was not checking the length of this filenames. It may happen that a generated filename is longer than 255 chars which causes problems on certain platforms. Make sure that filenames for temporary files do not exceed 255 chars. Bug: 508823 Change-Id: I9475c04351ce3faebdc6ad40ea4faa3c326815f4
* Support pull on detached HEADMickael Istria2017-05-082-23/+76
| | | | | | Bug: 485396 Change-Id: I82be09385c9b0bcc0054fea5a9cb9d178a41e278 Signed-off-by: Mickael Istria <mistria@redhat.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Reset ObjectWalker when it starts a new walkZhen Chen2017-05-032-11/+7
| | | | | | | | | The ObjectWalker in PackWriterBitmapWalker needs to be reset whenever it starts a new walk. Move this responsibility from the caller to the method when the new walk starts. Change-Id: Ib66003be1b5bdc80f46b9bbbb17d45e616714912 Signed-off-by: Zhen Chen <czhen@google.com>
* Fix stack overflow in MergeBaseGeneratorShawn Pearce2017-05-021-31/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some repository topologies can cause carryOntoHistory to overflow the thread stack, due to its strategy of recursing into the 2nd+ parents of a merge commit. This can easily happen if a project maintains a local fork, and frequently pulls from the upstream repository, which itself may have a branchy history. Rewrite the carryOntoHistory algorithm to use a fixed amount of thread stack, pushing the save points onto the heap. By using heap space the thread stack depth is no longer a concern. Repositories are instead limited by available memory. The algorithm is now structured as two loops: carryOntoHistory: This outer loop pops saved commits off the top of the stack, allowing the inner loop algorithm to dive down that path and carry bits onto commits along that part of the graph. The loop ends when there are no more stack elements. carryOntoHistoryInner: The inner loop walks along a single path of the graph. For a string of pearls (commits with one parent each) r <- s <- t <- u the algorithm walks backwards from u to r by iteratively updating its local variable 'c'. This avoids heap allocation along a simple path that does not require remembering state. The inner loop breaks in the HAVE_ALL case, when all bits have been found to be previously set on the commit. This occurs when a prior iteration of the outer loop (carryOntoHistory) explored a different path to this same commit, and copied the bits onto it. When the inner loop encounters a merge commit, it pushes all parents onto the heap based stack by allocating individual CarryStack elements for each parent. Parents are pushed in order, allowing side branches to be explored first. A small optimization is taken for the last parent, avoiding pushing it and instead updating 'c', allowing the side branch to be entered without allocating a CarryStack. Change-Id: Ib7b67d90f141c497fbdc61a31b0caa832e4b3c04
* Clone: add --recurse-submodules optionDavid Pursehouse2017-04-275-4/+126
| | | | | | | | | | Add the --recurse-submodules option on the command, which causes submodules to also be initialized and updated. Add a callback interface on CloneCommand and SubmoduleUpdateCommand to them to provide progress feedback for clone operations. Change-Id: I41b1668bc0d0bdfa46a9a89882c9657ea3063fc1 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Fix unnecessary type paramatersShawn Pearce2017-04-221-1/+1
| | | | | | Can be inferred by the compiler. Change-Id: If880ddfb7d7af2be70729d0c9f73c7c821b9c652
* Delete expired garbage even when there is no GC pack present.Thirumala Reddy Mutchukota2017-04-212-72/+116
| | | | | | | | | | | | | Delete the condition to check whether the garbage pack creation time is older than the last GC operation, because it's not possible to find the last GC operation time when there is no GC pack. Add additional tests to make sure the contents of the expired garbage packs are considered during the GC operation and any actively referenced objects from the garbage packs are copied successfully into the GC pack before deleting the garbage pack. Change-Id: I09e8b2656de8ba7f9b996724ad1961d908e937b6 Signed-off-by: Thirumala Reddy Mutchukota <thirumala@google.com>
* Update eclipse-jarsigner-plugin to 1.1.4Matthias Sohn2017-04-202-2/+2
| | | | Change-Id: Id3be21fe5146dedd46a1399e885c6d5f4778dda2 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add parseCommit(AnyObjectId) method to Repository.Martin Fick2017-04-191-0/+27
| | | | | | | | | It is quite common to want to parse a commit without already having a RevWalk. Provide a shortcut to do so to make it more convenient, and to ensure that the RevWalk is released afterwards. Signed-off-by: Martin Fick<mfick@codeaurora.org> Change-Id: I9528e80063122ac318f115900422a24ae49a920e
* RepoCommand: Add linkfile support.Dan Willemsen2017-04-189-41/+396
| | | | | | | | | | | | | | | | Android wants them to work, and we're only interested in them for bare repos, so add them just for that. Make sure to use symlinks instead of just using the copyfile implementation. Some scripts look up where they're actually located in order to find related files, so they need the link back to their project. Change-Id: I929b69b2505f03036f69e25a55daf93842871f30 Signed-off-by: Dan Willemsen <dwillemsen@google.com> Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Jeff Gaston <jeffrygaston@google.com> Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Add some tests for alternatesMatthias Sohn2017-04-181-0/+149
| | | | Change-Id: I00d256d0e132c0b5ff02ff27a26fbf21ecc1bccd Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Merge "Process all "have"s even when MissingObjectException is encountered"Jonathan Nieder2017-04-171-34/+67
|\
| * Process all "have"s even when MissingObjectException is encounteredJonathan Nieder2017-04-171-34/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because objects described by the client using "have" lines do not need to be reachable by any ref on the server, it is possible for them to point to missing objects in the reachability graph. When such an object is encountered, I1097a2defa4a9dcf502ca8baca5d32880378818f (Only throw MissingObjectException when necessary, 2017-03-29) aborts the "have" walk early to salvage the fetch. The downside of that change is that remaining "have"s are ignored unless they pointed directly to an object with a bitmap. In the worst case this can increase the bandwidth cost of a fetch to the cost of a clone because most "have"s are ignored. Avoid this cost by bypassing the failed "have" completely and moving on to the remaining "have"s. Change-Id: Iac236b6d05f735078c9935abfa6e58d1eb47f388
* | Merge "Prevent alternates loop"David Pursehouse2017-04-173-63/+221
|\ \
| * | Prevent alternates loopMartin Fick2017-04-143-63/+221
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When looping through alternates, prevent visiting the same object directory twice. This could happen when the objects/info/alternates file includes itself directly or indirectly via a another repo and its alternates file. Change-Id: I79bb3da099ebc3c262d2e6c61ed4578eb1aa3474 Signed-off-by: James Melvin <jmelvin@codeaurora.org> Signed-off-by: Martin Fick <mfick@codeaurora.org> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | Add missing @since tag for new API RepoCommand.setTargetURI()Matthias Sohn2017-04-141-3/+5
| | | | | | | | | | | | Change-Id: I4531b94e3a04606a69eeb3c3d154510b87507012 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | Update Maven pluginsMatthias Sohn2017-04-141-6/+7
|/ / | | | | | | | | | | | | | | | | | | - japicmp-maven-plugin to 0.8.1 - maven-surefire-plugin to 2.20 - maven-surefire-report-plugin to 2.20 - tycho-extras to 1.0.0 Change-Id: Iecc9a5aeb7811a8ecc8198c8836a4a739be3cc08 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Bazel: Restrict src globs to Java source filesDavid Pursehouse2017-04-1310-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generating the src list with an unrestricted wildcard causes all files in the source tree to be included. This results in junk files such as .orig (generated during merge conflict resolution) to be included, which causes in a build error: in srcs attribute of java_library rule //org.eclipse.jgit:jgit: file '//org.eclipse.jgit:src/org/eclipse/jgit/gitrepo/RepoCommand.java.orig' is misplaced here (expected .java, .srcjar or .properties). Modify the globs to only include Java source files. Change-Id: Iaef3db33ac71d71047cd28acb0378e15cb09ece9 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* | Fix RepoCommand to allow for relative URLsHan-Wen Nienhuys2017-04-132-7/+217
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is necessary for deploying submodules on android.googlesource.com. * Allow an empty base URL. This is useful if the 'fetch' field is "." and all names are relative to some host root. * The URLs in the resulting superproject are relative to the superproject's URL. Add RepoCommand#setDestinationURI to set this. If unset, the existing behavior is maintained. * Add two tests for the Android and Gerrit case, checking the URL format in .gitmodules; the tests use a custom RemoteReader which is representative of the use of this class in Gerrit's Supermanifest plugin. Change-Id: Ia75530226120d75aa0017c5410fd65d0563e91b Signed-off-by: Han-Wen Nienhuys <hanwen@google.com> Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* | Merge "BundleWriter: Allow constructing from only an ObjectReader"Jonathan Nieder2017-04-122-6/+75
|\ \
| * | BundleWriter: Allow constructing from only an ObjectReaderDave Borowitz2017-04-122-6/+75
| | | | | | | | | | | | Change-Id: I01821d6a9fbed7a5fe4619884e42937fbd6909ce
* | | Merge "Only throw MissingObjectException when necessary"Terry Parker2017-04-121-17/+32
|\ \ \ | |/ / |/| / | |/
| * Only throw MissingObjectException when necessaryZhen Chen2017-04-051-17/+32
| | | | | | | | | | | | | | | | | | | | When preparing the bitmap, the flag ignoreMissingStart only applied to the start object. However, sometime the start object is present but some related objects are not present during the walk, we should only release the MissingObjectException when the ignoreMissingStart is set false. Change-Id: I1097a2defa4a9dcf502ca8baca5d32880378818f Signed-off-by: Zhen Chen <czhen@google.com>
* | Merge branch 'stable-4.7'Matthias Sohn2017-04-115-13/+195
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | * stable-4.7: Cleanup and test trailing slash handling in ManifestParser ManifestParser: Throw exception if remote does not have fetch attribute Change-Id: Ia9dc3110bcbdae05175851ce647ffd11c542f4c0 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Cleanup and test trailing slash handling in ManifestParserHan-Wen Nienhuys2017-04-113-13/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is a workaround for https://bugs.openjdk.java.net/browse/JDK-4666701. Change-Id: Idd04657e8d95a841d72230f8881b6b899daadbc2 Signed-off-by: Han-Wen Nienhuys <hanwen@google.com> Signed-off-by: David Pursehouse <david.pursehouse@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>