aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.pgm/src
Commit message (Collapse)AuthorAgeFilesLines
...
* RevWalkTextBuiltin: Add -n to limit number of commits returnedDave Borowitz2014-05-051-1/+5
| | | | | | Implementing the -<#> flag from C git is less trivial. Change-Id: Idb55a303304a6d4055aaf37d0b4dcf92c684e25f
* Added groups support to repo subcommand.Yuxuan 'fishy' Wang2014-04-231-0/+4
| | | | | Change-Id: Id0e7663b6ac4f6938fdcacaf2158107b6285fc25 Signed-off-by: Yuxuan 'fishy' Wang <fishywang@google.com>
* Added the command line of jgit repo.Yuxuan 'fishy' Wang2014-04-231-0/+65
| | | | | Change-Id: Ib809b00c236a9c44422a872ae801b060f5b26808 Signed-off-by: Yuxuan 'fishy' Wang <fishywang@google.com>
* Merge "blame: Format commit and author only once per range"Shawn Pearce2014-04-231-13/+23
|\
| * blame: Format commit and author only once per rangeShawn Pearce2014-04-211-13/+23
| | | | | | | | | | | | | | | | | | | | | | | | When a commit is blamed for multiple lines of the result file the command line interface prints the same text before each line in that span. Format these strings once and reuse them as the line prefix. For long files (e.g. 2425 lines of ReceiveCommits.java in Gerrit) this can save as much as 20ms during the output phase of the command line blame program. Change-Id: Ie42787d77c8d0cbca7ccbf59c795120494a2a891
* | pgm: Flush stderr during shutdownShawn Pearce2014-04-211-0/+2
|/ | | | | | | | If an error occurs in command line option parsing the error message may be stuck in a Java level buffer. Flush the stream to ensure everything is made available to the calling process or terminal. Change-Id: I55b16e43aa96fc81c1197121032f5cdd901d412c
* blame: Automatically increase commit abbreviation lengthShawn Pearce2014-04-171-3/+17
| | | | | | | | | Ensure commit object names are unique by extending the default abbreviation as long as necessary. This allows `jgit blame` to more closely match the formatted output of `git blame` on large histories like Gerrit Code Review's ReceiveCommits.java file. Change-Id: I5f7c4855769ee9dcba973389df9e109005dcdb5b
* Avoid calls to System.exit() and throw an exception insteadGuillaume Nodet2014-04-023-2/+37
| | | | | | | | The exception is caught in Main and System.exit() is called. Bug: 413522 Change-Id: Ibe68f7104d4fd55b832000a7840c07a169e7dd58 Signed-off-by: Guillaume Nodet <gnodet@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add an input stream and an error stream to TextBuiltin base classGuillaume Nodet2014-03-3010-52/+88
| | | | | | | | Leverage these streams to remove calls to System.in and System.err Bug: 413522 Change-Id: I8396f3e273c93e23861e8bcfb2ab8182fb09220d Signed-off-by: Guillaume Nodet <gnodet@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Implement "git branch --contains" in pgmRobin Stocker2014-03-071-17/+31
| | | | | | Bug: 425678 Change-Id: Ib59e05a0bde58562cc61e6e3000df761660b468e Signed-off-by: Robin Stocker <robin@nibor.org>
* Add missing @Deprecated to deprecated fields and methodsShawn Pearce2014-03-031-0/+1
| | | | | | | | Java spec requires the @Deprecated annotation on any deprecated field or method. Add the missing annotation to fields and methods already declared deprecated in the javadoc. Change-Id: Ic0ef24b43cfd99ac947e771ef5a28e493c304274
* CLI clone command should support --no-checkoutKaloyan Raev2014-02-261-9/+15
| | | | | | | | doCheckout() is called only if --no-checkout option is not set. Bug: 428917 Change-Id: I350bef446dd7a37613b9506aae99679569bd36e1 Signed-off-by: Kaloyan Raev <kaloyan.r@zend.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add symlink support to JGitRobin Rosenberg2014-02-101-1/+1
| | | | | | | | | | | | | | | | | | | | 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>
* Tag som non-localizable strings with NON-NLSRobin Rosenberg2014-01-101-1/+1
| | | | Change-Id: I6882c98c2785f38241a81ba5b93892aab79690a5
* Suppport the GIT_CONFIG_NOSYSTEM environment variableRobin Rosenberg2014-01-061-1/+5
| | | | Change-Id: If3cc05931683d396b5ae2ea8952adceeb9a82ab9
* [CLI] Add option --millis / -m to debug-show-dir-cache commandMatthias Sohn2013-12-271-3/+12
| | | | | | | | | | | This is useful when comparing mtime displayed by $ jgit debug-show-dir-cache -m with mtime displayed by $ git ls-files --debug or $ stat "%m" Change-Id: Id133ebe6f6093a56a6a6645e1c5bb18752fb2fd0 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* archive: Prepend a specified prefix to all entry filenamesJonathan Nieder2013-12-172-0/+5
| | | | | | | | | | Common practice when distributing tarballs is to prefix all entries with a single directory name so when the tarball is extracted it all falls neatly into a single directory. Add a setPrefix() method to ArchiveCommand to support this. Change-Id: I16b2832ef98c30977f6b77b646728b83d93c196f Signed-off-by: Jonathan Nieder <jrn@google.com>
* CLI status should support --porcelainKaloyan Raev2013-12-041-8/+117
| | | | | | | | Add support for the machine-readable output format along with the existing default long format. Bug: 419968 Change-Id: I37fe5121b4c9dbae1106b1d18e9fdc134070a9dd Signed-off-by: Kaloyan Raev <kaloyan.r@zend.com>
* Manage CheckoutConflictException in pgmAxel Richard2013-11-292-0/+10
| | | | | Change-Id: I49f92bf7cafc80404f0bd07d62ff4b25e4db6e7c Signed-off-by: Axel Richard <axel.richard@obeo.fr> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* CLI fetch command should support --tagsKaloyan Raev2013-10-261-0/+14
| | | | | | | Bug: 419638 Change-Id: I1dc99fd38e678e091a1d141d741328f0dec1756a Signed-off-by: Kaloyan Raev <kaloyan.r@zend.com> Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* Merge "Add describe command to JGit command line interface"Robin Rosenberg2013-10-202-0/+76
|\
| * Add describe command to JGit command line interfaceMatthias Sohn2013-10-112-0/+76
| | | | | | | | Change-Id: I1560fd2be417361b3d2df15a27618053031bd873 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | CLI version command falls back to Bundle-VersionKaloyan Raev2013-10-121-3/+48
|/ | | | | | | | | | | If the version command cannot read the Implementation-Version of the containing JAR fall back to read the Bundle-Version header in MANIFEST.MF. This makes the command working also from the org.eclipse.jgit.pgm bundle and during development in a host IDE. Bug: 419087 Change-Id: I4269d1cbd9bf9fd8be6fb4463aecc1c434aa387b Signed-off-by: Kaloyan Raev <kaloyan.r@zend.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add support for --version in JGit CLIKaloyan Raev2013-10-091-1/+9
| | | | | Bug: 419000 Change-Id: I43f5267182ea69d1f9abbff33136e0491c629071 Signed-off-by: Kaloyan Raev <kaloyan.r@zend.com>
* Propagate IOException where possible when getting refs.Colby Ranger2013-10-075-8/+22
| | | | | | | | | | Currently, Repository.getAllRefs() and Repository.getTags() silently ignores an IOException and instead returns an empty map. Repository is a public API and as such cannot be changed until the next major revision change. Where possible, update the internal jgit APIs to use the RefDatabase directly, since it propagates the error. Change-Id: I4e4537d8bd0fa772f388262684c5c4ca1929dc4c
* Add missing usage texts for JGit commandline commandsMatthias Sohn2013-09-0921-11/+43
| | | | | | | Also update help text for the merge command now supporting recursive strategy as the default merge strategy. Change-Id: I07886fe875c407e2244f562c003bb9d04f398026 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add --quiet flag to pgm fetch.Colby Ranger2013-08-051-1/+5
| | | | Change-Id: If141fdc5c181b3a618b7e286ad3c6957211d0afc
* Add path option to StatusCommandChristian Halstrick2013-07-211-1/+10
| | | | | | | | | Allow filtering of the status. Only files which match given paths are inspected and only their state is reported. Change-Id: I3c4b1b46bf297cd4ebdb4997cfa14c8752a36411 Signed-off-by: Christian Halstrick <christian.halstrick@sap.com> Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* Move gc to package org.eclipse.jgit.pgmMatthias Sohn2013-06-221-2/+1
| | | | | | | All bugs reported for gc have been fixed and it seems we reached a stable implementation. Change-Id: I78a96ee2103beb48325da0f6ee10b2498bdc0267 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add support for "jgit archive --output=<filename>"Jonathan Nieder2013-06-061-6/+29
| | | | | | | | | | 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
* Remove unused import in ArchiveJonathan Nieder2013-05-291-1/+0
| | | | Change-Id: I0bc82e74f4acedb059322c29e13352151165ef7f
* Move FormatActivator.start()/stop() to a separate classJonathan Nieder2013-05-291-2/+2
| | | | | | | | | 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
* Maintain list of archive formats in one placeJonathan Nieder2013-05-281-4/+2
| | | | | | | | | | | | | 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-241-6/+5
| | | | | | | | | | | | | | | | | | | | | | 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-246-524/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-246-5/+106
| | | | | | | | | | | | | | | | 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-235-81/+221
| | | | | | First step toward making ArchiveCommand itself format-agnostic. Change-Id: I3cff5fce28fa7a19e34f8291cfb5b62f16429713
* Move org.eclipse.jgit.pgm's resource bundle to internal packageMatthias Sohn2013-05-0643-19/+45
| | | | | | | | Translatable texts aren't API and shouldn't require maintenance of @since tags to prevent API warnings. Change-Id: I228ff37f17c0e792a6bc188c463a0d19138e88ac Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Merge "Require a DiffConfig when creating a FollowFilter"Shawn Pearce2013-05-051-6/+8
|\
| * Require a DiffConfig when creating a FollowFilterDave Borowitz2013-05-051-6/+8
| | | | | | | | | | | | | | | | | | | | | | 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
* | Fix line endingsMatthias Sohn2013-05-031-82/+82
|/ | | | Change-Id: I61c9c173237a535da8576a9299bfd4bb29e8f56b Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* ArchiveCommand: Add missing @since tagJonathan Nieder2013-04-301-0/+2
| | | | Change-Id: I9e48a1f82b747492bebb3ca65fd16f599e425e8b
* Merge "Cleanup imports and javadocs in ArchiveCommand"Robin Rosenberg2013-04-271-3/+6
|\
| * Cleanup imports and javadocs in ArchiveCommandRobin Rosenberg2013-04-271-3/+6
| | | | | | | | Change-Id: Icb1cd177e791cc646636a88c67fd9399dfc7030c
* | Delete CLIText strings previously used in iplog generatorJonathan Nieder2013-04-271-3/+0
| | | | | | | | | | | | | | The only callers using these strings were removed in commit 850e5bc24e31 (Delete the iplog generator, 2013-01-09). Change-Id: Ia4f81b29b8d00782ee559d69de3befc0a6c4d403
* | Merge "Make the Reflog a public API again"Robin Rosenberg2013-04-271-1/+1
|\ \ | |/ |/|
| * Make the Reflog a public API againRobin Rosenberg2013-04-261-1/+1
| | | | | | | | Change-Id: I8ced7098da5b345fd9af2fdfafd1ef6a44ccee0d
* | ArchiveCommand: Do not warn for unsupported file modeJonathan Nieder2013-04-262-12/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When ArchiveCommand is invoked directly on the command line, these warnings to stderr warning: mode of path/to/some/submodule ignored are a useful hint, but in the more usual case where an archive is being served by a server, the intended audience for that message cannot see stderr. Later it might be useful to accept a callback to return these warnings out of band. Change-Id: I22e79be69859176d85594031d67c6cb3371c4bd2