aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Allow trailing newlines in receive-packDave Borowitz2015-06-102-10/+97
| | | | | | | | | | | | | | | | | | C git's receive-pack.c strips trailing newlines in command lists when present[1], although send-pack.c does not send them, at least in the case of command lists[2]. Change JGit to match this behavior. Add tests. This also fixes parsing of commands in the push cert, which, unlike commands sent in the non-push case, always have trailing newlines. [1] https://github.com/git/git/blob/7974889a053574e449b55ca543a486e38e74864f/builtin/receive-pack.c#L1380 where packet_read_line chomps newlines: https://github.com/git/git/blob/7974889a053574e449b55ca543a486e38e74864f/pkt-line.c#L202 [2] https://github.com/git/git/blob/7974889a053574e449b55ca543a486e38e74864f/send-pack.c#L470 Change-Id: I4bca6342a7482a53c9a5815a94b3c181a479d04b
* Merge changes I38e1798e,Id1fe1c20,I945ba188,I2c6be9cbJonathan Nieder2015-06-1014-21/+120
|\ | | | | | | | | | | | | | | * changes: Allow setting detail message and cause when constructing most exceptions Use message from ServiceNotAuthorizedException, ServiceNotEnabledException dumb HTTP: Clarify AsIsFilter by introducing req and res locals Clarify description of ServiceNotAuthorizedException
| * Allow setting detail message and cause when constructing most exceptionsJonathan Nieder2015-06-027-0/+96
| | | | | | | | | | | | | | | | | | | | In particular, this means a RepositoryResolver, UploadPackFactory, or ReceivePackFactory can set a detail message for ServiceNotAuthorizedException or ServiceNotEnabledException with information for the client about why access is not allowed. Change-Id: I38e1798e1e9d09b5e75cefacd9d85f25729235a9 Signed-off-by: Jonathan Nieder <jrn@google.com>
| * Use message from ServiceNotAuthorizedException, ServiceNotEnabledExceptionJonathan Nieder2015-06-025-15/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When sending an error response due to ServiceNotAuthorizedException or ServiceNotEnabledException, usually we send a default message. In the ServiceNotEnabledException case, we use 403 Git access forbidden except in a dumb-HTTP-specific filter where we use the servlet container's default 403 response: 403 Forbidden In the ServiceNotAuthorizedException case, we use the servlet container's default 401 response: 401 Unauthorized There is one exception: a ServiceNotEnabledException when handling a smart HTTP /info/refs request uses the message from the exception: 403 Service not enabled Be more consistent by always using the message from the exception. This way, authors of a RepositoryResolver, UploadPackFactory, or ReceivePackFactory can provide a more detailed message when appropriate. The defaults are 401 Unauthorized 403 Service not enabled Change-Id: Id1fe1c2042fb96487c3671c1965c8a65c4b8e1b8 Signed-off-by: Jonathan Nieder <jrn@google.com>
| * dumb HTTP: Clarify AsIsFilter by introducing req and res localsJonathan Nieder2015-06-021-3/+5
| | | | | | | | | | | | | | No functional change. Change-Id: I945ba18879c360f433e026aa125ef3f9f6a75793 Signed-off-by: Jonathan Nieder <jrn@google.com>
| * Clarify description of ServiceNotAuthorizedExceptionJonathan Nieder2015-06-023-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This exception's detail message states Service not permitted and according to the Javadoc it indicates that the current user does not have access to the service. In practice, though, callers handle this exception by presenting a '401 Unauthorized' response to the client, meaning that the user is unauthenticated and should authenticate. Clarify the documentation and detail message to match the practice. The exception message is not used anywhere except logs. No client-visible effect intended. Change-Id: I2c6be9cb74af932f0dcb121a381a64f2ad876766 Signed-off-by: Jonathan Nieder <jrn@google.com>
* | Merge "UploadPack: Use reachable-sha1-in-want configuration"Shawn Pearce2015-06-094-2/+38
|\ \
| * | UploadPack: Use reachable-sha1-in-want configurationFredrik Medley2015-06-094-2/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | C git 2.5 supports setting the equivalent of RequestPolicy.REACHABLE_COMMIT with uploadpack.allowreachablesha1inwant. Parse this into TransportConfig and use it from UploadPack. An explicitly set RequestPolicy overrides the config, and the policy may still be upgraded on a unidirectional connection to avoid races. Change-Id: Id39771a6e42d8082099acde11249306828a053c0 Signed-off-by: Fredrik Medley <fredrik.medley@gmail.com>
* | | Add missing imports for javadoc to ObjectCountCallbackJonathan Nieder2015-06-091-0/+3
| | | | | | | | | | | | | | | Change-Id: I24780a28c01047654d81af09045d88c6a84950b6 Signed-off-by: Jonathan Nieder <jrn@google.com>
* | | Merge "Fix public API issues introduced in I1baeedcc6946."Jonathan Nieder2015-06-095-32/+76
|\ \ \
| * | | Fix public API issues introduced in I1baeedcc6946.Yuxuan 'fishy' Wang2015-06-095-32/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move ObjectCountCallback and WriteAbortedException to package org.eclipse.jgit.transport, so that they'll become public API. Change-Id: I95e3cfaa49f3f7371e794d5c253cf6981f87cae0 Signed-off-by: Yuxuan 'fishy' Wang <fishywang@google.com>
* | | | Document empty catch block to silence warningMatthias Sohn2015-06-091-0/+1
|/ / / | | | | | | | | | Change-Id: I643f916e394ca95272b58d0b5826e81cc1092f2f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | Merge "Fix imports in BundleWriter"Jonathan Nieder2015-06-091-1/+1
|\ \ \
| * | | Fix imports in BundleWriterMatthias Sohn2015-06-091-1/+1
| | | | | | | | | | | | | | | | Change-Id: I5eb186ad27c93feab2664fcbcc9ca0b617a15462 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | Merge "Add missing javadoc @param for new method setObjectCountCallback()"Jonathan Nieder2015-06-092-0/+6
|\| | |
| * | | Add missing javadoc @param for new method setObjectCountCallback()Matthias Sohn2015-06-102-0/+6
| | | | | | | | | | | | | | | | Change-Id: I91acdc3680bde09ae5809c14460500223a410395 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | Merge "Revert "Config: Distinguish between empty and null strings""Jonathan Nieder2015-06-092-5/+9
|\ \ \ \ | |/ / / |/| | |
| * | | Revert "Config: Distinguish between empty and null strings"Jonathan Nieder2015-06-092-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 96eb3ee3976e7e9e3e118851fa614cce8a1f7d88, which broke Gerrit tests that set a config value to 'null', serialize the result, deserialize, and expect 'null' from Config.getString[1]. The intent of that commit was to make it possible to distinguish between an absent and an empty config value, which we'll have to do with a new method. Revert the behavior change. Keep the tests from 428cb23f2de8, since they test the behavior more precisely than the old tests did. [1] https://gerrit-review.googlesource.com/68452 Change-Id: Ie8042f380ea0e34e3203e1991aa0feb2e6e44641 Signed-off-by: Jonathan Nieder <jrn@google.com>
* | | | Remove no longer used API warning filter for FileUtilMatthias Sohn2015-06-101-10/+0
| | | | | | | | | | | | | | | | Change-Id: Ic13943139f23cdb1eac840417de43796236d578f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | Fix a javadoc typo in RepoProject.Yuxuan 'fishy' Wang2015-06-091-1/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: I3ea25c157b9e11a46a140d2c3ab9373d1596c163 Signed-off-by: Yuxuan 'fishy' Wang <fishywang@google.com>
* | | | Callback in PackWriter & BundleWriter.Yuxuan 'fishy' Wang2015-06-094-0/+192
|/ / / | | | | | | | | | | | | | | | | | | | | | Added callback in PackWriter and BundleWriter for the caller to get the count of objects to write, and a chance to abort the write operation. Change-Id: I1baeedcc6946b1093652de4a707fe597a577e526 Signed-off-by: Yuxuan 'fishy' Wang <fishywang@google.com>
* | | Merge branch 'stable-4.0'Matthias Sohn2015-06-092-2/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-4.0: Prepare 4.0.1-SNAPSHOT builds JGit v4.0.0.201506090130-r Update build to use Tycho 0.23 Change-Id: I732b601c198ad1a50aa7ba3c1d1fb516b10912b5 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | | Prepare 4.0.1-SNAPSHOT buildsMatthias Sohn2015-06-0946-248/+248
| | | | | | | | | | | | | | | | | | | | Change-Id: I51d03d1a47d1e3cd453701e397750749867028a2 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | | JGit v4.0.0.201506090130-rv4.0.0.201506090130-rMatthias Sohn2015-06-0946-49/+49
| | | | | | | | | | | | | | | | | | | | Change-Id: I01ad84fc74555656c42934cd62a85269a7030557 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | | Update build to use Tycho 0.23Matthias Sohn2015-06-082-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | see https://wiki.eclipse.org/Tycho/Release_Notes/0.23 Change-Id: I70e6711294e2a92efa77fd9dd1c906c449c9b4db Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | Add missing # to javadoc commentJonathan Nieder2015-06-081-1/+1
| |/ / |/| | | | | | | | | | | | | | Change-Id: I351cee0ba2e77e3360846ac0c5368da3a322725c Reported-by: Markus Keller <markus_keller@ch.ibm.com> Signed-off-by: Jonathan Nieder <jrn@google.com>
* | | Allow lookup of multiple exact refs in one shotJonathan Nieder2015-06-052-0/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | exactRef(ref1, ref2, ref3) requests multiple specific refs in a single lookup, which may be faster in some backends than looking them up one by one. firstExactRef generalizes getRef by finding the first existing ref from the list of refs named. Its main purpose is for the default implementation of getRef (finding the first existing ref in a search path). Hopefully it can be useful for other operations that look for refs in a search path (e.g., git log --notes=<name>), too. Change-Id: I5c6fcf1d3920f6968b8b97f3d4c3a267258c4b86 Signed-off-by: Jonathan Nieder <jrn@google.com>
* | | Introduce exactRef to read a ref whose exact name is knownJonathan Nieder2015-06-053-0/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unlike getRef(name), the new exactRef method does not walk the search path. This should produce a less confusing result than getRef when the exact ref name is known: it will not try to resolve refs/foo/bar to refs/heads/refs/foo/bar even when refs/foo/bar does not exist. It can be faster than both getRefs(ALL).get(name) and getRef(name) because it only needs to examine a single ref. A follow-up change will introduce a findRef synonym to getRef and deprecate getRef to make the choice a caller is making more obvious (exactRef or findRef, with the same semantics as getRefs(ALL).get and getRefs(ALL).findRef). Change-Id: If1bd09bcfc9919e7976a4d77f13184ea58dcda52 Signed-off-by: Jonathan Nieder <jrn@google.com>
* | | Merge "Restore checkObjectCollisions flag"Shawn Pearce2015-06-041-11/+50
|\ \ \
| * | | Restore checkObjectCollisions flagDavid Pletcher2015-06-041-11/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I am developing an offline pack verification feature based on PackParser. The birthday collision check is a prohibitive obstacle to performance at scale because it interacts with the repository to perform collision checks. This CL restores the checkObjectCollisions flag that was removed in 9638e0aa87614a6fb4f109bbeac0cde3462b9769, while changing the flag getter and setter to protected from public as a precaution against misuse. Change-Id: I363cd0c9de57c5e8659cdfe2d51b17823f4fe793 Signed-off-by: David Pletcher <dpletcher@google.com>
* | | | Config: Allow ending a file with "=" and no newlineDave Borowitz2015-06-042-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a perfectly valid construction according to C git: $ echo -en '[a]\nx =' > foo.config $ git config -f foo.config a.x; echo $? 0 Change-Id: Icfcf8304adb43c79e2b8b998f8d651b2a94f6acb
* | | | Config: Distinguish between empty and null stringsDave Borowitz2015-06-042-23/+50
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The C git API and command line tools distinguish between a key having the empty string as a value and no key being present in the config file: $ echo -e '[a]\nx =' > foo.config $ git config -f foo.config a.x; echo $? 0 $ git config -f foo.config a.y; echo $? 1 Make JGit make the same distinction. This is in line with the current Javadoc of getString, which claims to return "a String value from the config, null if not found". It is more reasonable to interpret "x =" in the above example as "found" rather than "missing". We need to maintain the special handling of a key name with no "=" resolving to a boolean true, but "=" with an empty string is still not a valid boolean. Change-Id: If0dbb7470c524259de0b167148db87f81be2d04a
* | | Merge branch 'stable-4.0'Jonathan Nieder2015-06-038-185/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-4.0: Revert "Fix unchecked conversion warning in MergeFormatter" Delete deprecated TemporaryBuffer.LocalFile constructors Delete deprecated FileUtils.setExecute(File, boolean) Delete deprecated WorkingTreeIterator.isModified(DirCacheEntry, boolean) Delete deprecated UploadPackMayNotContinueException Delete deprecated TransferConfig.isFsckObjects() Delete deprecated TextBuiltin.out Delete deprecated Merger.getBaseCommit() Change-Id: Id23a39cc6a3cd122ff1738cb85b7451bbfd8af5f Signed-off-by: Jonathan Nieder <jrn@google.com>
| * | Revert "Fix unchecked conversion warning in MergeFormatter"Shawn Pearce2015-06-031-1/+1
| | | | | | | | | | | | | | | | | | This reverts commit 6d4ebd168da236c5753f237e77b2dfcbb4e42065. Change-Id: I01f0c7cd997b9b3577cc1e98ab1adb5cdc5b55e4
| * | Delete deprecated TemporaryBuffer.LocalFile constructorsMatthias Sohn2015-06-031-23/+0
| | | | | | | | | | | | Change-Id: I5fdbf997ebcbe48e86f4c41c6b2643f47054b0c3 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Delete deprecated FileUtils.setExecute(File, boolean)Matthias Sohn2015-06-031-14/+0
| | | | | | | | | | | | Change-Id: Ifa63e3743fb4de25e074404c301f860a1ffb5e02 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Delete deprecated WorkingTreeIterator.isModified(DirCacheEntry, boolean)Matthias Sohn2015-06-031-27/+0
| | | | | | | | | | | | Change-Id: I687c392e5a625fd66c45998c94373aa59921b986 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Delete deprecated UploadPackMayNotContinueExceptionMatthias Sohn2015-06-031-68/+0
| | | | | | | | | | | | Change-Id: Id298fc860684d2a2288769282fd8ce4475009dc8 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Delete deprecated TransferConfig.isFsckObjects()Matthias Sohn2015-06-031-9/+0
| | | | | | | | | | | | Change-Id: Ib7f36282d69a3298b1ac177ae17af0f80d64964f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Delete deprecated TextBuiltin.outMatthias Sohn2015-06-031-10/+0
| | | | | | | | | | | | Change-Id: I184c2f0e0203fa95e0a117391bae93da0d23a435 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Delete deprecated Merger.getBaseCommit()Matthias Sohn2015-06-031-33/+0
| | | | | | | | | | | | Change-Id: I3b39a2c0d547110709b4c28b66c4694cdef943e8 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | Update PackWriter.Statistics.getBitmapIndexMises()Terry Parker2015-06-021-0/+2
| |/ |/| | | | | | | | | | | | | Return -1 from PackWriter.Statistics.getBitmapIndexMises() when no bitmap indices were found, to differentiate it from the case where the bitmap indices contained all of the want/have commits. Change-Id: I78d4600b462c19f62b347217a0b2c19eaaf3a14b Signed-off-by: Terry Parker <tparker@google.com>
* | Prepare 4.1.0-SNAPSHOT buildsMatthias Sohn2015-06-0346-249/+249
| | | | | | | | | | Change-Id: I03d08b8e2d3400d4b5cdb4ab541b312870776843 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Merge branch 'stable-4.0'Matthias Sohn2015-06-030-0/+0
|\| | | | | | | | | | | | | | | | | * stable-4.0: Prepare post 4.0-RC3 builds JGit v4.0.0.201506020755-rc3 Change-Id: I3387e5d90a24645cba736a2d0739fb95cd557049 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Prepare post 4.0-RC3 buildsMatthias Sohn2015-06-0246-49/+49
| | | | | | | | | | Change-Id: I74469f1243503098fb05b5ddec3fa609132debab Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * JGit v4.0.0.201506020755-rc3v4.0.0.201506020755-rc3Matthias Sohn2015-06-0246-49/+49
| | | | | | | | | | Change-Id: I31c6177d19cba228aa67b2b5c3e0d82c38395cda Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Merge branch 'master' into stable-4.0Matthias Sohn2015-06-0251-212/+1099
| |\ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master: Add more reports to maven site Update project meta-data in pom.xml used for site generation Update dependencies to the versions used in target platform Update 4.5 target platform to use final Mars Orbit repository Compare API changes in clirr report against 3.7.0 Fix CommitCommand.setOnly() Add "src" folder to source folders of org.eclipse.jgit.test Improve exception thrown when pull can't find advertised ref Silence unchecked conversion warning in TransportSftp Silence deprecation warning in WindowCacheConfig Silence deprecation warning in DirCacheCheckout Fix unchecked conversion warning in MergeFormatter Fix hidden field warnings in bundle org.eclipse.jgit Close WindowCursor using try-with-resources in UnpackedObject Fix WindowCursor memory leak. archive: Drop unnecessary empty comments and 'final' qualifiers on locals Close 'out' consistently in ArchiveCommand.call Fix that exceptions in ReceivePack cause Invalid Channel 101 exceptions Better report too large pack-files from PushCommand FS: Extract GobblerThread into a private static class Add bitmap index misses to PackWriter.Statistics Enable public access to SimilarityIndex scoring function Add getters to RepoProject. Silence unused object warning in MyersDiff Silence resource leak warnings where caller is responsible to close Silence false potential null pointer access warnings Fix potential null pointer access in IndexDiffFilter Add tests for ObjectFilter Expose Sets helper to tests outside org.eclipse.jgit.api Change-Id: I34b2bb45f51ed6f52a6bb1215de654ebb2ffde10 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Add more reports to maven siteMatthias Sohn2015-06-011-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the following additional reports: - cross-reference report - API changes report using clirr - findbugs report - surefire-report Run $ mvn test install site:site site:stage to generate and stage the site Also see https://wiki.eclipse.org/EGit/Contributor_Guide#JGit_3 Change-Id: Ibb6a2e13e128d7728b3c632cc16bf79716dc75f5 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Update project meta-data in pom.xml used for site generationMatthias Sohn2015-06-011-4/+21
| | | | | | | | | | | | | | | | | | | | | | - Update list of committers - Update scm information - Expose jgit hudson for Maven site - Name our project's organization - Scm URL should point to a web-enabled view on the repository - Extract tycho-extras version used during signing to a property Change-Id: If32bed323ec283b5e83d28ffe8775220f7c4cecd Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Update dependencies to the versions used in target platformMatthias Sohn2015-06-012-4/+4
| | | | | | | | | | | | | | | | - update com.jcraft.jsch to 0.1.51 - update javax.servlet to 3.1.0 Change-Id: Ie536182d1efc6dcc3abd03f8a9acd013adcbf2a8 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>