aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit/src
Commit message (Collapse)AuthorAgeFilesLines
* Update reflog like C Git during rebase (non-interactive)Robin Rosenberg2013-08-212-13/+40
| | | | | | Bug: 346350 Change-Id: I119766a00bc52a810c51cffaa19207cb8555ca22 Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* Make sure checkout is not deleting folders outside the workingtreeChristian Halstrick2013-08-211-2/+2
| | | | | | | | | | | | | | | There was a chance that jgit deletes symbolic links which point to the folder on top of the working tree. Make sure not to touch these resources. Thanks to Cedric Darloy who reported this bug on http://www.eclipse.org/forums/index.php/m/776910/#msg_776910 and to Ondrej Vrabec who reported bug 412489. Bug: 412489 Change-Id: I81735ba0394ef6794e9b2b8bdd8bd7e8b9c6460f Signed-off-by: Christian Halstrick <christian.halstrick@sap.com> Signed-off-by: Robin Stocker <robin@nibor.org>
* Fix bugs in TreeWalk#isPathSuffix used by PathSuffixFilterRobin Stocker2013-08-211-3/+7
| | | | | | | | | | | * It didn't check the first character in the pattern due to a off-by-one error. Spotted by James Roper. * It returned true even when pattern was longer than current path, e.g. it returned that ".txt" is suffix of "txt". Bug: 411999 Change-Id: I9fbcd68a11fb57cc49956b70c387a47271a0424f Signed-off-by: Robin Stocker <robin@nibor.org>
* Check parentFile is not nullHiroshi Tomita2013-08-211-1/+1
| | | | | | | | | parentFile becomes null when f is relative path, such as ".". This patch avoids NullPointerException in such case. Change-Id: I4752674b1daab6eedd7c3650c7749462810eaffd Signed-off-by: Hiroshi Tomita <tomykaira@gmail.com>
* Update HEAD in cherry-picking several commitsHiroshi Tomita2013-08-211-5/+4
| | | | | | | | | Without update, index is wrongly detected to be dirty when picking the second commit. Change-Id: Idf47ecb33e8bd38340d760806d629f67be92d2d5 Signed-off-by: Hiroshi Tomita <tomykaira@gmail.com> Bug: 411963
* Fix HTTP response processing for WWW-Authenticate headersAlex Rukhlin2013-08-211-17/+38
| | | | | | | | | | | | | | | | | The original code was able to process only one WWW-Authenticate header in an HTTP response, and if this header was not one of two expected, authentication failed regardless of that there could be other headers in the response. All WWW-Authenticate headers in an HTTP response have to be browsed to find one of supported, i.e. Basic or Digest. By that if both are present, the Digest one should be used as more preferable. Bug: 357719 Change-Id: Icf601a41fec63f7d40308f3c85aaa4f71a7c095b Signed-off-by: Alex Rukhlin <arukhlin@microsoft.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Don't skip want validation when the client sends no havesDave Borowitz2013-08-211-2/+2
| | | | Change-Id: I5e80b3befca5cf1dcb06075862d6d48e6491cc0f
* Recognize CRLF when parsing the short message of a commit or tagRobin Rosenberg2013-08-214-5/+35
| | | | | Bug: 400707 Change-Id: I9b09bb88528af465018fc0278f5441f7e6b75986
* Support refspecs with wildcard in middle (not only at end)Robin Stocker2013-05-282-19/+63
| | | | | | | | | | | | | | | The following refspec, which can be used to fetch GitHub pull requests, is supported by C Git but was not yet by JGit: +refs/pull/*/head:refs/remotes/origin/pr/* The reason is that the wildcard in the source is in the middle. This change also includes more validation (e.g. "refs//heads" is not valid) and test cases. Bug: 405099 Change-Id: I9bcef7785a0762ed0a98ca95a0bdf8879d5702aa
* Fix multiple bugs in RawSubStringPattern used by MessageRevFilterRobin Stocker2013-05-281-5/+5
| | | | | | | | | | * Match at end of input was not handled correctly. * When more than one character matched but not all, the next character was not considered as a match start (e.g. pattern "abab" didn't match input "abaabab"). Bug: 409144 Change-Id: Ia44682c618bfbb927f5567c194227421d222a160 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Handle short branch/tag name for setBranch in CloneCommandRobin Stocker2013-05-261-4/+14
| | | | | | | | | | | | | | Before, it was not clear from the documentation what kind of branch name was accepted. Users specifying "branch" (instead of "refs/heads/branch") got no error message and ended up with a repository without HEAD and no checkout. With this, CloneCommand now tries "$branch", then "refs/heads/$branch" and then "refs/tags/$branch". C Git only does the last two, but for compatibility we should still allow "refs/heads/branch". Bug: 390994 Change-Id: I4be13144f2a21a6583e0942f0c7c40da32f2247a Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Apply tree filter marks when pairing DiffEntry for renamesRobin Stocker2013-05-241-0/+2
| | | | | | | | | | When using a RenameDetector to generate new DiffEntries after using DiffEntry.scan, the treeFilterMarks of the original entries were lost. Now it combines the marks from src and dst. See EGit bug 335082 where this is used. Change-Id: I72b34b10ca12e3a6bd10ce44f4fa05b193fc52cc
* Fix BatchRefUpdate progress-monitoring so it doesn't count twiceRoberto Tyley2013-05-191-3/+2
| | | | | | | | | | | | | | | I was seeing output like this while running The BFG: Updating references: 200% (374/187) ...issue sneaked in with 5cf53fda I think. The update call is also moved to the end of the loop, as update() is only supposed to be called after work has been done ("Denote that some work units have been completed"). Change-Id: I1620fa75be16dc80df44745d0e123ea512762e31 Signed-off-by: Robin Stocker <robin@nibor.org>
* Merge "Fix DiffFormatter NPEs for DiffEntry without content change" into ↵Matthias Sohn2013-05-161-1/+6
|\ | | | | | | stable-3.0
| * Fix DiffFormatter NPEs for DiffEntry without content changeRobin Stocker2013-05-151-1/+6
| | | | | | | | | | | | | | | | DiffEntry.getOldId() returns null for a diff without an index line (e.g. only mode changed, rename without content change). Bug: 407743 Change-Id: I42eac87421f2a53c985af260a253338f578492bc
* | Fix AnyObjectId's generic type declaration of ComparableRoberto Tyley2013-05-161-5/+1
|/ | | | | | | | | | | | | | | | | | | | | If you look at any implementation of Comparable in the JDK, you'll see that the type parameter for Comparable is supposed to be the type of the implementing class: http://docs.oracle.com/javase/6/docs/api/java/lang/Comparable.html The current type signature of Comparable<Object> is pretty awful, at the very least because you can not, in fact, successfully compare AnyObjectId with any random subclass of Object. It also causes problems with type-inference and the scala.math.Ordering trait in Scala. In order to compile, this change *does* require removing the AnyObjectId.ompareTo(Object) method - which actually only ever cast to AnyObjectId in any case. Nothing in the JGit test suite requires this method, but it might constitute a breaking API change, so it would be best if it can be added in time for JGit 3.0. Change-Id: I3b549a5519ccd6785f98e444da76d2363bcbe41a
* Fix CommitCommand not to destroy repoChristian Halstrick2013-05-111-60/+71
| | | | | | | | | | | | | | | | | | There was a severe bug in CommitCommand which could corrupt repos. When merging an annotated tag the JGit MergeCommand writes correctly the ID of the tag (and not the id of the commit the tag was pointing to) into MERGE_HEAD. Native git does the same. But CommitCommand was reading this file and trusting blindly that it will contain only IDs of commits. Then the CommitCommand created a commit which has as parent a non-commit object (the tag object). That's so corrupt that even native git gives up when you call "git log" in such a repo. To reproduce that with EGit simply right-click on a tag in the Repository View and select Merge. The result was a corrupt repo! Bug: 336291 Change-Id: I24cd5de19ce6ca7b68b4052c9e73dcc6d207b57c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Fix the parameters to an exceptionRobin Rosenberg2013-05-101-20/+18
| | | | | | | A parenthesis was in the wrong place passing arguments to the wrong format call. Also fix formatting of enclosing switch statement. Change-Id: I4cb9642f08b58c39033c3a81dab4bd56bebf4fd2 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add missing @since tagsMatthias Sohn2013-05-065-1/+12
| | | | | Change-Id: I9657125765716c874bb6ecf8844c34749cb3b069 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Merge "URIish: Allow multiple slashes in paths"Shawn Pearce2013-05-051-2/+3
|\
| * URIish: Allow multiple slashes in pathsRobin Stocker2013-04-271-2/+3
| | | | | | | | | | | | It's also allowed by C Git. Change-Id: Ie0a0d1f57d84e70fd5ef50b7844d22fea43d0e08
* | Remove unused repository field from RevWalkDave Borowitz2013-05-051-9/+1
| | | | | | | | | | | | | | | | The comment about legacy Tag and Object types no longer applies, though prior to Idb273d5a92849b42935ac14eed73b796b80aad50 the field was still being used by RewriteTreeFilter. Change-Id: I9ee5da8f8a3b61c9cf543817c03117ee0609dd8f
* | Merge "Require a DiffConfig when creating a FollowFilter"Shawn Pearce2013-05-054-21/+35
|\ \
| * | Require a DiffConfig when creating a FollowFilterDave Borowitz2013-05-054-21/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The various rename detection options are an inherent part of the filter, similar to the path being followed. This fixes a potential NPE when a RevWalk with a FollowFilter is created without a Repository, since the old code path tried to get the DiffConfig from the RevWalk's possibly-missing repository. Change-Id: Idb273d5a92849b42935ac14eed73b796b80aad50
* | | Extend the FS class for Java7Robin Rosenberg2013-05-048-32/+347
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The most important difference is that in Java7 we have symbolic links and for most operations in the work tree we want to operate on the link itself rather than the link target, which the old File methods generally do. We also add support for the hidden attribute, which only makes sense on Windows and exists, just since there are claims that Files.exists is faster the File.exists. A new bundle is only activated when run with a Java7 execution environment. It is implemented as a fragment. Tycho currently has no way to conditionally include optional features based on the java version used to run the build, this means with this change the jgit packaging build always needs to be run using java 7. Change-Id: I3d6580d6fa7b22f60d7e54ab236898ed44954ffd Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | TagCommand should be able to create unannotated tags tooRobin Rosenberg2013-05-032-44/+81
| | | | | | | | | | | | | | Using the low level API's is just too cumbersome. Change-Id: Id5b9f560ee095d6db0b2ea5b26aef3e53021626e Signed-off-by: Robin Stocker <robin@nibor.org>
* | Merge "Fix warnings about assigning paramter in util.io"Robin Rosenberg2013-05-025-40/+43
|\ \
| * | Fix warnings about assigning paramter in util.ioRobin Stocker2013-05-015-40/+43
| | | | | | | | | | | | Change-Id: I08bed4275af9ec52aa4d7054067ac82f6a3c9781
* | | Update tags on fetch if --tags or tag refspec specifiedRobin Stocker2013-05-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When either --tags or a tag ref is explicitly specified on fetch, C Git updates existing local tags if they are different. Before this change, JGit returned REJECTED in such a case. Now it updates it and returns FORCED. Example: % mkdir a % cd a % git init -q % touch test.txt % git add test.txt % git commit -q -m 'Initial' % git tag v1 % cd .. % git clone -q a b % cd a % echo Test > test.txt % git commit -q -a -m 'Second' % git tag -f v1 Updated tag 'v1' (was bc85c08) % cd ../b % git fetch --tags - [tag update] v1 -> v1 Bug: 388095 Change-Id: I5d5494c2ad1a2cdb8e9e614d3de445289734edfe
* | | Only fetch tags that do not exist locally with auto-followRobin Stocker2013-05-011-15/+8
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This corresponds to what C Git does, quoting from the fetch man page: This is done by first fetching from the remote using the given <refspec>s, and if the repository has objects that are pointed by remote tags that it does not yet have, then fetch those missing tags. Before, JGit would also fetch tags that exist locally but point to a different object, resulting in REJECTED results for these. Also add some test cases to cover more cases. Bug: 388095 Change-Id: Ib03d2d82e9c4b60179d626cfd5174be1da6388b2 Also-by: Stefan Lay <stefan.lay@sap.com>
* | Abort before delete in FileUtils.delete EMPTY_DIRECTORIES_ONLY|RECURSIVERobin Stocker2013-04-291-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | Depending on the order in which items are traversed for RECURSIVE, an empty directory may come first before detecting that there is a file and aborting. This fixes it by traversing files first. Bug: 405558 Change-Id: I638b7da58e33ffeb0fee172b96f4c823943d29e9 Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Merge "Make the Reflog a public API again"Robin Rosenberg2013-04-2714-63/+234
|\ \
| * | Make the Reflog a public API againRobin Rosenberg2013-04-2614-63/+234
| | | | | | | | | | | | Change-Id: I8ced7098da5b345fd9af2fdfafd1ef6a44ccee0d
* | | Merge "Remove unused logger from RecursiveMerger"Robin Rosenberg2013-04-271-3/+0
|\ \ \
| * | | Remove unused logger from RecursiveMergerJonathan Nieder2013-04-261-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JGit doesn't currently use java.util.logging.Logger. Remove this never-used Logger introduced in ab99b78ca08a (Implement recursive merge strategy, 2013-02-21) to make that easier to see. Change-Id: I92c578e7f3617085a667de7c992174057be3eb71
* | | | Refer to getEntryPathLength in docs of getEntryPathBufferRobin Stocker2013-04-271-1/+8
| |_|/ |/| | | | | | | | Change-Id: Icca41d80bd0791cd2d4bf03297795d161afbee70
* | | Allow deletions to occur when there is no HEADAlex Blewitt2013-04-271-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | If the HEAD is not present in a repository, then there is a NullPointerException thrown in the delete code. Since this only exists to verify if the deletion is not the HEAD reference, then skip this check if the HEAD cannot be found. Bug: 406722 Change-Id: I882497202d986096513a4d791cd07fa935a3f9e4 Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
* | Merge "status: Print conflict description for unmerged paths"Robin Rosenberg2013-04-251-1/+11
|\ \
| * | status: Print conflict description for unmerged pathsRobin Stocker2013-04-191-1/+11
| | | | | | | | | | | | | | | | | | | | | Prefix unmerged paths with conflict description (e.g. "both modified:"), the same way C Git does. Change-Id: I083cd191ae2ad3e2460aa4052774aed6e36c2699
* | | Document RevTag#getObject() that returned object is unparsedRobin Stocker2013-04-221-1/+9
| | | | | | | | | | | | Change-Id: I238d388e40362721eecf37f64ad7d48a399ff129
* | | Improve class documentation of TagCommandRobin Stocker2013-04-221-4/+13
|/ / | | | | | | Change-Id: I9c636b927fa2d7cfbe1eb5535a9e702b2209f51d
* | Create constants in ConfigConstants for the "diff" sectionRobin Rosenberg2013-04-192-8/+46
| | | | | | | | | | Change-Id: I5cf5fe60374d1e94eb031488e4f92c8e521f41a6 Signed-off-by: Chris Aniszczyk <zx@twitter.com>
* | Fix examples with refs/heads/ in RefSpec JavadocRobin Stocker2013-04-191-8/+8
| | | | | | | | | | Change-Id: I06c1c7242a1b4c8f499c27a598cca714803799b7 Signed-off-by: Chris Aniszczyk <zx@twitter.com>
* | IndexDiff: Provide stage state for conflicting entriesRobin Stocker2013-04-191-5/+133
|/ | | | | | | | | | | | | Adds a new method getConflictingStageStates() which returns a Map<String, StageState> (path to stage state). StageState is an enum for all possible stage combinations (BOTH_DELETED, ADDED_BY_US, ...). This can be used to implement the conflict text for unmerged paths in output of "git status" or in EGit for decorations/hints. Bug: 403697 Change-Id: Ib461640a43111b7df4a0debe92ff69b82171329c Signed-off-by: Chris Aniszczyk <zx@twitter.com>
* Merge "A deleted work tree file is not a conflict when merge wants to delete it"Robin Rosenberg2013-04-191-1/+5
|\
| * A deleted work tree file is not a conflict when merge wants to delete itRobin Rosenberg2013-04-081-1/+5
| | | | | | | | | | Bug: 405199 Change-Id: I4b2ef3dc432d2fad8a6fabd1c8aec407b5c8c5ac Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
* | Merge "Untracked files should not be included in stash"Robin Rosenberg2013-04-191-3/+11
|\ \
| * | Untracked files should not be included in stashRobin Rosenberg2013-04-181-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | The previous code stashed untracked files and left them in the work tree. Bug: 403282 Change-Id: I71727addb2b55fb8e409cae2b6af8138b1ff7ef1
* | | Remove some unnecessary dependencies on FileRepostoryRobin Rosenberg2013-04-181-3/+3
| | | | | | | | | | | | | | | Change-Id: Ib6ee3a2874a7e2240aa68f4ac32d00c4d1fab5ae Signed-off-by: Chris Aniszczyk <zx@twitter.com>
* | | Improve test coverage of AutoCRLF(In|Out)putStreamRobin Stocker2013-04-181-1/+4
| | | | | | | | | | | | | | | | | | Bug: 405672 Change-Id: I3894e98617fcee16dc2ac9853c203c62eb30c3ab Signed-off-by: Chris Aniszczyk <zx@twitter.com>