summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Prepare 3.1.0-SNAPSHOT buildsMatthias Sohn2013-06-1351-242/+242
| | | | | Change-Id: I7490a7c9558423c03e3c167ad55b9a98be9d99d9 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Merge branch 'stable-3.0'Matthias Sohn2013-06-139-23/+27
|\ | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.0: Prepare post 3.0.0.201306101825-r builds JGit v3.0.0.201306101825-r Make JGit test work with both hamcrest 1.1 (juno) and 1.3 (kepler) Fix version.sh to not overwrite ${project.version} Prepare post 3.0.0 RC3 builds JGit v3.0.0.201306040240-rc3 Change-Id: I5b1db1f5b69bad1136dd21b956e798f63b1ba0ee Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Prepare post 3.0.0.201306101825-r buildsMatthias Sohn2013-06-1346-46/+46
| | | | | | | | | | Change-Id: I299cf1addc0987ffe39140d2216ab6a98e95ce52 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * JGit v3.0.0.201306101825-rv3.0.0.201306101825-rMatthias Sohn2013-06-1146-46/+46
| | | | | | | | | | Change-Id: Ie8deab94c6263b5198f0bcb4533b1cfb3f5724b1 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Make JGit test work with both hamcrest 1.1 (juno) and 1.3 (kepler)Robin Rosenberg2013-06-094-9/+6
| | | | | | | | | | | | | | The hamcrest library has moved things around. This problem applies only to the test, not plugin runtime. Change-Id: I5b97f356d8595dbdc9e91d157558e40561a6a30d Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Fix version.sh to not overwrite ${project.version}Matthias Sohn2013-06-041-3/+10
| | | | | | | | | | Change-Id: If5ae792581170bcba2dc1860012cbe389d8e9f24 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Prepare post 3.0.0 RC3 buildsMatthias Sohn2013-06-0446-46/+46
| | | | | | | | | | Change-Id: I008d55e2ef0aac9d1877b05ba73e3cf26335d430 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * JGit v3.0.0.201306040240-rc3v3.0.0.201306040240-rc3Matthias Sohn2013-06-0446-58/+58
| | | | | | | | | | Change-Id: I8b782e9ebe03e5f72611a21a76d80c6b20cb7845 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Fix warnings in ArchiveCommandMatthias Sohn2013-06-101-11/+7
| | | | | | | | | | | | | | | | | | - remove unnecessary imports - fix NLS warnings - add missing Javadoc tag Bug: 410354 Change-Id: I2b78a2c0e92c740bed80558b17a2100c1c884416 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Add support for "jgit archive --output=<filename>"Jonathan Nieder2013-06-062-12/+235
| | | | | | | | | | | | | | | | | | | | If the --format option is not given and the output filename is, then infer the format from that filename. Otherwise match "git archive" by defaulting to tar (this is a change from the existing "jgit archive" default behavior, which was to default to zip). Change-Id: I5806bc48a403d05e4cfc3c180b82b33ad7cfae7f
* | Pick default archive format based on filename suffixJonathan Nieder2013-06-066-3/+111
| | | | | | | | | | | | | | | | | | | | | | | | Introduce a setFilename() method for ArchiveCommand so callers can specify the intended filename of the produced archive. If the filename ends with .tar, the format will default to tar; if .zip, zip; if .tar.gz, gzip-compressed tar; and so on. This doesn't affect "jgit archive" because it doesn't support the --output=<file> option yet. A later patch might do that. Change-Id: Ic0236a70f7aa7f2271c3ef11083b21ee986b4df5
* | Add long filename, large file, and non-ASCII filename support to TarFormatJonathan Nieder2013-06-063-8/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Attempts to write entries with too-long filenames currently error out: $ jgit.pgm/target/jgit archive HEAD >test.tar java.lang.RuntimeException: file name 'org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/resolver/DefaultReceivePackFactory.java' is too long ( > 100 bytes) at org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.putArchiveEntry(TarArchiveOutputStream.java:288) at org.eclipse.jgit.archive.TarFormat.putEntry(TarFormat.java:92) at org.eclipse.jgit.archive.TarFormat.putEntry(TarFormat.java:62) at org.eclipse.jgit.api.ArchiveCommand.writeArchive(ArchiveCommand.java:293) at org.eclipse.jgit.api.ArchiveCommand.call(ArchiveCommand.java:322) at org.eclipse.jgit.pgm.Archive.run(Archive.java:97) at org.eclipse.jgit.pgm.TextBuiltin.execute(TextBuiltin.java:174) at org.eclipse.jgit.pgm.Main.execute(Main.java:213) at org.eclipse.jgit.pgm.Main.run(Main.java:121) at org.eclipse.jgit.pgm.Main.main(Main.java:95) That's because the default longFileMode is LONGFILE_ERROR, which throws an exception for filenames longer than 100 characters. Switch to LONGFILE_POSIX. While at it, handle large files and filenames with strange encodings, too. This requires commons compress 1.4, which introduced support for large files and POSIX long filenames. Change-Id: I04d5427eec0968b129f55d7a4c6021039a494828
* | Add tbz2 archive formatJonathan Nieder2013-06-053-0/+73
| | | | | | | | Change-Id: Idb7ff75877a0cfe23f47e10e3f6f93386f5bb145
* | Include o.e.j.archive into o.e.jgit featureMatthias Sohn2013-06-022-14/+18
| | | | | | | | | | | | | | Also the pgm feature should depend on the jgit feature to ensure that all needed bundles are available. Change-Id: I670e8262cdace4323d3883717efe4b5e5e06f4c7 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Update build to use Tycho 0.18Matthias Sohn2013-06-021-1/+1
| | | | | | | | | | Change-Id: I66ffb2b6416dbbd5da11ad789dd58060b7ab09f2 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Add jgit target platform to define dependencies more preciselyMatthias Sohn2013-06-027-24/+172
| | | | | | | | | | | | | | | | | | Avoid that the packaging build picks an older jgit version coming with eclipse platform by using a target platform which allows to define the dependencies more precisely. Change-Id: I39bba3baa4517e2b5e5fe0de096e756f2904e3e9 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Fix javadoc of FormatActivatorMatthias Sohn2013-06-021-5/+7
| | | | | | | | | | Change-Id: I64b32f71df2964da4cb2de73b34bf7e455ab5b93 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Fix version of dependency to package org.osgi.frameworkMatthias Sohn2013-06-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | OSGi 4.01 comes with package org.osgi.framework version 1.3 [1] which has the BundleActivator interface needed by org.eclipse.jgit.archive. OSGi 5.0 matches package org.osgi.framework version 1.7 [2]. [1] http://www.osgi.org/javadoc/r4v401/ [2] http://www.osgi.org/javadoc/r5/core/ Change-Id: I10f78e5eb02b5d03395f23d2f0ad039caf565269 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Add missing javadoc for archive codeJonathan Nieder2013-05-297-0/+63
| | | | | | | | | | | | | | | | Document archive formats, the archive format interface, and the parameters of the GitAPIException constructors. Noticed by eclipse. Reported-by: Dani Megert <Daniel_Megert@ch.ibm.com> Change-Id: I22b5f9d4c0358bbe867c1906feec7c279e214273
* | Remove unused import in ArchiveJonathan Nieder2013-05-291-1/+0
| | | | | | | | Change-Id: I0bc82e74f4acedb059322c29e13352151165ef7f
* | Drop unnecessary "throws" clauses in archive codeJonathan Nieder2013-05-292-4/+3
| | | | | | | | | | | | Noticed by eclipse. Change-Id: I730b290556066038efeaf2436de95415b175f351
* | Move FormatActivator.start()/stop() to a separate classJonathan Nieder2013-05-293-46/+95
| | | | | | | | | | | | | | | | | | This makes the functionality of registering all formats from the org.eclipse.jgit.archive package available in contexts where FormatActivator cannot be built because the OSGi core framework is not readily available to build against. Change-Id: If8e3487e933783a7e12f8e1838cbfe0b5862ce80
* | Merge branch 'stable-3.0'Matthias Sohn2013-05-2925-138/+566
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.0: Prepare post 3.0.0-rc2 builds JGit v3.0.0.201305281830-rc2 Support refspecs with wildcard in middle (not only at end) Fix multiple bugs in RawSubStringPattern used by MessageRevFilter Handle short branch/tag name for setBranch in CloneCommand Add missing Bundle-Localization header Apply tree filter marks when pairing DiffEntry for renames Improve feature names to become understandable by end users Update kepler orbit version to R20130517111416 Fix BatchRefUpdate progress-monitoring so it doesn't count twice Fix AnyObjectId's generic type declaration of Comparable Fix DiffFormatter NPEs for DiffEntry without content change Fix CommitCommand not to destroy repo Fix the parameters to an exception Prepare post 3.0.0 M7 builds JGit v3.0.0.201305080800-m7 Change-Id: Ia8441c9796f01497e0d90e672c0aaf60520a0098 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Prepare post 3.0.0-rc2 buildsMatthias Sohn2013-05-2946-58/+58
| | | | | | | | Change-Id: Ic46832bcde80d0bf74c16cb094abd76b00552d14 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * JGit v3.0.0.201305281830-rc2v3.0.0.201305281830-rc2Matthias Sohn2013-05-2946-58/+58
| | | | | | | | | | Change-Id: I490ad8cc7590f70783d3fbd6dd6f0e0446ae5afe Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Support refspecs with wildcard in middle (not only at end)Robin Stocker2013-05-284-19/+214
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-282-5/+109
| | | | | | | | | | | | | | | | | | | | * 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-262-10/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Add missing Bundle-Localization headerMatthias Sohn2013-05-261-0/+1
| | | | | | | | Change-Id: I6831ad417f069127b4705fdd909844ec72065527 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
| * Improve feature names to become understandable by end usersMatthias Sohn2013-05-216-6/+6
| | | | | | | | | | | | | | | | | | This was requested in [1]. [1] http://dev.eclipse.org/mhonarc/lists/cross-project-issues-dev/msg08981.html Change-Id: I9764961a651c1fa64042098d60da9b496453f703 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Update kepler orbit version to R20130517111416Matthias Sohn2013-05-201-1/+1
| | | | | | | | Change-Id: I635aaa28230d571f4b6bf65485edaba1b1561fc2 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Fix BatchRefUpdate progress-monitoring so it doesn't count twiceRoberto Tyley2013-05-192-10/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-162-2/+36
| |\ | | | | | | | | | stable-3.0
| | * Fix DiffFormatter NPEs for DiffEntry without content changeRobin Stocker2013-05-152-2/+36
| | | | | | | | | | | | | | | | | | | | | | | | 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-112-60/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Prepare post 3.0.0 M7 buildsMatthias Sohn2013-05-0846-58/+58
| | | | | | | | Change-Id: I062c44529c7ae2f960d3c64a0923a45d2dc8a863 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * JGit v3.0.0.201305080800-m7v3.0.0.201305080800-m7Matthias Sohn2013-05-0846-58/+58
| | | | | | | | | | Change-Id: I377b174993862918a117f54e6cba4733dfc2307c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Add tgz and txz archive formatsJonathan Nieder2013-05-285-1/+141
| | | | | | | | Change-Id: I347e8a9a112d142ccef91cba1d6e997d645ca70a
* | Maintain list of archive formats in one placeJonathan Nieder2013-05-282-8/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | Add a static start() method to FormatActivator to allow outside classes such as the Archive subcommand of the jgit program to use it without a BundleContext. This way, the list of formats only has to be maintained in one place. While at it, build a list of registered formats at start() time, so stop() doesn't have to repeat the same list of formats. Suggested-by: Shawn Pearce <spearce@spearce.org> Change-Id: I55cb3095043568740880cc9e4f7cde05f49c363c
* | Release ArchiveCommand's ObjectReader in call()Jonathan Nieder2013-05-242-35/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make call() release all private resources so instead of using a pattern like ArchiveCommand cmd = git.archive(); try { cmd.setTree(tree) . ... .call(); } finally { cmd.release(); } callers can just use git.archive().setTree(tree)....call() directly. This involves pushing more work out of parameter setters and into call() so the ObjectReader is not allocated and potentially leaked before then. Change-Id: I699f703c6302696e1cc276d7ab8ee597d82f2c5d
* | Move ArchiveCommand into standard porcelain APIJonathan Nieder2013-05-2430-36/+851
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow use of ArchiveCommand without depending on the jgit command-line tools. To avoid complicating the process of installing and upgrading JGit, this does not add a dependency by the org.eclipse.jgit bundle on commons-compress. Instead, the caller is responsible for registering any formats they want to use by calling ArchiveCommand.registerFormat. This patch puts functionality that requires an archiver into a separate org.eclipse.jgit.archive bundle for people who want it. One can use it by calling ArchiveCommand.registerFormat directly to register its formats or by relying on OSGi class loading to load org.eclipse.jgit.archive.FormatActivator, which takes care of registration automatically. Once the appropriate formats are registered, you can make a tar or zip from a git tree object as follows: ArchiveCommand cmd = git.archive(); try { cmd.setTree(tree).setFormat(fmt).setOutputStream(out).call(); } finally { cmd.release(); } Change-Id: I418e7e7d76422dc6f010d0b3b624d7bec3b20c6e
* | Remove dependency by ArchiveCommand on archive formatsJonathan Nieder2013-05-2410-6/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide static registerFormat and unregisterFormat methods to allow formats to register themselves without the ArchiveCommand code being aware of them. Register the basic "zip" and "tar" support at bundle activation time (and deregister them when unloading the bundle). For anyone using this code as an OSGi plugin it should continue to just work. The jgit program does not load org.eclipse.jgit.pgm as an OSGi bundle, so let the Archive command register the formats it uses explicitly with registerFormat. Change-Id: Id39c03ea6923d0aed8316ed7b6bd04d5ced570a7
* | Drop dependency by ArchiveCommand.Format interface on commons-compressJonathan Nieder2013-05-233-18/+27
| | | | | | | | | | | | | | | | Otherwise, anyone trying to implement a new format would have to depend on commons-compress, even if using a different underlying library to write the archive. Change-Id: I301a1997e3b48aa7e32d693fd8f4b2d436c9b3a7
* | ArchiveCommand.Format: pass output stream as first argument to putEntryJonathan Nieder2013-05-233-9/+10
| | | | | | | | | | | | | | | | This is more consistent with other APIs where the output side is the first parameter to be analagous to the left-hand side of an assignment. Change-Id: Iec46bd50bc973a38b77d8367296adf5474ba515f
* | ArchiveCommand: make archive formats non-inner classesJonathan Nieder2013-05-238-83/+239
| | | | | | | | | | | | First step toward making ArchiveCommand itself format-agnostic. Change-Id: I3cff5fce28fa7a19e34f8291cfb5b62f16429713
* | Remove unused import in UploadPackShawn Pearce2013-05-231-1/+0
| | | | | | | | Change-Id: I9304cb3a6502ceb0cba21eb841e466f932ab3c01
* | Use NullOutputStream not DisabledOutputStream in UploadPackShawn Pearce2013-05-231-3/+5
| | | | | | | | | | | | | | | | The stream should not throw IllegalStateException if it is off. Flush the stream after the hook runs, in case any messages need to be sent ahead of the pack. Change-Id: I21c7a0258ab1308406d226293fa0e7da69b4f57b