summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Serve 403 from RepositoryFilter on ServiceMayNotContinueExceptionDave Borowitz2012-06-201-1/+1
| | | | | | | | | | This has no effect on Git clients, but for browsers, 403 Forbidden may be more appropriate. 500 Internal Server Error implies that there is a problem with the server, whereas ServiceMayNotContinueException is specifically intended to cover cases where the server is functioning correctly but has determined that the request may not proceed. Change-Id: I825abd2a029d372060103655eabf488a0547c1e8
* Read .gitmodules config from the tree in SubmoduleWalkDave Borowitz2012-06-154-7/+288
| | | | | | | | | | | | | It is not always appropriate to use the .gitmodules file from the working tree, for example if reading the modules at a specific commit. And sometimes it is impossible, as in a bare repository. When using the static factory methods, automatically set up the appropriate root tree so lazy loading of the config file reads from the appropriate place. Leave the current behavior of looking in the working tree as a fallback for the case where walking the index. Change-Id: I71b7ed3ba16c80b0adb8c5fd85b5c37fd4aef8eb
* Add a CommitBuilder method to edit arbitrary DirCacheEntrysDave Borowitz2012-06-151-2/+6
| | | | Change-Id: Ic2f5ec28621219a8ff1272674e2bf2c8d36eb107
* Add a release() method to SubmoduleWalkDave Borowitz2012-06-151-12/+29
| | | | | | | | We need a way to release the underlying TreeWalk. Also, use this method to release walks from the static factory methods on error or when submodules are not found. Change-Id: I6bedc2db78bcd577aef2cfe6715bb981a26dcfd7
* Add "--squash" option to MergeCommandTomasz Zarna2012-06-1517-60/+765
| | | | | | | CQ: 6570 Bug: 351806 Change-Id: I5e47810376419264ecf4247b5a333af5c8945080 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Remove unused import of ObjectInserter in ResolveMergerTomasz Zarna2012-06-151-2/+1
| | | | Change-Id: I415894418f6fbe922c61294b21e15eee64e8a806
* Merge "Add Transport URI constructor without a repository"Shawn Pearce2012-06-156-0/+91
|\
| * Add Transport URI constructor without a repositoryIan Wetherbee2012-06-146-0/+91
| | | | | | | | | | | | | | Let a Transport instance be opened with only a URI, for use in the upcoming publish-subscribe feature. Change-Id: I391c60c10d034b5c1c0ef19b1f24a9ba76b17bb5
* | Merge "Fix UnionInputStream.read to be more Java-like"Shawn Pearce2012-06-152-13/+31
|\ \
| * | Fix UnionInputStream.read to be more Java-likeIan Wetherbee2012-06-142-13/+31
| |/ | | | | | | | | | | | | | | | | Relax the read() method to not block until exactly "len" bytes have been read. Instead, return when one or more bytes have been read, up to "len", so UnionInputStream more closely resembles InputStream's read() method. Change-Id: I3f632be8eb85a4a0baf27c9f067c8d817162de2b
* | Use only a single ObjectInserter in ResolveMergerShawn O. Pearce2012-06-141-5/+3
| | | | | | | | | | | | | | | | The base class supplies an ObjectInserter to its implementations by way of the getObjectInserter method. Tracking a second inserter instance doesn't match with the expected behavior. Change-Id: I78996bd06ef9028c8aa2e4e192ff647c43da847d
* | Define ObjectInserter.Filter to wrap another ObjectInserterShawn O. Pearce2012-06-141-0/+54
| | | | | | | | | | | | | | | | | | | | | | | | Filter supports wrapping another ObjectInserter. By default all methods are delegated to the wrapped inserter. Implementors may override methods selectively for altered behavior. The instance that is wrapped may be determined dynamically by code, supporting lazy allocation of the delegate, or other patterns like object pooling. Change-Id: I7b2613d09e73f94e675bad33afbb693f6a7f3df6
* | Allow applications to pass ObjectInserter to MergerShawn O. Pearce2012-06-141-0/+19
|/ | | | | | | | | Gerrit Code Review needs to control which inserter is used by a Merger. Allow the application to set the inserter before calling merge, giving callers more direct control over how objects will be created. Change-Id: I3c527a493db4659e95289ff3077cffb9e32336cf
* Prepare 2.1.0 buildsMatthias Sohn2012-06-1447-262/+262
| | | | Change-Id: I4aad3efdd435d8d5eb53c84a8d38132acce97c25 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Merge branch 'stable-2.0'Matthias Sohn2012-06-1432-9/+1070
|\ | | | | | | | | | | | | | | | | | | | | * stable-2.0: Prepare post v2.0.0.201206130900-r builds JGit v2.0.0.201206130900-r Add org.eclipse.jgit.pgm.feature to enable consumption via p2 Do not set core.autocrlf when creating repo Change-Id: Ifdd71a6bc14d9c79f4433ebc3b53bf0042a4d4c8 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Prepare post v2.0.0.201206130900-r buildsMatthias Sohn2012-06-1447-47/+47
| | | | | | | | Change-Id: I51b1bbed35288c5285b3d6860efba97d58de5a1c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * JGit v2.0.0.201206130900-rv2.0.0.201206130900-rMatthias Sohn2012-06-1347-48/+48
| | | | | | | | | | Change-Id: I685e09b3e37d68614df1b5cc5f687a65cd6eb82d Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Add org.eclipse.jgit.pgm.feature to enable consumption via p2Matthias Sohn2012-06-1230-0/+1062
| | | | | | | | | | | | | | | | | | | | Orion wants to consume the pgm bundle from a p2 repository in their build. Also add corresponding source bundle and feature to provision sources via a target platform. Bug: 373789 Change-Id: I0016ee155553c546606b63d310666eb10bd997e1 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Do not set core.autocrlf when creating repoRobin Rosenberg2012-06-122-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | core.autorlf defaults to false, but can be set in the user or "system" config files. Note that EGit/JGit may not know where the "system" config file is located. Also fix pgm's ConfigTest which depends on default repository configuration. Bug: 382067 Change-Id: I2c698a76e30d968e7f351b4f5a2195f0b124f62f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Fix GitDateFormatter javadoc.Tomasz Zarna2012-06-141-1/+3
| | | | | | | | Change-Id: I627bdc387754a626ed8b1839494c05dfd5950d11 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Add missing license header to modification times test.Markus Duft2012-06-111-0/+37
| | | | | | | | | | | | | | This adds the header i forgot to add in I18047f5725f22811bb4194ca1d3a3cac56074183. Change-Id: I9160b0632c65da9e30a88688c4d9216b5f93d818
* | Merge changes I1c87fea9,I7bd5011f,Ie800c557Shawn Pearce2012-06-083-6/+238
|\ \ | | | | | | | | | | | | | | | | | | * changes: Add MetaFilter.serveRegex(Pattern) Expand RegexPipeline documentation Add simple tests for RegexPipeline
| * | Add MetaFilter.serveRegex(Pattern)Dave Borowitz2012-06-082-0/+16
| | | | | | | | | | | | | | | | | | | | | This allows the use of precompiled patterns, such as those compiled with flags. Change-Id: I1c87fea98e246004aecbae3aabaf1d21fbf3176e
| * | Expand RegexPipeline documentationDave Borowitz2012-06-081-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Include some behaviors that were not clear to me until I had used it a few times. Warn about broken behavior for capture groups that do not match. It would be nice to support these, but even for the cases where it's clear what the behavior should be, it would be infeasible to implement. For example, consider the second group of the regex "(/a)/b(/c)?" matched against the path "/a/b". We might want getServletPath() to return "/a/b" and getPathInfo() to return null, but this is hard to implement: there's no easy way to say "the substring up to the point where (/c) would have matched if it were in the string even though it's not." And even if we could, it's not clear there is even a right answer in the general case. Moreover, ideally we could warn about such broken patterns at servlet initialization time, rather than at runtime, but even answering the question of whether there are capture groups that might not match requires more customized regular expression parsing than we want to embark on. Hence, the best we can do is document how it fails. Change-Id: I7bd5011f5bd387f9345a0e79b22a4d7ed918a190
| * | Add simple tests for RegexPipelineDave Borowitz2012-06-081-0/+209
| | | | | | | | | | | | Change-Id: Ie800c55702ea9724b393be0a8b36e0e4da1a6e0d
* | | Merge branch 'stable-2.0'Shawn O. Pearce2012-06-0739-188/+351
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By Robin Rosenberg (6) and others via Gerrit Code Review @ Eclipse.org (2) and Matthias Sohn (1) * stable-2.0: Prepare next 2.0.0-SNAPSHOT builds JGit v2.0.0.201206060730-rc3 Remove Jetty p2 repository from Maven build Get rid of warnings about empty statments Removed unused parameters from private methods cleanup: Remove unused declarations Make FS OS X detection work for OpenJDK Use working tree iterator to compare file modes Further cleanup of exceptions in Git API Update build to use Tycho 0.15.0 Throw formal CheckoutConflictException on hard reset Configure maven-source-plugin execution in parent POM Support gitdir: refs in BaseRepositoryBuilder.findGitDir Relax RevisionSyntaxException to an IllegalArgumentException Change-Id: I05727693e0c9e762d4fc220ceadcd5a5bfb11d0d
| * | Prepare next 2.0.0-SNAPSHOT buildsMatthias Sohn2012-06-0642-47/+47
| | | | | | | | | | | | Change-Id: I0d55b390502b3da139ab0d15a6cf3d05774d8ad9 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | JGit v2.0.0.201206060730-rc3v2.0.0.201206060730-rc3Matthias Sohn2012-06-0642-47/+47
| | | | | | | | | | | | | | | Change-Id: I12f8800b74228e71c77f0fb82c250c154d06369f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Merge "Use working tree iterator to compare file modes" into stable-2.0Christian Halstrick2012-06-063-24/+81
| |\ \
| | * | Use working tree iterator to compare file modesKevin Sawicki2012-06-053-24/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add isModeDifferent method to WorkingTreeIterator that compares mode with consideration of the core.filemode setting in the config. Bug: 379004 Change-Id: I07335300d787a69c3d1608242238991d5b5214ac Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
| * | | Remove Jetty p2 repository from Maven buildMatthias Sohn2012-06-061-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reference is not required and would force all JGit consumers to switch to Maven 3 and Tycho which isn't desirable. Bug: http://dev.eclipse.org/mhonarc/lists/jgit-dev/msg01687.html Change-Id: Iecf7c5aad46bb05fce0455cc8127aee2f679848c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | | Get rid of warnings about empty statmentsRobin Rosenberg2012-06-063-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In HtttpAuthMethod there were comments, but not in a style that Eclipse recognizes. Change-Id: I64f55b27143f8badcefbb419d3951f2a26b87d5f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | | Removed unused parameters from private methodsRobin Rosenberg2012-06-062-8/+7
| | | | | | | | | | | | | | | | | | | | Change-Id: I60bc03b9550ccd2350918e6328276ec9839748d5 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | | cleanup: Remove unused declarationsRobin Rosenberg2012-06-064-4/+0
| | | | | | | | | | | | | | | | Change-Id: I3b54cb9f73cb433c71a441a11ddc74cfecdaa1dc
| * | | Make FS OS X detection work for OpenJDKRobin Rosenberg2012-06-062-5/+4
| |/ / | | | | | | | | | | | | | | | | | | OpenJDK sets the os.name system.property to "Darwin", while Apple's version says "Mac OS X". Change-Id: If08f8e7b8ef94ec00023a3f78bbf502ebd9699fb
| * | Further cleanup of exceptions in Git APIRobin Rosenberg2012-06-0517-65/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | - Translate internal exceptions to corresponding API exception - Do not catch GitAPI exceptions internally to an internal exception. Just pass them to caller - Mention thrown exceptions in javadoc Change-Id: I9044cf86d2b0bcc8b63b7cc016e1bf0055a62053 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Update build to use Tycho 0.15.0Matthias Sohn2012-06-054-42/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Also use packaging type eclipse-repository to create the p2 repository since Tycho fixed bug 368596 which we worked around using packaging type eclipse-update-site. Change-Id: Id4ee884027d55cd2d43e8a6ef58a67f74ab488e4 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Throw formal CheckoutConflictException on hard resetKevin Sawicki2012-06-051-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will allow calling classes to have access to the conflicts that occurred during the attempted checkout. Even though setFailOnConflict(false) is called on the DirCacheCheckout a CheckoutConflictException can still be thrown if cleanup fails. Change-Id: Iea7ad3176a1b0e8606a643de8945e276718eb3ce Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Configure maven-source-plugin execution in parent POMKevin Sawicki2012-06-051-0/+14
| | | | | | | | | | | | | | | | | | | | | This ensures all modules will have source jars built Change-Id: I11a762f54cc8b059eff3bd99138a7efa9723b19f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Support gitdir: refs in BaseRepositoryBuilder.findGitDirKevin Sawicki2012-06-042-25/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows findGitDir to be used for repositories containing a .git file with a gitdir: ref to the repository's directory such as submodule repositories that point to a folder under the parent repository's .git/modules folder Change-Id: I2f1ec7215a2208aa90511c065cadc7e816522f62 Signed-off-by: Chris Aniszczyk <zx@twitter.com>
| * | Merge "Relax RevisionSyntaxException to an IllegalArgumentException" into ↵Christian Halstrick2012-06-041-2/+1
| |\ \ | | | | | | | | | | | | stable-2.0
| | * | Relax RevisionSyntaxException to an IllegalArgumentExceptionRobin Rosenberg2012-06-041-2/+1
| | | | | | | | | | | | | | | | Change-Id: Ide46eeb6cddcf3111f7c237ba8425a0854a90bfd
* | | | Make DirCacheCheckout update timestamps in the index.Markus Duft2012-06-062-2/+98
| |_|/ |/| | | | | | | | | | | | | | | | | | | | This updates the timestamp of files that are not touched during checkout. Otherwise the timestamp will always be zero, causing the IndexDiffFilter to always calculate the checksum of file contents. Change-Id: I18047f5725f22811bb4194ca1d3a3cac56074183
* | | Merge changes Iee9af8d5,I8e1674f0,If5a6fcc5,I3bb28e4dShawn O. Pearce2012-06-058-112/+606
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * changes: Use BatchRefUpdate for tracking refs in FetchProcess Batch reference updates together for storage Expose ReceiveCommand.updateType to check for UPDATE_NONFASTFORWARD Reject non-fast-forwards earlier in BaseReceivePack
| * | | Use BatchRefUpdate for tracking refs in FetchProcessShawn O. Pearce2012-05-224-97/+195
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If there are a lot of references to modify, using BatchRefUpdate can save time if the underlying storage is able to combine these updates together. This should speed up initial clone or fetch into an empty repository, as some projects can have hundreds of release tags, or hundreds of branch heads. Change-Id: Iee9af8d5fa19080077d88357c18853540936e940
| * | | Batch reference updates together for storageShawn O. Pearce2012-05-224-8/+355
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | clone, fetch and push can all update multiple references in a single command invocation. Rather than performing sequential iteration of each reference change inside of the application code, push this down into the reference database where the implementation can take advantage of the batch size and optimize itself. For the local filesystem implementation the obvious optimization is to write a packed-refs file when the repository is completely empty. The initial clone, fetch or push into the destination may have hundreds of new references. Writing all of these as loose files is not efficient. This optimization is not implemented in this commit and is left as an exercise for the reader to supply in a future commit to JGit. To make the API changes simple, define the BatchRefUpdate type and implementation using the existing sequential behavior. Change-Id: I8e1674f091e05e24e3ff56ccbc687a6d18a6a61e
| * | | Expose ReceiveCommand.updateType to check for UPDATE_NONFASTFORWARDShawn O. Pearce2012-05-222-5/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a command's type is UPDATE, JGit might not yet be sure if it is a fast-forward or not. Expose a utility method to compute the exact type by performing the merge base test, allowing the type to be switched to UPDATE_NONFASTFORWARD if old ObjectId is not contained in new ObjectId. BaseReceivePack already does this test when validating the incoming command list, so provide a package level backdoor to set the type and avoid needing to redo the merge test later. Change-Id: If5a6fcc50dc4d6f96e9bb0bb7bba15ebe8b86377
| * | | Reject non-fast-forwards earlier in BaseReceivePackShawn O. Pearce2012-05-221-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If BaseReceivePack has setAllowNonFastForwards(false) configured (such as by receive.denynonfastforwards), automatically reject any command that attempts a non-fast-forward update before it goes further in processing. This matches with other checks in validateCommands(), such as the early failure of delete attempts when isAllowDeletes() is false. Change-Id: I3bb28e4dd6d17cb31ede09eb84ceb67cdb17ea5d
* | | | Merge "fix PackWriter excluded objects handling"Shawn Pearce2012-06-0482-455/+852
|\ \ \ \
| * | | | fix PackWriter excluded objects handlingChristian Halstrick2012-06-042-1/+68
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PackWriter supports excluding objects from being written to the pack. You may specify a PackIndex which lists all those objects which should not go into the new pack. This feature was broken because not all commits have been checked whether they should be excluded or not. For other object types the exclude algorithm worked. This commit adds the missing check. Change-Id: Id0047098393641ccba784c58b8325175c22fcece Signed-off-by: Christian Halstrick <christian.halstrick@sap.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>