aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* JGit v4.2.0.201512141825-rc1v4.2.0.201512141825-rc1Matthias Sohn2015-12-1546-49/+49
| | | | | Change-Id: Id725ea888acd23793d37de2864ec0727160a2eaf Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Merge branch 'master' into stable-4.2Matthias Sohn2015-12-15147-776/+5994
|\ | | | | | | | | Change-Id: Ia92c91e1226da7d6455ab14f1e255a1546f8f357 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Merge "push: Do not blindly overwrite peer"Shawn Pearce2015-12-144-4/+156
| |\
| | * push: Do not blindly overwrite peerShawn Pearce2015-12-144-4/+156
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If an application uses PushConnection directly on the native Git wire protocols JGit should send along the application's expected oldId, not the advertised value. This allows the remote peer to compare-and-swap since it was not tested inside JGit. Discovered when I tried to use a PushConnection (bypassing the standard PushProcess) and the client blindly overwrote the remote reference, even though my app had supplied the wrong ObjectId for the expectedOldObjectId. This was not expected and cost me over an hour of debugging, plus "corruption" in the remote repository. By passing along the exact expectedOldObjectId from the app the remote side can do the check that the application skipped, and avoid data loss. Change-Id: Id3920837e6c47100376225bb4dd61fa3e88c64db
| * | Fix FileTreeIterator.idSubmodule(Entry)Christian Halstrick2015-12-132-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | FileTreeIterator was calling by mistake WorkingTreeIterator.idSubmodule(Entry). Instead it should always compute idSubmodule on its own. Change-Id: Id1b988aded06939b1d7edd2671e34bf756896c0e
| * | URIish: fixed full uri pattern not expecting end of line after host nameAndrey Loskutov2015-12-122-4/+23
| | | | | | | | | | | | | | | | | | Bug: 483326 Change-Id: I8b6e3eb648c8ec2c38f73de22382537b1276b779 Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
| * | Add remote command to JGit CLIKaloyan Raev2015-12-1116-2/+1307
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Supported subcommands are: - <none> (lists available remotes) - add - remove - set-url - update Supported options are: --verbose --push --prune Bug: 481316 Change-Id: I57c34ed6daabb7d308bc383b17c1ef4af433e714 Signed-off-by: Kaloyan Raev <kaloyan.r@zend.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Merge "Fix NPE in HttpAuthMethod"Christian Halstrick2015-12-081-1/+2
| |\ \
| | * | Fix NPE in HttpAuthMethodMatthias Sohn2015-12-071-1/+2
| | |/ | | | | | | | | | | | | | | | | | | If the password char array is null constructing a new String from this array fails with a NPE. Add a null check to fix this. Change-Id: Ifae6eecca38d5f114861f44658a32521e6e96866 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * / Use runtime retention for Nullable annotationJonathan Nieder2015-12-071-4/+35
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JGit's Nullable type was added[1] in the hope of being able to add nullness annotations that (a) do not preclude building and running with Java 7 and (b) could be shared by Gerrit, which uses a custom Nullable type for other reasons[2]. Sharing a type is useful because Eclipse's null analysis is only able to use one Nullable type at a time in a given workspace (so for this analysis to function in a workspace used to develop Gerrit, JGit and Gerrit would need to use the same Nullable type). The new Nullable type has CLASS instead of RUNTIME retention because there wasn't any obvious use for the annotation at run time. Gerrit uses the Nullable annotation to communicate with Guice. Guice injection happens at runtime, so it needs to be able to read the @Nullable annotations at run time[3]. Otherwise Guice produces provisioning errors, such as 3) null returned by binding at com.google.gerrit.lucene.LuceneChangeIndex$Factory.create() but parameter 7 of com.google.gerrit.lucene.LuceneChangeIndex.<init>() is not @Nullable Switch to RUNTIME retention to avoid this. While at it, update the javadoc to explain more clearly how this annotation relates to other Nullable types[4]. This should make it clearer why JGit needed another Nullable type: A. Avoiding dependency on Java 8 B. RUNTIME retention to allow Guice to read the annotation at run time C. Named Nullable so Guice can recognize the annotation D. Not an addition to Java EE's javax.annotation package, to avoid the split-package problem[2] that prevents the annotation from being readable at run time when loaded from an OSGi container E. Avoiding heavyweight dependencies, deprecated dependencies, and dependencies on package internals org.checkerframework.checker.nullness.qual.Nullable: A com.sun.istack.internal.Nullable: B, E *.CheckForNull, *.NullAllowed, etc: C edu.umd.cs.findbugs.annotations.Nullable: B, E javax.annotation.Nullable: D org.eclipse.jdt.annotation.Nullable: B org.jetbrains.annotations.Nullable: B org.jmlspecs.annotation.Nullable: E android.annotation.Nullable, android.support.annotation.Nullable: E [1] https://git.eclipse.org/r/59993 [2] https://gerrit-review.googlesource.com/50112 [3] https://github.com/google/guice/blob/master/core/src/com/google/inject/internal/Nullability.java [4] https://github.com/typetools/checker-framework/blob/5832a01f1/checker/src/org/checkerframework/checker/nullness/NullnessAnnotatedTypeFactory.java#L118 http://types.cs.washington.edu/checker-framework/current/checker-framework-manual.html#nullness-related-work Change-Id: I6c482653d2b53e3509abb11211b67fc29cf2949c Signed-off-by: Jonathan Nieder <jrn@google.com>
| * Support atomic push in JGit clientShawn Pearce2015-12-029-34/+446
| | | | | | | | | | | | | | | | | | | | | | | | | | This should mirror the behavior of `git push --atomic` where the client asks the server to apply all-or-nothing. Some JGit servers already support this based on a custom DFS backend. InMemoryRepository is extended to support atomic push for unit testing purposes. Local disk server side support inside of JGit is a more complex animal due to the excessive amount of file locking required to protect every reference as a loose reference. Change-Id: I15083fbe48447678e034afeffb4639572a32f50c
| * Fix wrong @since tag In ReceiveCommandMatthias Sohn2015-12-021-1/+1
| | | | | | | | Change-Id: I58fa657dd4783fed0ffca94020c87c49d99009c6 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * ReceiveCommand.filter: Accept IterableShawn Pearce2015-12-011-7/+28
| | | | | | | | | | | | | | | | | | | | PreReceiveHook is given a Collection<ReceiveCommand> and it can be very useful here to call ReceiveCommand.filter(cmds, NOT_ATTEMPTED). Overload filter to accept both Iterable and List. Keep backwards binary compatibility for List by upcasting to Iterable. Change-Id: Ib1341876c703670945ef209edc8259715ee86c26
| * Merge changes If1490ca2,Ife950253Shawn Pearce2015-11-305-62/+167
| |\ | | | | | | | | | | | | | | | * changes: DirCacheBuilder: Speed up reading from trees Delay locating .gitattributes until requested
| | * DirCacheBuilder: Speed up reading from treesShawn Pearce2015-11-302-19/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recursively copying a tree into a DirCache is a bottleneck for some algorithms like the in memory merge code in Gerrit Code Review. Drop a layer down in the stack and use CanonicalTreeParser directly as the addition logic only processes 1 tree at a time and does not need the merge sorting feature (or overhead) of TreeWalk. Combined with 761814fe9c ("DirCacheEntry: Speed up creation by avoiding string cast") tree loading 38,900 entries nearly halves in running time from 70ms to 36ms on some platforms. Change-Id: If1490ca25de0679a71cf508f59b486f9cc816165
| | * Delay locating .gitattributes until requestedShawn Pearce2015-11-293-43/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of checking every entry for .gitattributes only look for the entry on request by TreeWalk. This avoids impacting uses like RevWalk filtering history. When the attrs is requested skip to the start of the tree and look for .gitattributes until either it is found, or it is impossible to be present. Due to the sorting rules of tree entries .gitattributes should be among the first or second entries in the tree so very few entries will need to be considered. Waiting to find the .gitattributes file by native ordering may miss attrs for files like .config, which sorts before .gitattributes. Starting from the front of the tree on demand ensures the attributes are parsed as early as necessary to process any entry in the tree. Due to TreeWalk recursively processing up the tree of iterators we cannot just reset the current CanonicalTreeParser to the start as parent parsers share the same path buffer as their children. Resetting a parent to look for .gitattributes may overwrite path buffer data used by a child iterator. Work around this by building a new temporary CanonicalTreeParser instance. Change-Id: Ife950253b687be325340d27e9915c9a40df2641c
| * | DirCache: Add helper to read from a treeShawn Pearce2015-11-293-36/+27
| |/ | | | | | | | | | | | | | | | | | | | | Application code sometimes wants to read a DirCache from an ObjectId, but its confusing how to do this because its buried inside the DirCacheBuilder. Use this utility in a few places within JGit that also want to read a DirCache from a tree's ObjectId. Change-Id: I578b7e18e58753d154937f4ab835012b09e5adca
| * DirCache: Fix bad code formattingShawn Pearce2015-11-282-8/+9
| | | | | | | | | | | | | | | | | | | | | | Line breaking before , is ugly to read. Most formatters and humans expect line break after , so update a few offensive locations. Use String.format() for the construction of the error message when a bad DirCachEntry is being failed on. This simplifies the code and its not a performance critical section. Change-Id: I5d990389e7ba24ef0861cf8ec0026ed030d4aeda
| * DirCacheEntry: Speed up creation by avoiding string castShawn Pearce2015-11-284-26/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The checkPath function is available as a byte[] form, in fact the String form just converts to byte[] to run the algorithm. Having DirCacheEntry take a byte[] -> String -> byte[] to check if each path is valid is a huge waste of CPU time. On some systems it can double the time required to read 38,999 files from trees to the DirCache. This slows down any operation using a DirCache. Expose the byte[] form and use it for DirCacheEntry creation. Change-Id: I6db7bc793ece99ff3c356338d793c07c061aeac7
| * DirCache: Fix getEntriesWithin("") to not include null entriesShawn Pearce2015-11-271-2/+2
| | | | | | | | | | | | | | | | The internal array may be longer than entryCnt, in this case the tail of the array is padded with null entries. Do not return those to the caller of getEntriesWithin(). Change-Id: I19efb05e103fab6b739ced407f6e28155a48dba6
| * Fix performance regression in CanonicalTreeParserShawn Pearce2015-11-271-15/+12
| | | | | | | | Change-Id: I14046559fddb9656d890d3099010117e84cd9439
| * Add support for smudge filtersChristian Halstrick2015-11-274-19/+234
| | | | | | | | | | | | | | | | | | | | | | If defined in .gitattributes call smudge filter during checkout. To support checkout where current HEAD,index do not contain attributes we need to also consider attributes from the tree we checkout. Therefore CanonicalTreeParser has to learn how to provide attributes. Change-Id: I168fdb81a8e1a9f991587b3e95a36550ea845f0a Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Add support for clean filtersChristian Halstrick2015-11-2713-9/+546
| | | | | | | | | | | | | | | | | | When filters are defined for certain paths in gitattributes make sure that clean filters are processed when adding new content to the object database. Change-Id: Iffd72914cec5b434ba4d0de232e285b7492db868 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Add the new class Attributes holding multiple Attribute(s)Ivan Motsch2015-11-2713-60/+306
| | | | | | | | | | | | | | | | | | | | Attributes represents a semantic collector of Attribute(s) and replaces the anonymous Map<String,Attribute>. This class will be returned by TreeWalk.getAttributes(). It offers convenient access to the attributes wrapped in the Attributes object. Adds preparations for a future Attribute Macro Expansion Change-Id: I8348c8c457a2a7f1f0c48050e10399b0fa1cdbe1 Signed-off-by: Ivan Motsch <ivan.motsch@bsiag.com>
| * Fix unit tests on WindowsChristian Halstrick2015-11-262-22/+21
| | | | | | | | | | | | | | | | | | PushCommandTest and RunExternalScriptTest didn't succeed on Windows. Fix this by expecting a simple line-feed as line ending (instead of the platform dependent line separator. Additionally correct the computation of expected URLs in PushCommandTest. Change-Id: Idcdc41cd7e535ff88df33ea0a249333ed8fc91b0 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Add missing @since tags and missing javadocMatthias Sohn2015-11-256-3/+35
| | | | | | | | Change-Id: I8575797127fc96abea8af56f019ca39f5897486f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Fix HookTest when running on Win32_CygwinChristian Halstrick2015-11-261-13/+8
| | | | | | | | | | | | | | | | | | This test expected that the test scripts emit a platform-dependent newline (crlf on windows, lf on linux). But that's not true. Expected result should always be a trailing "\n" because the test scripts explicitly echo a "\n" in the end. Change-Id: I604e08cda8cebe276b5214ba0f618b6112c3441f
| * Fix FS.runProcess() to close the InputStreamChristian Halstrick2015-11-261-6/+7
| | | | | | | | | | | | | | | | | | When FS.runProcess was called and an InputStream was given the method tried to pump the whole InputStream to the process. When the method ended the InputStream was not giving any data anymore. Consequently close the InputStream inside the method. Change-Id: I0ed738a775e5c977b21447d195acee1ecf5e2cb9
| * repo: Do not use search path to find refs/remotes/origin/<branch>Jonathan Nieder2015-11-251-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When running from a non-bare repository, "jgit repo" checks whether the rev passed in is a sha1 or branch name and in the latter case will check out origin/<branch>. We are expecting refs/remotes/origin/<branch>, but as a side effect of using getRef we also end up looking for refs/origin/<branch>, refs/heads/origin/<branch>, and so on. Avoid that by using exactRef instead. Signed-off-by: Jonathan Nieder <jrn@google.com> Change-Id: I670b2e48a88138a1f2104ea201baa958e9edbddb
| * Repository: Introduce exactRef and findRef, deprecate getRefJonathan Nieder2015-11-2523-195/+246
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Repository class provides only one method to look up a ref by name, getRef. If I request refs/heads/master and that ref does not exist, getRef will look further in the search path: ref/refs/heads/master refs/heads/refs/heads/master refs/remotes/refs/heads/master This behavior is counterintuitive, needlessly inexpensive, and usually not what the caller expects. Allow callers to specify whether to use the search path by providing two separate methods: - exactRef, which looks up a ref when its exact name is known - findRef, which looks for a ref along the search path For backward compatibility, keep getRef as a deprecated synonym for findRef. This change introduces findRef and exactRef but does not update callers outside tests to use them yet. Change-Id: I35375d942baeb3ded15520388f8ebb9c0cc86f8c Signed-off-by: Jonathan Nieder <jrn@google.com>
| * Null-annotated RefDatabase classAndrey Loskutov2015-11-251-2/+17
| | | | | | | | | | | | | | No other code changes except adding nullness annotations. Change-Id: If2606fb208f6690bd4fd7ad953e709a3ebd6398c Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
| * Null-annotated Repository class and fixed related compiler errorsAndrey Loskutov2015-11-2521-55/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | org.eclipse.jgit.lib.Repository class is an example of the API which should be written with Java 8 java.util.Optional<T> type. Unfortunately this API is already released and widely used. The good clients are currently doing their best with checking return values for null and bad clients do not know how bad their code is. I've tried not to change any logic and to be as less intrusive as possible. Most of the JGit code was well prepared to this, only few classes needed some smaller fixes. This change fixes all compiler errors in JGit and replaces possible NPE's with either appropriate exceptions, avoiding multiple "Nullable return" method calls or early returning from the method. Because annotating getDirectory() and getFS() as Nullable would cause lot of additional changes in JGit and EGit they are postponed. Change-Id: Ie8369d2c9c5fac5ce83b3b1b9bc217d7b55502a3 Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
| * Raise error if FileNotFoundException is caught for an existing fileMatthias Sohn2015-11-2410-19/+53
| | | | | | | | | | | | | | | | | | | | | | | | File, FileInputStream and friends may throw FileNotFoundException even if the file is existing e.g. when file permissions don't allow to access the file content. In most cases this is a severe error we should not suppress hence rethrow the FileNotFoundException in this case. This may also fix bug 451508. Bug: 451508 Change-Id: If4a94217fb5b7cfd4c04d881902f3e86193c7008 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Merge "RefDirectory.getRef: Treat fake missing symrefs like real ones"Jonathan Nieder2015-11-242-0/+32
| |\
| | * RefDirectory.getRef: Treat fake missing symrefs like real onesJonathan Nieder2015-11-192-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | getRef() loops over its search path to find a ref: Ref ref = null; for (String prefix : SEARCH_PATH) { ref = readRef(prefix + needle, packed); if (ref != null) { ref = resolve(ref, 0, null, null, packed); break; } } fireRefsChanged(); return ref; If readRef returns null (indicating that the ref does not exist), the loop continues so we can find the ref later in the search path. And resolve should never return null, so if we return null it should mean we exhausted the entire search path and didn't find the ref. ... except that resolve can return null: it does so when it has followed too many symrefs and concluded that there is a symref loop: if (MAX_SYMBOLIC_REF_DEPTH <= depth) return null; // claim it doesn't exist Continue the loop instead of returning null immediately. This makes the behavior more consistent. Arguably getRef should throw an exception when a symref loop is detected. That would be a more invasive change, so if it's a good idea it will have to wait for another patch. Change-Id: Icb1c7fafd4f1e34c9b43538e27ab5bbc17ad9eef Signed-off-by: Jonathan Nieder <jrn@google.com>
| * | Let FS_Win32_Cygwin detect symlink support by creating temporary symlinkChristian Halstrick2015-11-216-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The class FS_Win32 was always trying out to create a temporary symlink in order to find out whether symlinks are supported. FS_Win32_Cygwin was overwriting this method and always returned true. But when the user running JGit does not have administrative rights then the creation of symlinks is forbidden even if he is running on FS_Win32_Cygwin. A lot of tests failed only on the Windows platform because of this. It was correctly detected that FS_Win32_Cygwin is the filesystem abstraction to be used but creation of symlinks always failed because of lacking privileges of the user running the tests. This fix teaches FS_Win32_Cygwin to behave like FS_Win32 and to test whether symlinks can be created in order to find out whether symlinks are supported. Change-Id: Ie2394631ffc4c489bd37c3ec142ed44bbfcac726 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Fix classpath of test launch configurationsMatthias Sohn2015-11-214-9/+0
| | | | | | | | | | | | | | | | | | | | | Remove references to the bundle org.eclipse.jgit.java7 which was removed in 4.0. Change-Id: I85527eb2a34bb94979fdab1311043ae77a2b5ecd Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Avoid UnknownHostException in WalkEncryptionTestMatthias Sohn2015-11-211-9/+32
| | | | | | | | | | | | | | | | | | | | | | | | Prevent that WalkEncryptionTest fails when it can't determine the public IP address using http://checkip.amazonws.com. Also set timeouts when determining IP address in order to prevent long wait times during tests. Change-Id: I1d2fe09f99df2a5f75f8077811a72fb2271cdddb Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Remove no longer needed outdated API warning filterMatthias Sohn2015-11-201-6/+0
| |/ | | | | | | | | | | This fixes a warning saying this filter isn't needed anymore. Change-Id: If77056378befe86c1773950dbe48a82c833fd532 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Merge "git rev-parse: Add --verify option"Jonathan Nieder2015-11-193-3/+17
| |\
| | * git rev-parse: Add --verify optionThomas Meyer2015-11-193-3/+17
| | | | | | | | | | | | | | | | | | | | | Add the --verify option to be more compatible with git Change-Id: I225a36ecc4711fd2eb9af67ca8fb79681d94c587 Signed-off-by: Thomas Meyer <thomas.mey@web.de>
| * | Throw IndexReadException if existing index can't be readChristian Halstrick2015-11-194-0/+91
| |/ | | | | | | | | | | | | | | | | If the index file exists but can't be read for example because of wrong filesystem permissions we should throw a specific exception. This allows EGit to handle this error situation. Bug: 482607 Change-Id: I50bfcb719c45caac3cb5550a8b16307c2ea9def4 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Fix pre-push hook to not set null remoteName as first argumentMatthias Sohn2015-11-181-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to [1] the pre-push hook expects two parameters which provide the name and location of the destination remote, if a named remote is not being used both values should be the same. We did set the first parameter to null in that case which caused ProcessBuilder to throw a NullPointerException since its start() method doesn't accept null arguments. [1] https://git-scm.com/docs/githooks#_pre_push Bug: 482393 Change-Id: Idb9b0a48cefac01abfcfdf00f6d173f8fa1d9a7b Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Introduce FS.execute() to execute a command defined by a ProcessBuilderChristian Halstrick2015-11-182-3/+115
| | | | | | | | | | Change-Id: I2ad2c71ad30b969455bdea89637b8e996b1dad8c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Add an attribute accessor to CanonicalTreeParser and use it in TreewalkChristian Halstrick2015-11-186-74/+124
| | | | | | | | | | | | | | | | | | When checking out a branch we need to access the attributes stored in the tree to be checked out. E.g. directly after a clone we checkout the remote HEAD. In this case index and workingtree are still empty. So we have to search the tree to be checked out for attributes. Change-Id: I6d96f5d095ed2e3c259d4b12124e404f5215bd9f
| * Adds the git attributes computation on the treewalkArthur Daussy2015-11-1819-116/+1609
| | | | | | | | | | | | | | | | | | | | | | | | Adds the getAttributes feature to the tree walk. The computation of attributes needs to be done by the TreeWalk since it needs both a WorkingTreeIterator and a DirCacheIterator. Bug: 342372 CQ: 9120 Change-Id: I5e33257fd8c9895869a128bad3fd1e720409d361 Signed-off-by: Arthur Daussy <arthur.daussy@obeo.fr> Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
| * Make jgit annotations accessible to other pluginsAndrey Loskutov2015-11-173-37/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Other plugins which want to use JGit nullness annotations in their code cannot do this if the annotations aren't part of the published API. Unfortunately it looks like although Eclipse JDT allows to use custom nullness annotation types per project, it does not understand if those annotations are used mixed with other nullness annotations in other projects. E.g. EGit can either configure JGit annotations for NPE analysis and so "understand" nullness from JGit API but so it loses the ability to use any other nullness annotations to annotate its own code. Change-Id: Ieeeb578c2fe35223a7561d668dce8e767dc89ef0 Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
| * Fixed typo in preferences: NonByDefault -> NonNullByDefaultAndrey Loskutov2015-11-171-1/+1
| | | | | | | | | | Change-Id: I6ef5fbdb57e7cba010ad23cb3f6af02891e7fe78 Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
| * Added jgit own NonNull annotation typeAndrey Loskutov2015-11-171-0/+67
| | | | | | | | | | | | | | | | | | | | | | The annotation is required for example in Repository case (patch follows), where almost all non-void return methods return Nullable except few returning NonNull. I definitely do not favor this style, but it is a nightmare to clients to guess if the null check is needed or not. Change-Id: Ib2a778a246c6d84b7c32565f54df2385b59f6498 Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
| * Merge "Fix MissingObjectException in RenameDetector"Christian Halstrick2015-11-172-1/+36
| |\