summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Format Bazel files with buildifierDavid Pursehouse2017-01-226-113/+123
| | | | | Change-Id: I934114315d2c7cab917f1011b8e55c52367d429f Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Change StreamGobbler to Runnable to avoid unused FutureShawn Pearce2017-01-211-12/+15
| | | | | | | | | | | | | It can be considered a programming error to create a Future<T> but do nothing with that object. There is an async computation happening and without holding and checking the Future for done or exception the caller has no idea if it has completed. FS doesn't really care about these StreamGobblers finishing. Instead use Runnable with execute(Runnable), which doesn't return a Future. Change-Id: I93b66d1f6c869e66be5c1169d8edafe781e601f6
* Add missing @since tags on new API constantsMatthias Sohn2017-01-191-2/+2
| | | | Change-Id: Ia8b861da07fba99644ccc9eb5578a46cc39600a1 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* gc: Add options to preserve and prune old pack filesJames Melvin2017-01-197-7/+215
| | | | | | | | | | | | | | | | | | | The new --preserve-oldpacks option moves old pack files into the preserved subdirectory instead of deleting them after repacking. The new --prune-preserved option prunes old pack files from the preserved subdirectory after repacking, but before potentially moving the latest old packfiles to this subdirectory. These options are designed to prevent stale file handle exceptions during git operations which can happen on users of NFS repos when repacking is done on them. The strategy is to preserve old pack files around until the next repack with the hopes that they will become unreferenced by then and not cause any exceptions to running processes when they are finally deleted (pruned). Change-Id: If3f729f0d9ce920ee2c3e6acdde46f2068be61d2 Signed-off-by: James Melvin <jmelvin@codeaurora.org>
* Make ObjectDownloadListener publicDavid Pursehouse2017-01-191-2/+4
| | | | | | | The same was already done for ObjectUploadListener in I5b0fb1220. Change-Id: Ie8a79f715fe69bed9331962fb478f7e35acf8680 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Implement initial framework of Bazel buildDavid Ostrovsky2017-01-189-0/+207
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The initial implementation only builds the packages consumed by Gerrit Code Review. Test build and execution is not implemented. We prefer to consume maven_jar custom rule from bazlets repository, for the same reasons as in the Gerrit project: * Caching artifacts across different clones and projects * Exposing source classifiers and neverlink artifact TEST PLAN: $ bazel build :all $ unzip -t bazel-genfiles/all.zip Archive: bazel-genfiles/all.zip testing: libjgit-archive.jar OK testing: libjgit-servlet.jar OK testing: libjgit.jar OK testing: libjunit.jar OK No errors detected in compressed data of bazel-genfiles/all.zip. Change-Id: Ia837ce95d9829fe2515f37b7a04a71a4598672a0 Signed-off-by: David Ostrovsky <david@ostrovsky.org> Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Normalizer creating a valid branch name from a stringWim Jongman2017-01-182-0/+119
| | | | | | | | | | | Generic normalization method for a possible invalid branch name. The method compresses dividers between spaces, then replaces spaces and non word characters with underscores. This method is needed in preparation for subsequent EGit changes. Bug: 509878 Change-Id: Ic0d12f098f90f912a45bcc5693d6accf751d4e58 Signed-off-by: Wim Jongman <wim.jongman@remainsoftware.com>
* Merge "Fix StashApplyCommand for stashes containing untracked changes."Christian Halstrick2017-01-162-5/+22
|\
| * Fix StashApplyCommand for stashes containing untracked changes.Thomas Wolf2017-01-152-5/+22
| | | | | | | | | | | | | | | | | | | | | | If there are untracked changes, apply only the untracked tree after a successful merge. The merge tree from merging untracked with HEAD would also contain files already reset before (changes in tracked files) and try to reset those again,leading to false checkout conflicts. Bug: 505804 Change-Id: Iaced4d277623334d11e3d1cca5969590d7c5093e Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | Fix possible InvalidObjectIdException in ObjectDirectoryMarc Strapetz2017-01-154-2/+54
|/ | | | | | | | | | ObjectDirectory.getShallowCommits should throw an IOException instead of an InvalidArgumentException if invalid SHAs are present in .git/shallow (as this file is usually edited by a human). Change-Id: Ia3a39d38f7aec4282109c7698438f0795fbec905 Signed-off-by: Marc Strapetz <marc.strapetz@syntevo.com> Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Add missing slf4j dependency in BUCK file for jgit-lfs-serverZhen Chen2017-01-141-1/+2
| | | | | | Change-Id: I0c7fcae123f94ebd8e5eb2700e3d601a1b199be9 Signed-off-by: Zhen Chen <czhen@google.com> Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Skip pack header bytes in DfsPackFileZhen Chen2017-01-131-1/+10
| | | | | | | | | The 12 bytes `PACK...` header is written in PackWriter before reading CachedPack files. In DfsPackFile#copyPackBypassCache, the header was not skipped when the first block is not in cache. Change-Id: Ibbe2e564d36b79922a936657f286addb1044d237 Signed-off-by: Zhen Chen <czhen@google.com>
* LfsProtocolServlet#LfsRequest: Add operation type helper methodsDavid Pursehouse2017-01-141-0/+27
| | | | | | | | Server implementations may need to check what type of operation is being performed. Add helper methods to make it a bit simpler. Change-Id: Ia33ed6699ebcb9000ef514ce79bcddbebf94e1c5 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Expose LFS operation strings as public constantsDavid Pursehouse2017-01-132-7/+27
| | | | | | | | So that they can be used either by third party LFS server implementations or from within other parts of JGit's internal LFS implementation. Change-Id: I58da6230247204588e017c010ce5b14e4615448d Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* LfsProtocolServlet: Improve error on getLargeFileRepository failureDavid Pursehouse2017-01-144-2/+14
| | | | | | | | Externalize the error message and make it more specific. Also emit an error log. Change-Id: Ie7b1c90c54673bfb8e133fb0aa19a117d4ca6587 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add support for refusing LFS request due to invalid authorizationDavid Pursehouse2017-01-134-0/+74
| | | | | | | | | | | | | | | | | | | Add a new exception type that server implementations can throw when a client attempts to make an unauthorized LFS operation, which will result in HTTP 401 Unauthorized being returned to the client. An example of this is a Gerrit server that rejects a request to perform an LFS operation on a ref that is not visible to the caller. As defined in the LFS spec [1] the request may include authentication, and per RFC 2616 [2], "401 response indicates that authorization has been refused for those credentials". [1] https://github.com/git-lfs/git-lfs/blob/master/docs/api/batch.md [2] https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html Change-Id: I2aa22e2144df5fb7972df0e3285b77b08ecc63f2 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Add LfsPointerFilter TreeFilterDariusz Luksza2017-01-106-5/+338
| | | | | | | | | | | | | | | Add new variation of TreeFilter in order to detect LFS pointer files in the repository. Additionally, update LfsPointer to support the legacy version URL [1] as described in [2], and to allow arbitrary fields in the pointer file. [1] https://hawser.github.com/spec/v1 [2] https://github.com/git-lfs/git-lfs/blob/master/docs/spec.md Change-Id: I621eb058619fb1b78888a54c4b60bb110a722fc3 Signed-off-by: Dariusz Luksza <dariusz@luksza.org> Signed-off-by: David Pursehouse <david.pursehouse@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Pack refs/tags/ with refs/heads/Shawn Pearce2017-01-033-11/+19
| | | | | | | | | | | | | | | | | | | | | | This fixes a nasty performance issue for repositories that have many objects referenced through refs/tags/, but not in refs/heads/. Situations like this can arise when a project has made releases like refs/tags/v1.0, and then decides to orphan history and start over for version 2. The v1.0 objects are not reachable from master anymore, but are still live due to the v1.0 tag. When tags are packed in the GC_OTHER pack, bitmaps are not able to cover the repository's contents. This may cause very slow counting times during git clone, as the server must enumerate the ancient history under refs/tags/ to respond to the client. Clients by default always ask for all tags when asking for all heads during clone. This has been true since git-core commit 8434c2f1afedb (Apr 27 2008), when clone was converted to a builtin. Including tags in the main GC pack should still allow servers to benefit from the fast full pack reuse path when serving a clone to a client. Change-Id: I22e29517b5bc6fa3d6b19a19f13bef0c68afdca3
* Get rid of javax.servlet API dependency for core org.eclipse.jgitMarc Strapetz2017-01-034-12/+4
| | | | | Change-Id: I57d5d4fab7e0b1bd4cf5f1850e8569c8ac5def88 Signed-off-by: Marc Strapetz <marc.strapetz@syntevo.com> Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
* [findBugs] PackWriter.NONE should be finalMatthias Sohn2016-12-301-1/+1
| | | | Change-Id: I4b5621bcb4db82e0560408b3cde6f18b0cc55b29 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* [findBugs] Remove reliance on default encoding in Base64Matthias Sohn2016-12-291-11/+3
| | | | Change-Id: I6901da975a86c460ce7c783a519669d8be8e23bb Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* [findBugs] Fix potential NPE in CleanFilterMatthias Sohn2016-12-291-1/+4
| | | | Change-Id: Ibc20e9fc16be62f61748b3f59f6d70c1ebf63671 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* [findBugs] Fix potential NPE in ObjectDirectoryTestMatthias Sohn2016-12-291-1/+1
| | | | Change-Id: I0307d1e9bbc0bfc8172eed10f8e93788d6e2c8b4 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* [findBugs] Fix potential NPE in GcPackRefsTestMatthias Sohn2016-12-291-1/+2
| | | | Change-Id: I273c06b9b2ce36c8232803cb7f02d7f846ed49e5 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* [findBugs] Fix potential NPE in GCMatthias Sohn2016-12-291-3/+4
| | | | Change-Id: I59cda76b2c5039e08612f394ee4f7f1788578c49 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* [findBugs] Fix potential NPE in DirCacheCheckoutTestMatthias Sohn2016-12-291-1/+2
| | | | Change-Id: I842cbdd14bf56cb2bd599255fe90a5a3aea0d304 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Remove unused API warning filtersMatthias Sohn2016-12-292-34/+0
| | | | Change-Id: If6d343a55245219a652e35c9cfde69349dc09889 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Fix keep pack filenameJames Melvin2016-12-273-2/+9
| | | | | | | | | Previously it was looking for a keep file with the name of a pack file (extenstion included) appended with a '.keep'. However, the keep file name should be the pack file name with a '.keep' extension Change-Id: I9dc4c7c393ae20aefa0b9507df8df83610ce4d42 Signed-off-by: James Melvin <jmelvin@codeaurora.org>
* Prepare 4.7.0-SNAPSHOT buildsMatthias Sohn2016-12-2756-314/+314
| | | | | Change-Id: I20754d13007e6591d36aae5766f3a9a82b24e120 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Merge branch 'stable-4.6'Matthias Sohn2016-12-2756-325/+327
|\ | | | | | | | | | | | | | | | | | | | | | | * stable-4.6: Update tycho version to 0.26 Update maven plugins Skip javadoc generation for org.eclipse.jgit.http.test Prepare 4.6.1-SNAPSHOT builds JGit v4.6.0.201612231935-r Change-Id: Ia70329af7ec8bdb6d8bd6f917e00024a3ea4ac1f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Update tycho version to 0.26Matthias Sohn2016-12-262-2/+2
| | | | | | | | | | Change-Id: I1cf3402c057de89d1afe161d2d4106896fa8753f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Update maven pluginsMatthias Sohn2016-12-262-10/+10
| | | | | | | | Change-Id: I2d18f69d25362f565df071c320970cbc973199cd Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Skip javadoc generation for org.eclipse.jgit.http.testMatthias Sohn2016-12-241-1/+3
| | | | | | | | | | | | | | This fixes the error the javadoc plugin raises when generating the maven site for this bundle. Change-Id: I72026aa33be86960747a246af4a70f6a91b40102 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Prepare 4.6.1-SNAPSHOT buildsMatthias Sohn2016-12-2456-312/+312
| | | | | | | | | | Change-Id: I6b05a6f6c3f92365c272e1bdaf76093ca01f2d58 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * JGit v4.6.0.201612231935-rv4.6.0.201612231935-rMatthias Sohn2016-12-2456-59/+59
|/ | | | | Change-Id: Iaa88fe1b195dfe6be99a7b4cb064684e75563715 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Merge branch 'stable-4.5'Matthias Sohn2016-12-241-3/+8
|\ | | | | | | | | | | | | | | * origin/stable-4.5: Fix one case of missing object Change-Id: Ia6384f4be71086d5a0a8c42c7521220f57dfd086 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Fix one case of missing objectHector Oswaldo Caballero2016-12-131-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a repository is being GCed and a concurrent push is received, there is the possibility of having a missing object. This is due to the fact that after the list of objects to delete is built, there is a window of time when an unreferenced and ready to delete object can be referenced by the incoming push. In that case, the object would be deleted because there is no way to know it is no longer unreferenced. This will leave the repository in an inconsistent state and most of the operations fail with a missing tree/object error. Given the incoming push change the last modified date for the now referenced object, verify this one is still a candidate to delete before actually performing the delete operation. Change-Id: Iadcb29b8eb24b0cb4bb9335b670443c138a60787 Signed-off-by: Hector Oswaldo Caballero <hector.caballero@ericsson.com>
* | [infer] Fix resource leak in IndexDiffMatthias Sohn2016-12-211-5/+7
| | | | | | | | | | | | | | | | We only need the tree id to add it to a TreeWalk so change tree's type to AnyObjectId. Bug: 509385 Change-Id: I98dd5fef15cd173fe1fd84273f0f48e64e12e608 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix resource leak in ObjectCheckerMatthias Sohn2016-12-211-2/+3
| | | | | | | | | | Bug: 509385 Change-Id: I6b6ff5b721d959eb0708003a40c8f97d6826ac46 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix a resource leak in PackWriterMatthias Sohn2016-12-191-7/+8
| | | | | | | | | | Bug: 509385 Change-Id: Ic8a82895fa39be73f1bd8427cfe9437be6fc4e3e Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix resource leaks in DfsInserterMatthias Sohn2016-12-191-3/+4
| | | | | | | | | | Bug: 509385 Change-Id: Id5dc40bb3fb9da97ea0795cca1f2bcdcde347767 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix resource leak in ManifestParserMatthias Sohn2016-12-181-14/+8
| | | | | | | | | | Bug: 509385 Change-Id: Icfe58ac2e5344546448a55ad14ec082356be968c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix resource leak in RepoCommandMatthias Sohn2016-12-181-9/+3
| | | | | | | | | | Bug: 509385 Change-Id: I30c427f0dd2fc1fceb6b003dfdee0a05efaefca9 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix resource leak in DirCacheMatthias Sohn2016-12-181-3/+3
| | | | | | | | | | Bug: 509385 Change-Id: I5f914c910ef3a7583594fb31c7757d3dddf6a05e Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix SubmoduleWalk leaks in submodule commandsMatthias Sohn2016-12-183-6/+3
| | | | | | | | | | Bug: 509385 Change-Id: I4cba81d8ea596800a40799dc9cb763fae01fe508 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix resource leaks in SubmoduleAddCommandMatthias Sohn2016-12-181-2/+8
| | | | | | | | | | Bug: 509385 Change-Id: I9d25cf117cfb19df108f5fe281232193fd898474 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix resource leaks in RebaseCommandMatthias Sohn2016-12-181-7/+9
| | | | | | | | | | Bug: 509385 Change-Id: I9fbdfda59f7bc577aab55dc92ff897b00b5cb050 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix resource leak in BlameCommandMatthias Sohn2016-12-181-5/+6
| | | | | | | | | | Bug: 509385 Change-Id: Ic57fd3bf940752229e35102e7761823f7d3d8732 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Ignore infer output folderMatthias Sohn2016-12-181-0/+1
| | | | | | | | | | | | | | | | Infer [1] is a static code checker. [1] http://fbinfer.com/ Change-Id: I880cefe0a20f6af88ab10f6e862fda44fbe0883d Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Update maven-source-plugin to 3.0.1 to fix OOM during buildMatthias Sohn2016-12-181-1/+1
| | | | | | | | | | | | | | | | | | | | Recently we frequently suffer from OutOfMemoryError when creating source archives in the Maven build. maven-source-plugin 3.0.0 has a bug [1] causing OOM which is fixed in 3.0.1. [1] https://issues.apache.org/jira/browse/MSOURCES-94 Change-Id: Ie900bd546c42523c5a04e22bd3d3f510d2a81ca2 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>