aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit/src
Commit message (Collapse)AuthorAgeFilesLines
* Improve performance of persisting an index by magnitudesstable-2.0Christian Halstrick2012-06-281-0/+11
| | | | | | | | | | | | | | | | | | | When updating smudged entries use a pathfilter to iterate only over working tree files which have an associated smudged index entry. Commit dac66672df0535f61a13273524d46e1e0012ca69 introduced that we check and update smudged entries while persisting a dircache. Before that commit adding a file to git caused file i/o for the index file, the object database (to store new content) and all files we wanted to add (to read new content). After that commit we have additionally file i/o for every file in the working tree (even ignored files). Especially on windows iterating over the working tree can be very time consuming. This decreased the performance of persisting a dircache dramatically (I measured factors 4 to 10 while adding a file to linux kernel repo). One could easily see this effect when dragging&dropping modified files in a linux kernel repo in the egit staging view. Change-Id: I568dec77635013cf6bb46f652d3f2b89de041c82 Signed-off-by: Kevin Sawicki <kevin@github.com>
* Do not set core.autocrlf when creating repoRobin Rosenberg2012-06-121-2/+0
| | | | | | | | | | | | 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>
* Merge "Use working tree iterator to compare file modes" into stable-2.0Christian Halstrick2012-06-062-24/+41
|\
| * Use working tree iterator to compare file modesKevin Sawicki2012-06-052-24/+41
| | | | | | | | | | | | | | | | | | | | 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>
* | Get rid of warnings about empty statmentsRobin Rosenberg2012-06-062-5/+8
| | | | | | | | | | | | | | | | 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-061-1/+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>
* 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>
* Support gitdir: refs in BaseRepositoryBuilder.findGitDirKevin Sawicki2012-06-041-25/+32
| | | | | | | | | | 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
* | Merge "Only increment mod count if packed-refs file changes" into stable-2.0Shawn Pearce2012-06-041-10/+20
|\ \
| * | Only increment mod count if packed-refs file changesKevin Sawicki2012-05-281-10/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously if a packed-refs file was racily clean then there was a 2.5 second window in which each call to getPackedRefs would increment the mod count causing a RefsChangedEvent to be fired since the FileSnapshot would report the file as modified. If a RefsChangedListener called getRef/getRefs from the onRefsChanged method then a StackOverflowError could occur since the stack could be exhausted before the 2.5 second window expired and the packed-refs file would no longer report being modified. Now a SHA-1 is computed of the packed-refs file and the mod count is only incremented when the packed refs are successfully set and the id of the new packed-refs file does not match the id of the old packed-refs file. Change-Id: I8cab6e5929479ed748812b8598c7628370e79697
* | | Add lazy loading of body for tags to PlotWalkStefan Lay2012-06-041-0/+5
| |/ |/| | | | | | | | | | | This change is required by egit's lazy loading of the body in the history view when the walk is started with setRetainBody(false). Change-Id: I9291ba8c34c8744bc009b1bd302ed28bfa4e9476 Signed-off-by: Stefan Lay <stefan.lay@sap.com>
* | Remove obsolete GitlinksNotSupportedExceptionRobin Rosenberg2012-05-311-65/+0
| | | | | | | | Change-Id: Idddd86818858b229e68b4a46597fc67547bcce17
* | Update ORIG_HEAD when resettingKevin Sawicki2012-05-313-2/+40
| | | | | | | | | | | | | | | | | | | | | | | | Write the old object id from the RefUpdate to the ORIG_HEAD file after the update completes. Add two new convenience methods to Repository to read and write the ORIG_HEAD reference similar to the methods for reading/writing CHERRY_PICK_HEAD and MERGE_HEAD. Bug: 375525 Change-Id: I120b3b2cd3b1ddae88fce435285bae15cbf96f5e
* | Git API does not declare GitAPIException call() and related cleanupsRobin Rosenberg2012-05-3042-136/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All commands should throw a GitAPIException so new exceptions can be added without breaking the builds of old code, i.e. anyone that calls a Git API should catch GitAPIException and not just the currently known exceptions. Now the only checked exceptions on Git API calls are GitException and subclasses of it. New checked exceptions that are subclasses of GitException may be added without breaking the API. Javadoc for GitAPIException is declared on GitCommand and inherited to subclasses. JGitInternalException is not explicitly documented anymore. Unfortunately this change itself breaks the API. The intention is that it shall be possible to add new checked subclasses of GitAPIException without breaking the API. Bug: 366914 EGit-Change-Id: I50380f13fc82c22d0036f47c7859cc3a77e767c5 Change-Id: I50380f13fc82c22d0036f47c7859cc3a77e767c5 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Merge "Retain file length and mod time when doing a mixed reset" into stable-2.0Robin Rosenberg2012-05-301-6/+43
|\ \
| * | Retain file length and mod time when doing a mixed resetKevin Sawicki2012-05-281-6/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the index was cleared and updated with a new tree. Now the commit being reset to and the index are iterated over in a tree walk and the current index mod time and file length are copied over to the new dir cache entry being written if the object ids are the same. Change-Id: Iaf9e624efb0bf90f9e05fcb0587dde4dec50000c
* | | Merge "Update smudged entries when writing index" into stable-2.0Robin Rosenberg2012-05-302-3/+102
|\| |
| * | Update smudged entries when writing indexKevin Sawicki2012-05-282-3/+102
| |/ | | | | | | | | | | | | | | | | | | | | Overload DirCache.lock to take a repository that is used for updating smudged index entries with information from the repository's working tree. New unit tests are also added for updating smudged index entries on reset, checkout, and commit. Change-Id: I88689f26000e4e57e77931e5ace7c804d92af1b6
* / Enable loading history until a given commitMatthias Sohn2012-05-301-0/+66
|/ | | | | | | This is needed to allow jumping to a selected commit when loading history incrementally. Change-Id: Id3b97d88d3b4b2d67561b11f8810cb88fe040823 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Ensure resetting on commit idDariusz Luksza2012-05-231-1/+1
| | | | | | | | | When reset command was called with tag name as parameter the resulting HEAD was set to the tag's SHA-1 which is a bug. This patch ensures that repository.resolve() call always returns commit id. Change-Id: I219b898c620a75c497c8652dbf4735fd094c4d7c Signed-off-by: Dariusz Luksza <dariusz@luksza.org> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Smudge index entries on first write (too), as well when readingRobin Rosenberg2012-05-213-18/+44
| | | | | | | | | | | That happens when the index and a new file is created within the same second and becomes a problem if we then modify the newly created file within the same second after adding it to the index. Without smudging JGit will, on later reads, think the file is unchanged. The accompanying test passed with the smuding on read. Change-Id: I4dfecf5c93993ef690e7f0dddb3f3e6125daae15
* Don't swallow JSchException "Auth fail" exceptionDariusz Luksza2012-05-161-1/+2
| | | | | | | | | "Auth fail" exception was swallowed during retrying, this leads to "Session down" exception during clone operation with invalid SSH keys. Bug: 336795 Change-Id: Id8d9e83b10f4f2a01e0cf89819190bb23a04a2b9 Signed-off-by: Dariusz Luksza <dariusz@luksza.org>
* Enable call chaining on LsRemoteCommand methodsDave Borowitz2012-05-141-4/+10
| | | | Change-Id: I706332386415892d7a964b241442832ad79fa223
* Factor a base class out of ReceivePackDave Borowitz2012-05-146-1132/+1322
| | | | | | | | | | | | We are working on a publish/subscribe based git protocol, and we want to reuse several parts of the ReceivePack-like code for reading commands and processing a pack. In this new implementation, the connection management will be very different, in particular, there may be multiple packs received on a single open connection. So, hoist out as much as we can from ReceivePack, mostly just leaving behind the single-connection version in that class. Change-Id: I5567aad6ae77951f73f59c1f91996d934ea88334
* Cleanup MergeResult constructorsTomasz Zarna2012-05-101-6/+8
| | | | | | | | 'mergeStrategy' should be 5th argument, after 'mergeStatus'. Pass 'description' if available. Change-Id: I97cebfe5d7db6247fe899075d917b82955906f85 Signed-off-by: Chris Aniszczyk <zx@twitter.com>
* Add missing @since tags to mark API added in 2.0Matthias Sohn2012-05-1025-22/+111
| | | | | | Change-Id: I0a86ce0e393dfde9bb27f0b29e036e76c856396e Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> Signed-off-by: Chris Aniszczyk <zx@twitter.com>
* Remove throws IOException declaration on filterCleanKevin Sawicki2012-05-101-1/+1
| | | | | | | | | This method only creates an EolCanonicalizingInputStream which does not throw an IOException and so the throws declaration on the method is unneeded. Change-Id: Icae8b80006c5e3ffcf3b69790a1a45c505be0f05 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add Object type to Comparable implements declarationKevin Sawicki2012-05-101-1/+1
| | | | | | | | | This removes unchecked warnings when a List of AnyObjectId objects or any of its subclasses are passed to Collections.sort such as in PackWriter Change-Id: I806732cee24349c75c0357a655df55b070f2f213 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Remove 4 unboxed warningsKevin Sawicki2012-05-102-3/+4
| | | | | | | Use Integer.intValue to explicitly convert to an int Change-Id: I1135ed01af4e274b26d6b07d1a50f48ef0a30d91 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Make output stream optional in DiffCommandKevin Sawicki2012-05-101-10/+14
| | | | | | | | | | | | Use the NullOutputStream.INSTANCE value when the configured output stream is null or the command is configured to only show name and status. Also only set the context and prefix options if formatting is actually being performed. Bug: 377157 Change-Id: I333cfcc82ee746f3c6a8e94c09dcc803ffbb4b3a Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Compare modes before comparing ids in ResolveMergerKevin Sawicki2012-05-091-2/+2
| | | | | | | | Comparing ids can be more expensive so do the cheap mode check first and short circuit the id comparison when modes are non-equal Change-Id: I671eda51c74a411cc27de9d6077cc76e816ebe2b
* Remove 86 boxing warningsKevin Sawicki2012-05-0832-96/+160
| | | | | | | | Use Integer, Character, and Long valueOf methods when passing parameters to MessageFormat and other places that expect objects instead of primitives Change-Id: I5942fbdbca6a378136c00d951ce61167f2366ca4
* Remove unnecessary boxing SuppressWarnings annotationKevin Sawicki2012-05-081-1/+0
| | | | Change-Id: Id8a6d9f96860742f9094efdb4f31a952be7d3025
* Remove unneeded catch block and null checksKevin Sawicki2012-05-041-12/+4
| | | | | | | | The catched exception was just rethrown and the null check of the locked dir cache was unneeded if the assignment was done outside the try block. Change-Id: If2ee1f3eff3849f8da51eab825057fc56e166a94
* Validate paths during DirCheckoutRobin Rosenberg2012-04-235-8/+206
| | | | | | | | | | | | | | | | | | | DirCacheCheckout and CanonicalTreeParser cooperate. CanonicalTreeParser can detect malformed, potentially malicious tree entries and sets a flag, while DirCacheCheckout refuses to work with such paths. Malicious tree entries are ".", "..", ".git" (case insensitive), any name containing '/' and (on Windows '\') and also (on Windows) any paths ending in a combination of '.' or space or containing a ':'. We also forbid all special names like "con" etc on Windows. Some of the test can execute on any platform by enabling partial platform emulation. A new runtime exception, InvalidPathException, is introduced. For backwards compatibility it extends InvalidArgumentException. Change-Id: I86199105814b63d4340e5de0e471d0da6b579ead Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Enable large file supportRobin Rosenberg2012-04-182-9/+8
| | | | | | | | Allow adding files with size over 2 GB. The drawback is that the tests for huge file support adds roughly 10 minutes of execution time. For that reason we @Ignore the test in the standard test execution. Change-Id: I5788e8009899203b346f353297166825b3744575
* Allow to write tests with CLI syntaxTomasz Zarna2012-04-181-0/+38
| | | | | | | CQ: 6385 Bug: 365444 Change-Id: I2d5164cd92429673fe3c37e9f5f9bc565192cc12 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Enable DirCacheEntry's copyMetaData to not copy stage infoRobin Rosenberg2012-04-172-4/+27
| | | | | | | When there is a conflict sometimes we did not set the stage of the conflict entries properly for the STAGE_1 entry. Change-Id: I1c28ff6251fdbc95f7c40fc3e401f1b41157a9f6
* Hide two warnings about boxingRobin Rosenberg2012-04-161-0/+2
| | | | Change-Id: I1cb7cdb81481019f4a55221d38d771fcc9451529 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Fix constructor for SafeBufferedOutputStreamRobin Rosenberg2012-04-141-1/+4
| | | | | | | The size shoould be passed to BufferedOutputStream's constructor. All callers seem to use the default, but that could change. Change-Id: I874afee6a9114698805e36813781547e6aa328a5
* Merge "UnsupportedCredentialItem with password authentication"Robin Rosenberg2012-04-091-6/+15
|\
| * UnsupportedCredentialItem with password authenticationRobin Rosenberg2012-04-091-6/+15
| | | | | | | | | | | | | | If the server prompts for password, it comes as a StringType prompt. Bug: 360862 Change-Id: Ic758456c21c8d68d1b3d7f56228beb7535b11735
* | Merge "Fix broken TagCommand API"Robin Rosenberg2012-04-062-15/+12
|\ \
| * | Fix broken TagCommand APIRobin Rosenberg2012-04-062-15/+12
| |/ | | | | | | | | | | | | | | Tags can be un-annotated whereby there is no RevTag object, only a ref pointing to the tagged object. Bug: 360650 Change-Id: I06309c45c0a896fe2a0a874700febf78c9fb87e8
* | Merge "Cleanup possiblyFilteredInputStream() in WorkingTreeIterator"Matthias Sohn2012-04-051-29/+26
|\ \