summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add an implementation for HttpConnection using Apache HttpClientChristian Halstrick2014-02-1818-1/+677
| | | | | | | | | | | | | This change implements the http connection abstraction with the help of org.apache.http.client.HttpClient. The default implementation used by JGit is still the JDK HttpURLConnection. But now JGit users have the possibility to switch completely to org.apache.httpclient. The reason for this is that in certain (e.g. cloud) environments you are forced to use the org.apache classes. Change-Id: I0b357f23243ed13a014c79ba179fa327dfe318b2 Signed-off-by: Christian Halstrick <christian.halstrick@sap.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Introduce an abstraction for HTTP connectionsChristian Halstrick2014-02-1812-55/+741
| | | | | | | | | | | | | | | | | | | | | | Previously all HTTP communication was done with the help of java.net.HttpUrlConnection. In order to make JGit usable in environments where the direct usage of such connections is not allowed but where the environment provides other means to get network connections an abstraction for connections is introduced. The idea is that new implementations of this interface will be introduced which will not use java.net.HttpUrlConnection but use e.g. org.apache.client.http.HttpClient to provide network connections. One example: certain cloud infrastructures don't allow that components in the cloud communicate directly with HttpUrlConnection. Instead they provide services where a component can ask for a connection (given a symbolic name for the destination) and where the infrastructure returns a preconfigured org.apache.http.client.HttpClient. In order to allow JGit to be running in such environments we need the abstraction introduced in this commit. Change-Id: I3b06629f90a118bd284e55bb3f6465fe7d10463d Signed-off-by: Christian Halstrick <christian.halstrick@sap.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Remove dead isBinary method from DiffFormatterShawn Pearce2014-02-171-7/+0
| | | | | | | | This method always returns false and is private so it cannot be overridden at runtime by a subclass. Drop the method and the branch that can never be taken. Change-Id: I4d3edbf469c6739dca191e62ea580bdb534b67a4
* Add missing static qualifier in DiffFormatterShawn Pearce2014-02-171-2/+2
| | | | | | | These methods do not touch instance members and can avoid the implicit "this" argument. Change-Id: I01c30bb22266eed1c9db18bdf9f90c1c1590e3ec Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Allow programmatic remote configuration for PullCommandMatthias Sohn2014-02-142-16/+133
| | | | | | | | Also imply remoteBranchName to match current branch name if it wasn't configured in branch configuration. Bug: 424812 Change-Id: Id852cedaefb2a537b6aa3c330b9861efad052f11 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Fix a NullPointerException if properties file doesn't existJames Yonan2014-02-131-2/+8
| | | | | | | | | | | | | | | For example with following URL, amazon-s3://.jgit@mybucket/foo.git if ~/.jgit is missing, jgit command will throw a NullPointerException. With this patch, a reasonable error message will be emitted: fatal: Cannot read file /Users/jamesyonan/.jgit Change-Id: I1d366f2d55e170d2972715c657c8e2d10c8d87d2 Signed-off-by: James Yonan <james@openvpn.net>
* Use branch.<x>.mergeoptions and merge.ff as defaults for mergingKonrad Kügler2014-02-143-6/+259
| | | | | | | | | Read options that control squashing, whether or not to commit the merge and regarding fast forwarding from the configuration and use them if no explicit values for these options have been provided to MergeCommand. Change-Id: Ifdaed4b5e4adc142657c03c8e78b709a99eeddbd Signed-off-by: Konrad Kügler <swamblumat-eclipsebugs@yahoo.de> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Non-Fast-Forward Ref-Updates: Omit isMergedInto() callsRoberto Tyley2014-02-133-3/+24
| | | | | | | | | | | | When the caller specifies to JGit in advance that a ref-update is a non-fast-forward update, and that those are permitted, we should never need to call the potentially expensive isMergedInto() check. Re-checking that the older commit is /not/ reachable from the newer is superfluous. http://dev.eclipse.org/mhonarc/lists/jgit-dev/msg02258.html Change-Id: I4bbf593de4dcea6b6f082881c1a33cb3a6a7fb89 Signed-off-by: Roberto Tyley <roberto.tyley@gmail.com>
* Initialise ReceiveCommand status to NOT_ATTEMPTED for all constructorsRoberto Tyley2014-02-132-5/+2
| | | | | | | | | | | | | Formerly the 4-arg constructor did not do this, which was unfortunate as that constructor's the only way for an external user of JGit to set the /type/ of the ref-update - which you might want to do to indicate that the update is expected to be a UPDATE_NONFASTFORWARD, and thus does not require expensive isMergedInto() calculations: http://dev.eclipse.org/mhonarc/lists/jgit-dev/msg02258.html Change-Id: I84c5e4927131e105bed93e31a62da6367c78de32 Signed-off-by: Roberto Tyley <roberto.tyley@gmail.com>
* Use fetch.prune and remote.<name>.prune to set prune mode when fetchingKonrad Kügler2014-02-132-4/+30
| | | | | | | | | | | When no explicit value is set via FetchCommand.setRemoveDeletedRefs() checks if pruning is enabled in the configuration. The following commit introduced the prune config to C Git: https://github.com/git/git/commit/737c5a9cde708d6995c765b7c2e95033edd0a896 Change-Id: Ida79d335218e1c9f5c6e2ce03386ac8a1c0b212e Signed-off-by: Konrad Kügler <swamblumat-eclipsebugs@yahoo.de> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add some tests cases on files modes for symbolic linksAxel Richard2014-02-122-0/+264
| | | | | | | | | Test that the file mode of a file is the one expected before and after a checkout. Tests between symlink and file, symlink and folder, symlink and missing. Change-Id: If65a85a5667e25103eb9fd328a8723e29de04a1f Signed-off-by: Axel Richard <axel.richard@obeo.fr> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add some test cases for symbolic links with Java7Robin Rosenberg2014-02-123-0/+273
| | | | Change-Id: Ia4c9c7902316bc0a90fb89d8dea9902835c06dfa
* Normalize paths on OS XRobin Rosenberg2014-02-125-7/+66
| | | | | | | Java normalizes paths to NFC, but other source may not, e.g Eclipse. Bug: 413390 Change-Id: I08649ac58c9b3cb8bf12794703e4137b1b4e94d5 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Recognize symlinks in the FileTreeIteratorRobin Rosenberg2014-02-121-1/+3
| | | | | | We did this for the Eclipse Platform in the ContainerTreeIterator. Change-Id: I80d8157cc0dd99d57e2ed5d7cd8b13525a0c62b1
* Add special case to WorkingTreeIterator for matching unnormalized symlinksRobin Rosenberg2014-02-121-3/+33
| | | | | | | | | If there is an unnormalized symbolic link in the index, lie that it matches a normalized link in the working tree. This does not make the case completely invisible everywhere though, but it helps to some degree. Change-Id: I599fb71648c41fa2310049d0e0040b3c9f09386b Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* FileUtils.delete does not recurse via symlinksRobin Rosenberg2014-02-121-0/+86
| | | | Change-Id: I134cfbda47f4d252fec1a16034e2e78b73cd5081
* Use fileAttributes to get more attributes in one goRobin Rosenberg2014-02-127-49/+267
| | | | | | | | | On Windows the length reported by FileAttributes is the size of the target file (a bug, I guess) rather than the link, so we read the linke and look at the length of the link instead. Bug: 353771 Change-Id: I834b06d0447f84379612b8c9190fa77093617595 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Fix RevWalkUtils.findBranchesReachableFrom not finding some branchesRobin Stocker2014-02-112-27/+132
| | | | | | | | | | | | | | | | | | | | | | | The "cut off" optimization causes it to not include branches that contain the specified commit but happen to share commits with a branch that does not contain the commit. An example: -B foo \ -A---C master findBranchesReachableFrom for commit A with both branches as input may not return master (depending on the order of the input). The reason is that A is not contained in foo, and therefore the old code would put B in the cutOff set. When then walking the master commits and B is checked, it is found in the cutOff set and the walk is aborted, causing master not to be returned even though it should. Bug: 425674 Change-Id: I2c0c406ce5fcc9a03538b483473af930d4895d30 Signed-off-by: Robin Stocker <robin@nibor.org> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Length of symbolic link is the number of bytes, not charactersRobin Rosenberg2014-02-102-7/+8
| | | | Change-Id: I6b615f0d5da4339f1f23a29bcaeb80f0346f5764
* Add delete support to FSRobin Rosenberg2014-02-105-0/+35
| | | | Change-Id: Ib6f6fd5ef4a0c9b2062445ac4a0c9d1131e401bf
* Dynamically detect if Windows supports symbolic linksRobin Rosenberg2014-02-101-1/+25
| | | | | | To get symlink support you typically need to run as administrator. Change-Id: I394ea75bc2f250c62f860e537a0af9e6380b3b38 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add symlink support to JGitRobin Rosenberg2014-02-1014-64/+183
| | | | | | | | | | | | | | | | | | | | The change includes comparing symbolic links between disk and index, adding symbolic links to the index, creating/modifying links on checkout. The behavior is controlled by the core.symlinks setting, just as C Git does. When a new repository is created core.symlinks will be set depending on the capabilities of the operating system and Java runtime. If core.symlinks is set to true, the assumption is that symlinks are supported, which may result in runtime errors if this turns out not to be the case. Measuring the cost of jgit status on a repository with ~70000 files, of which ~30000 are tracked reveals a penalty of about 10% for using the Java7 (really NIO2) support module. Bug: 354367 Change-Id: I12f0fdd9d26212324a586896ef7eb1f6ff89c39c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Use the new FS.exists method in commonly occuring placesRobin Rosenberg2014-02-105-6/+8
| | | | | | Allegedly this should improve performance, but I could not see it. Change-Id: Id2057cb2cfcb46e94ff954483ce23f9c4a7edc5e
* Fix deprecated WTI#isModifiedRobin Rosenberg2014-02-101-1/+1
| | | | | | | We should really pass the forceContentCheck parameter to the real method. Change-Id: I9ea439cf6340a18d0e931edde3b9e3486cafde93 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Failing to delete a directory with untracked content is actually okRobin Rosenberg2014-02-102-7/+7
| | | | | | | We had a test, but it was wrong. Bug: 424630 Change-Id: I926e0954c8623a323a50fe8be3ebe5e0ac6944c8 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Ban dangerous ref names in WindowsRobin Rosenberg2014-02-053-17/+83
| | | | | | | Bug: 423551 Change-Id: I3e71ef1b4a8181f46d2902c9169859f150cd6ad0 Also-By: Robin Stocker <robin@nibor.org> Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Merge "Reset internal state canonical length in WorkingTreeIterator when moving"Matthias Sohn2014-02-042-2/+15
|\
| * Reset internal state canonical length in WorkingTreeIterator when movingRobin Rosenberg2014-02-032-2/+15
| | | | | | | | | | Bug: 426514 Change-Id: Ifb75a4fa12291aeeece3dda129a65f0c1fd5e0eb Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Merge "Fix MissingObjectException race in ObjectDirectory"Shawn Pearce2014-02-035-394/+290
|\ \ | |/ |/|
| * Fix MissingObjectException race in ObjectDirectoryShawn Pearce2014-02-035-394/+290
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Johannes Carlsson identified a race condition[1] that can lead to spurious MissingObjectExceptions at read time. If two threads are active inside of ObjectDirectory looking for a packed object and the packList is currently the empty NO_PACKS list, thread A will find no object and eventually consider tryAgain1(). If thread A is put to sleep and this point and thread B also does not find the object, loads the packs, when thread A wakes up its tryAgain1 would return false and the thread never considers the packs. Rework the internal API of ObjectDirectory to keep a handle on the exact PackList that was iterated by thread A, allowing it to always retry walking through the packs if the new PackList is different. This had some ripple effect into the CachedObjectDirectory and the shared FileObjectDatabase interface. The new code should be slightly easier to follow, especially from the perspective of the CachedObjectDirectory trying to minimize the number of open system calls it makes to files matching "$GIT_DIR/objects/??/?x{38}". [1] http://dev.eclipse.org/mhonarc/lists/jgit-dev/msg02401.html Change-Id: I9a1c9d6ad6cb38404b7b9178167b714077561353
* | Fix for core.autocrlf=input resulting in modified fileRobin Rosenberg2014-02-027-19/+181
|/ | | | | | | | | | | This version does not attempt to unsmudge, unlike the first attempt in Idafad150553df14827eccfde2e3b95760e16a8b6. Bug: 372834 Change-Id: I9300e735cb16d6208e1df963abb1ff69f688155d Also-by: Robin Stocker <robin@nibor.org> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> Signed-off-by: Robin Stocker <robin@nibor.org>
* Add a missing since tagChristian Halstrick2014-01-301-0/+1
| | | | | | Otherwise you get errors if you want to edit JGit in Eclipse Change-Id: I840d4388f159e2db27845a17030b511fc5708f43
* Merge "Fix serving fetch of existing shallow client"Shawn Pearce2014-01-292-2/+16
|\
| * Fix serving fetch of existing shallow clientShawn Pearce2014-01-282-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In certain cases a JGit server updating an existing shallow client selected a common ancestor that was behind the shallow edge of the client. This allowed the server to assume the client had some objects it did not have and allowed creation of pack deltas the client could never inflate. Any commit the client has advertised as shallow must be treated by UploadPack server as though it has no parents. With no parents the walker cannot visit graph history the client does not have, and PackWriter cannot consider delta base candidates the client is lacking. Change-Id: I4922b9354df9f490966a586fb693762e897345a2
* | Update Kepler target platform to use Kepler SR2 orbit R-buildMatthias Sohn2014-01-241-1/+1
| | | | | | | | Change-Id: I3c215b8bbb6497b59d20c9fe7684a0c3522636e8 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Add missing @since tagsMatthias Sohn2014-01-202-1/+6
| | | | | | | | Change-Id: I16d82499d7d000096de6bd4bd08e406073557162 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Update API version to check changes against to 3.2.0.201312181205-rMatthias Sohn2014-01-201-1/+1
| | | | | | | | Change-Id: Ifb0a87a2b268a8bf3dc11310bfd6af18e242693c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Update Luna target platform to use Luna M5 orbit repositoryMatthias Sohn2014-01-201-1/+1
| | | | | | | | | | | | See http://dev.eclipse.org/mhonarc/lists/orbit-dev/msg03647.html Change-Id: Id10cd2e0b1aaba181b68f6ac30e0fc64fb714481 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Do not report ignored directories as untrackedMatthias Sohn2014-01-192-2/+50
| | | | | | | | | | Change-Id: I7e3f6b9fb1ac4b99d2cc9a78c63aad86f4fa5744 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Add git checkout --orphan implementationSATO taichi2014-01-172-8/+159
| | | | | | | | Change-Id: I7bb583674641efed210d3cd5b86af27d7bb48e97 Signed-off-by: SATO taichi <ryushi@gmail.com>
* | Fix fast forward rebase with rebase.autostash=trueStefan Lay2014-01-152-0/+42
| | | | | | | | | | | | | | | | | | The folder .git/rebase-merge was not removed in this case. The repository was then still in rebase state, but neither abort nor continue worked. Bug: 425742 Change-Id: I43cea6c9e5f3cef9d6b15643722fddecb40632d9
* | Update target platforms to use latest orbit buildMatthias Sohn2014-01-152-2/+2
| | | | | | | | | | | | | | - use latest I-build for Luna - use latest M-build for Kepler Change-Id: I5b85306058877b19eae4cf5a820fe50cdd200c1c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Update com.jcraft.jsch to 0.1.50 in Kepler target platformMatthias Sohn2014-01-141-2/+2
| | | | | | | | | | Bug: 425660 Change-Id: I758b34d0486a88036da8327da6ef43385c62fd46 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Update commons-compress to 1.6Jonathan Nieder2014-01-143-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Includes various fixes, including o Writing TAR PAX headers failed if the generated entry name ended with a "/". Issue: COMPRESS-203. which has been happening in the wild (java.io.IOException: request to write '120' bytes exceeds size in header of '0' bytes for entry './PaxHeaders.X/hostsidetests/appsecurity/test-apps/AppAccessData/[...]/'). TODO: update orbit repository URL when new Orbit R-build is available, see bug 425660 Change-Id: I92a87543a6ace9a06a70a29534399608cee6adb1 Signed-off-by: Jonathan Nieder <jrn@google.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | fix link to EWAHCompressedBitmap in javadoc of SimpleDataInput/OutputTomasz Zarna2014-01-142-2/+2
|/ | | | | Change-Id: Iaa07bb23f163b75e222bc6a5ce3acc91ffef435e Signed-off-by: Tomasz Zarna <tomasz.zarna@tasktop.com>
* Upgrade javaewah to version 0.7.9Colby Ranger2014-01-1317-26/+26
| | | | | | | Package was renamed, so I had to update the imports. Also, I verified bitmap serialization was still compatible. Change-Id: I161ad3875b963b56001beab477ef8d072accee4f
* Tag som non-localizable strings with NON-NLSRobin Rosenberg2014-01-1010-22/+19
| | | | Change-Id: I6882c98c2785f38241a81ba5b93892aab79690a5
* Add missing package import for org.eclipse.jgit.archiveMatthias Sohn2014-01-071-0/+1
| | | | | | The archive bundle needs access to the nls package since 2ecc27db. Change-Id: I76882e1f270296c5ce8e220e1946c4a8ddb6fdf5 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Remove unused import from ArchiveTestMatthias Sohn2014-01-071-1/+0
| | | | | | This unnecessary import was introduced by 2ecc27d. Change-Id: I5cb415de7e33428d9f95dfbe1e214ef24be9dad9 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Suppport the GIT_CONFIG_NOSYSTEM environment variableRobin Rosenberg2014-01-063-2/+25
| | | | Change-Id: If3cc05931683d396b5ae2ea8952adceeb9a82ab9